Skip to content

Commit 98c576f

Browse files
Migrate TestCoreWithMissingCustomBoardOptionsIsLoaded from test_core.py to core_test.go
1 parent 1c05d52 commit 98c576f

File tree

4 files changed

+40
-30
lines changed

4 files changed

+40
-30
lines changed

internal/integrationtest/core/core_test.go

+40
Original file line numberDiff line numberDiff line change
@@ -791,3 +791,43 @@ func TestCoreListPlatformWithoutPlatformTxt(t *testing.T) {
791791
requirejson.Query(t, stdout, ".[] | .id", "\"some-packager:some-arch\"")
792792
requirejson.Query(t, stdout, ".[] | .name", "\"some-packager-some-arch\"")
793793
}
794+
795+
func TestCoreWithMissingCustomBoardOptionsIsLoaded(t *testing.T) {
796+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
797+
defer env.CleanUp()
798+
799+
// Install platform in Sketchbook hardware dir
800+
testPlatformName := "platform_with_missing_custom_board_options"
801+
platformInstallDir := cli.SketchbookDir().Join("hardware", "arduino-beta-dev")
802+
require.NoError(t, platformInstallDir.MkdirAll())
803+
require.NoError(t, paths.New("..", "testdata", testPlatformName).CopyDirTo(platformInstallDir.Join(testPlatformName)))
804+
805+
_, _, err := cli.Run("update")
806+
require.NoError(t, err)
807+
808+
stdout, _, err := cli.Run("core", "list", "--format", "json")
809+
require.NoError(t, err)
810+
requirejson.Len(t, stdout, 1)
811+
// Verifies platform is loaded except excluding board with missing options
812+
requirejson.Contains(t, stdout, `[
813+
{
814+
"id": "arduino-beta-dev:platform_with_missing_custom_board_options"
815+
}
816+
]`)
817+
requirejson.Query(t, stdout, ".[] | select(.id == \"arduino-beta-dev:platform_with_missing_custom_board_options\") | .boards | length", "2")
818+
// Verify board with malformed options is not loaded
819+
// while other board is loaded
820+
requirejson.Contains(t, stdout, `[
821+
{
822+
"id": "arduino-beta-dev:platform_with_missing_custom_board_options",
823+
"boards": [
824+
{
825+
"fqbn": "arduino-beta-dev:platform_with_missing_custom_board_options:nessuno"
826+
},
827+
{
828+
"fqbn": "arduino-beta-dev:platform_with_missing_custom_board_options:altra"
829+
}
830+
]
831+
}
832+
]`)
833+
}

test/test_core.py

-30
Original file line numberDiff line numberDiff line change
@@ -133,36 +133,6 @@ def test_core_download_multiple_platforms(run_command, data_dir):
133133
assert "Invalid argument passed: Found 2 platform for reference" in res.stderr
134134

135135

136-
def test_core_with_missing_custom_board_options_is_loaded(run_command, data_dir):
137-
test_platform_name = "platform_with_missing_custom_board_options"
138-
platform_install_dir = Path(data_dir, "hardware", "arduino-beta-dev", test_platform_name)
139-
platform_install_dir.mkdir(parents=True)
140-
141-
# Install platform in Sketchbook hardware dir
142-
shutil.copytree(
143-
Path(__file__).parent / "testdata" / test_platform_name,
144-
platform_install_dir,
145-
dirs_exist_ok=True,
146-
)
147-
148-
assert run_command(["update"])
149-
150-
res = run_command(["core", "list", "--format", "json"])
151-
assert res.ok
152-
153-
cores = json.loads(res.stdout)
154-
mapped = {core["id"]: core for core in cores}
155-
assert len(mapped) == 1
156-
# Verifies platform is loaded except excluding board with missing options
157-
assert "arduino-beta-dev:platform_with_missing_custom_board_options" in mapped
158-
boards = {b["fqbn"]: b for b in mapped["arduino-beta-dev:platform_with_missing_custom_board_options"]["boards"]}
159-
assert len(boards) == 2
160-
# Verify board with malformed options is not loaded
161-
assert "arduino-beta-dev:platform_with_missing_custom_board_options:nessuno" in boards
162-
# Verify other board is loaded
163-
assert "arduino-beta-dev:platform_with_missing_custom_board_options:altra" in boards
164-
165-
166136
def test_core_list_outdated_core(run_command):
167137
assert run_command(["update"])
168138

0 commit comments

Comments
 (0)