Skip to content

Commit 62e8b95

Browse files
MigratedTestBoardListallWithManuallyInstalledPlatform from test_board.py to board_test.go
1 parent d1f9334 commit 62e8b95

File tree

2 files changed

+55
-30
lines changed

2 files changed

+55
-30
lines changed

Diff for: internal/integrationtest/board/board_test.go

+55
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import (
2424
"github.com/arduino/go-paths-helper"
2525
"github.com/stretchr/testify/require"
2626
"go.bug.st/testsuite"
27+
"gopkg.in/src-d/go-git.v4"
28+
"gopkg.in/src-d/go-git.v4/plumbing"
2729
)
2830

2931
func TestBoardList(t *testing.T) {
@@ -125,3 +127,56 @@ func TestBoardListall(t *testing.T) {
125127
require.NotEmpty(t, platform["latest"])
126128
require.Equal(t, platform["name"], "Arduino AVR Boards")
127129
}
130+
131+
func TestBoardListallWithManuallyInstalledPlatform(t *testing.T) {
132+
env := testsuite.NewEnvironment(t)
133+
defer env.CleanUp()
134+
135+
cli := integrationtest.NewArduinoCliWithinEnvironment(env, &integrationtest.ArduinoCLIConfig{
136+
ArduinoCLIPath: paths.New("..", "..", "..", "arduino-cli"),
137+
UseSharedStagingFolder: true,
138+
})
139+
140+
_, _, err := cli.Run("update")
141+
require.NoError(t, err)
142+
143+
// Manually installs a core in sketchbooks hardware folder
144+
gitUrl := "https://github.com/arduino/ArduinoCore-samd.git"
145+
repoDir := cli.SketchbookDir().Join("hardware", "arduino-beta-development", "samd")
146+
_, err = git.PlainClone(repoDir.String(), false, &git.CloneOptions{
147+
URL: gitUrl,
148+
ReferenceName: plumbing.NewTagReferenceName("1.8.11"),
149+
})
150+
require.NoError(t, err)
151+
152+
stdout, _, err := cli.Run("board", "listall", "--format", "json")
153+
require.NoError(t, err)
154+
var data map[string]interface{}
155+
err = json.Unmarshal(stdout, &data)
156+
require.NoError(t, err)
157+
158+
// maps each json contained in "boards" using
159+
// its corresponding "fqbn" value as its key
160+
boards := make(map[string]map[string]interface{})
161+
for _, v := range data["boards"].([]interface{}) {
162+
mapV := v.(map[string]interface{})
163+
boards[mapV["fqbn"].(string)] = mapV
164+
}
165+
require.Len(t, boards, 17)
166+
167+
require.Contains(t, boards, "arduino-beta-development:samd:nano_33_iot")
168+
require.Equal(t, boards["arduino-beta-development:samd:nano_33_iot"]["name"], "Arduino NANO 33 IoT")
169+
platform := boards["arduino-beta-development:samd:nano_33_iot"]["platform"].(map[string]interface{})
170+
require.Equal(t, platform["id"], "arduino-beta-development:samd")
171+
require.Equal(t, platform["installed"], "1.8.11")
172+
require.Equal(t, platform["latest"], "1.8.11")
173+
require.Equal(t, platform["name"], "Arduino SAMD (32-bits ARM Cortex-M0+) Boards")
174+
175+
require.Contains(t, boards, "arduino-beta-development:samd:mkr1000")
176+
require.Equal(t, boards["arduino-beta-development:samd:mkr1000"]["name"], "Arduino MKR1000")
177+
platform = boards["arduino-beta-development:samd:mkr1000"]["platform"].(map[string]interface{})
178+
require.Equal(t, platform["id"], "arduino-beta-development:samd")
179+
require.Equal(t, platform["installed"], "1.8.11")
180+
require.Equal(t, platform["latest"], "1.8.11")
181+
require.Equal(t, platform["name"], "Arduino SAMD (32-bits ARM Cortex-M0+) Boards")
182+
}

Diff for: test/test_board.py

-30
Original file line numberDiff line numberDiff line change
@@ -394,36 +394,6 @@
394394
""" # noqa: E501
395395

396396

397-
def test_board_listall_with_manually_installed_platform(run_command, data_dir):
398-
assert run_command(["update"])
399-
400-
# Manually installs a core in sketchbooks hardware folder
401-
git_url = "https://github.com/arduino/ArduinoCore-samd.git"
402-
repo_dir = Path(data_dir, "hardware", "arduino-beta-development", "samd")
403-
assert Repo.clone_from(git_url, repo_dir, multi_options=["-b 1.8.11"])
404-
405-
res = run_command(["board", "listall", "--format", "json"])
406-
assert res.ok
407-
data = json.loads(res.stdout)
408-
boards = {b["fqbn"]: b for b in data["boards"]}
409-
assert len(boards) == 17
410-
assert "arduino-beta-development:samd:nano_33_iot" in boards
411-
assert "Arduino NANO 33 IoT" == boards["arduino-beta-development:samd:nano_33_iot"]["name"]
412-
platform = boards["arduino-beta-development:samd:nano_33_iot"]["platform"]
413-
assert "arduino-beta-development:samd" == platform["id"]
414-
assert "1.8.11" == platform["installed"]
415-
assert "1.8.11" == platform["latest"]
416-
assert "Arduino SAMD (32-bits ARM Cortex-M0+) Boards" == platform["name"]
417-
418-
assert "arduino-beta-development:samd:mkr1000" in boards
419-
assert "Arduino MKR1000" == boards["arduino-beta-development:samd:mkr1000"]["name"]
420-
platform = boards["arduino-beta-development:samd:mkr1000"]["platform"]
421-
assert "arduino-beta-development:samd" == platform["id"]
422-
assert "1.8.11" == platform["installed"]
423-
assert "1.8.11" == platform["latest"]
424-
assert "Arduino SAMD (32-bits ARM Cortex-M0+) Boards" == platform["name"]
425-
426-
427397
def test_board_details(run_command):
428398
run_command(["core", "update-index"])
429399
# Download samd core pinned to 1.8.6

0 commit comments

Comments
 (0)