Skip to content

Commit c170c12

Browse files
Migrated TestBoardListall from test_board.py to board_test.go
1 parent 94a300f commit c170c12

File tree

2 files changed

+43
-25
lines changed

2 files changed

+43
-25
lines changed

internal/integrationtest/board/board_test.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import (
2121
"testing"
2222

2323
"github.com/arduino/arduino-cli/internal/integrationtest"
24+
"github.com/arduino/go-paths-helper"
2425
"github.com/stretchr/testify/require"
26+
"go.bug.st/testsuite"
2527
)
2628

2729
func TestBoardList(t *testing.T) {
@@ -67,3 +69,44 @@ func TestBoardListWithInvalidDiscovery(t *testing.T) {
6769
require.NoError(t, err)
6870
require.Contains(t, string(stdout), "builtin:serial-discovery")
6971
}
72+
73+
func TestBoardListall(t *testing.T) {
74+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
75+
defer env.CleanUp()
76+
77+
_, _, err := cli.Run("update")
78+
require.NoError(t, err)
79+
_, _, err = cli.Run("core", "install", "arduino:avr@1.8.3")
80+
require.NoError(t, err)
81+
82+
stdout, _, err := cli.Run("board", "listall", "--format", "json")
83+
require.NoError(t, err)
84+
var data map[string]interface{}
85+
err = json.Unmarshal(stdout, &data)
86+
require.NoError(t, err)
87+
88+
// maps each json contained in "boards" using
89+
// its corresponding "fqbn" value as its key
90+
boards := make(map[string]map[string]interface{})
91+
for _, v := range data["boards"].([]interface{}) {
92+
mapV := v.(map[string]interface{})
93+
boards[mapV["fqbn"].(string)] = mapV
94+
}
95+
require.Len(t, boards, 26)
96+
97+
require.Contains(t, boards, "arduino:avr:yun")
98+
require.Equal(t, boards["arduino:avr:yun"]["name"], "Arduino Yún")
99+
platform := boards["arduino:avr:yun"]["platform"].(map[string]interface{})
100+
require.Equal(t, platform["id"], "arduino:avr")
101+
require.Equal(t, platform["installed"], "1.8.3")
102+
require.NotEmpty(t, platform["latest"])
103+
require.Equal(t, platform["name"], "Arduino AVR Boards")
104+
105+
require.Contains(t, boards, "arduino:avr:uno")
106+
require.Equal(t, boards["arduino:avr:uno"]["name"], "Arduino Uno")
107+
platform = boards["arduino:avr:uno"]["platform"].(map[string]interface{})
108+
require.Equal(t, platform["id"], "arduino:avr")
109+
require.Equal(t, platform["installed"], "1.8.3")
110+
require.NotEmpty(t, platform["latest"])
111+
require.Equal(t, platform["name"], "Arduino AVR Boards")
112+
}

test/test_board.py

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -394,31 +394,6 @@
394394
""" # noqa: E501
395395

396396

397-
def test_board_listall(run_command):
398-
assert run_command(["update"])
399-
assert run_command(["core", "install", "arduino:avr@1.8.3"])
400-
res = run_command(["board", "listall", "--format", "json"])
401-
assert res.ok
402-
data = json.loads(res.stdout)
403-
boards = {b["fqbn"]: b for b in data["boards"]}
404-
assert len(boards) == 26
405-
assert "arduino:avr:yun" in boards
406-
assert "Arduino Yún" == boards["arduino:avr:yun"]["name"]
407-
platform = boards["arduino:avr:yun"]["platform"]
408-
assert "arduino:avr" == platform["id"]
409-
assert "1.8.3" == platform["installed"]
410-
assert "" != platform["latest"]
411-
assert "Arduino AVR Boards" == platform["name"]
412-
413-
assert "arduino:avr:uno" in boards
414-
assert "Arduino Uno" == boards["arduino:avr:uno"]["name"]
415-
platform = boards["arduino:avr:uno"]["platform"]
416-
assert "arduino:avr" == platform["id"]
417-
assert "1.8.3" == platform["installed"]
418-
assert "" != platform["latest"]
419-
assert "Arduino AVR Boards" == platform["name"]
420-
421-
422397
def test_board_listall_with_manually_installed_platform(run_command, data_dir):
423398
assert run_command(["update"])
424399

0 commit comments

Comments
 (0)