Skip to content

Commit 182831d

Browse files
Migrate TestList from test_lib.py to lib_test.go
1 parent 82dc5dd commit 182831d

File tree

2 files changed

+58
-55
lines changed

2 files changed

+58
-55
lines changed

internal/integrationtest/lib/lib_test.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,3 +310,61 @@ func TestUpgradeLibraryWithDependencies(t *testing.T) {
310310
dependency := jsonOut.Query(`.dependencies[] | select(.name=="MKRWAN")`)
311311
require.Equal(t, dependency.Query(".version_required"), dependency.Query(".version_installed"))
312312
}
313+
314+
func TestList(t *testing.T) {
315+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
316+
defer env.CleanUp()
317+
318+
// Init the environment explicitly
319+
_, _, err := cli.Run("core", "update-index")
320+
require.NoError(t, err)
321+
322+
// When output is empty, nothing is printed out, no matter the output format
323+
stdout, stderr, err := cli.Run("lib", "list")
324+
require.NoError(t, err)
325+
require.Empty(t, stderr)
326+
require.Contains(t, strings.TrimSpace(string(stdout)), "No libraries installed.")
327+
stdout, stderr, err = cli.Run("lib", "list", "--format", "json")
328+
require.NoError(t, err)
329+
require.Empty(t, stderr)
330+
requirejson.Empty(t, stdout)
331+
332+
// Install something we can list at a version older than latest
333+
_, _, err = cli.Run("lib", "install", "ArduinoJson@6.11.0")
334+
require.NoError(t, err)
335+
336+
// Look at the plain text output
337+
stdout, stderr, err = cli.Run("lib", "list")
338+
require.NoError(t, err)
339+
require.Empty(t, stderr)
340+
lines := strings.Split(strings.TrimSpace(string(stdout)), "\n")
341+
require.Equal(t, 2, len(lines))
342+
lines[1] = strings.Join(strings.Fields(lines[1]), " ")
343+
toks := strings.SplitN(lines[1], " ", 5)
344+
// Verifies the expected number of field
345+
require.Equal(t, 5, len(toks))
346+
// be sure line contain the current version AND the available version
347+
require.NotEmpty(t, toks[1])
348+
require.NotEmpty(t, toks[2])
349+
// Verifies library sentence
350+
require.Contains(t, toks[4], "An efficient and elegant JSON library...")
351+
352+
// Look at the JSON output
353+
stdout, stderr, err = cli.Run("lib", "list", "--format", "json")
354+
require.NoError(t, err)
355+
require.Empty(t, stderr)
356+
requirejson.Len(t, stdout, 1)
357+
// be sure data contains the available version
358+
requirejson.Query(t, stdout, ".[0] | .release | .version != \"\"", "true")
359+
360+
// Install something we can list without provides_includes field given in library.properties
361+
_, _, err = cli.Run("lib", "install", "Arduino_APDS9960@1.0.3")
362+
require.NoError(t, err)
363+
// Look at the JSON output
364+
stdout, stderr, err = cli.Run("lib", "list", "Arduino_APDS9960", "--format", "json")
365+
require.NoError(t, err)
366+
require.Empty(t, stderr)
367+
requirejson.Len(t, stdout, 1)
368+
// be sure data contains the correct provides_includes field
369+
requirejson.Query(t, stdout, ".[0] | .library | .provides_includes | .[0]", "\"Arduino_APDS9960.h\"")
370+
}

test/test_lib.py

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -49,61 +49,6 @@ def download_lib(url, download_dir):
4949
z.close()
5050

5151

52-
def test_list(run_command):
53-
# Init the environment explicitly
54-
run_command(["core", "update-index"])
55-
56-
# When output is empty, nothing is printed out, no matter the output format
57-
result = run_command(["lib", "list"])
58-
assert result.ok
59-
assert "" == result.stderr
60-
assert "No libraries installed." in result.stdout.strip()
61-
result = run_command(["lib", "list", "--format", "json"], hide=True)
62-
assert result.ok
63-
assert "" == result.stderr
64-
assert 0 == len(json.loads(result.stdout))
65-
66-
# Install something we can list at a version older than latest
67-
result = run_command(["lib", "install", "ArduinoJson@6.11.0"])
68-
assert result.ok
69-
70-
# Look at the plain text output
71-
result = run_command(["lib", "list"])
72-
assert result.ok
73-
assert "" == result.stderr
74-
lines = result.stdout.strip().splitlines()
75-
assert 2 == len(lines)
76-
toks = [t.strip() for t in lines[1].split(maxsplit=4)]
77-
# Verifies the expected number of field
78-
assert 5 == len(toks)
79-
# be sure line contain the current version AND the available version
80-
assert "" != toks[1]
81-
assert "" != toks[2]
82-
# Verifies library sentence
83-
assert "An efficient and elegant JSON library..." == toks[4]
84-
85-
# Look at the JSON output
86-
result = run_command(["lib", "list", "--format", "json"], hide=True)
87-
assert result.ok
88-
assert "" == result.stderr
89-
data = json.loads(result.stdout)
90-
assert 1 == len(data)
91-
# be sure data contains the available version
92-
assert "" != data[0]["release"]["version"]
93-
94-
# Install something we can list without provides_includes field given in library.properties
95-
result = run_command(["lib", "install", "Arduino_APDS9960@1.0.3"])
96-
assert result.ok
97-
# Look at the JSON output
98-
result = run_command(["lib", "list", "Arduino_APDS9960", "--format", "json"])
99-
assert result.ok
100-
assert "" == result.stderr
101-
data = json.loads(result.stdout)
102-
assert 1 == len(data)
103-
# be sure data contains the correct provides_includes field
104-
assert "Arduino_APDS9960.h" == data[0]["library"]["provides_includes"][0]
105-
106-
10752
def test_list_exit_code(run_command):
10853
# Init the environment explicitly
10954
assert run_command(["core", "update-index"])

0 commit comments

Comments
 (0)