Skip to content

Commit f9621fe

Browse files
Migrated TestBoardListallWithManuallyInstalledPlatform from test_board.py to board_test.go
1 parent c170c12 commit f9621fe

File tree

2 files changed

+50
-30
lines changed

2 files changed

+50
-30
lines changed

internal/integrationtest/board/board_test.go

+50
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) {
@@ -110,3 +112,51 @@ func TestBoardListall(t *testing.T) {
110112
require.NotEmpty(t, platform["latest"])
111113
require.Equal(t, platform["name"], "Arduino AVR Boards")
112114
}
115+
116+
func TestBoardListallWithManuallyInstalledPlatform(t *testing.T) {
117+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
118+
defer env.CleanUp()
119+
120+
_, _, err := cli.Run("update")
121+
require.NoError(t, err)
122+
123+
// Manually installs a core in sketchbooks hardware folder
124+
gitUrl := "https://github.com/arduino/ArduinoCore-samd.git"
125+
repoDir := cli.SketchbookDir().Join("hardware", "arduino-beta-development", "samd")
126+
_, err = git.PlainClone(repoDir.String(), false, &git.CloneOptions{
127+
URL: gitUrl,
128+
ReferenceName: plumbing.NewTagReferenceName("1.8.11"),
129+
})
130+
require.NoError(t, err)
131+
132+
stdout, _, err := cli.Run("board", "listall", "--format", "json")
133+
require.NoError(t, err)
134+
var data map[string]interface{}
135+
err = json.Unmarshal(stdout, &data)
136+
require.NoError(t, err)
137+
138+
// maps each json contained in "boards" using
139+
// its corresponding "fqbn" value as its key
140+
boards := make(map[string]map[string]interface{})
141+
for _, v := range data["boards"].([]interface{}) {
142+
mapV := v.(map[string]interface{})
143+
boards[mapV["fqbn"].(string)] = mapV
144+
}
145+
require.Len(t, boards, 17)
146+
147+
require.Contains(t, boards, "arduino-beta-development:samd:nano_33_iot")
148+
require.Equal(t, boards["arduino-beta-development:samd:nano_33_iot"]["name"], "Arduino NANO 33 IoT")
149+
platform := boards["arduino-beta-development:samd:nano_33_iot"]["platform"].(map[string]interface{})
150+
require.Equal(t, platform["id"], "arduino-beta-development:samd")
151+
require.Equal(t, platform["installed"], "1.8.11")
152+
require.Equal(t, platform["latest"], "1.8.11")
153+
require.Equal(t, platform["name"], "Arduino SAMD (32-bits ARM Cortex-M0+) Boards")
154+
155+
require.Contains(t, boards, "arduino-beta-development:samd:mkr1000")
156+
require.Equal(t, boards["arduino-beta-development:samd:mkr1000"]["name"], "Arduino MKR1000")
157+
platform = boards["arduino-beta-development:samd:mkr1000"]["platform"].(map[string]interface{})
158+
require.Equal(t, platform["id"], "arduino-beta-development:samd")
159+
require.Equal(t, platform["installed"], "1.8.11")
160+
require.Equal(t, platform["latest"], "1.8.11")
161+
require.Equal(t, platform["name"], "Arduino SAMD (32-bits ARM Cortex-M0+) Boards")
162+
}

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)