Skip to content

Commit 8c0db36

Browse files
Migrate TestLibListWithUpdatableFlag from test_lib.py to lib_test.go
1 parent a347d4e commit 8c0db36

File tree

2 files changed

+54
-47
lines changed

2 files changed

+54
-47
lines changed

internal/integrationtest/lib/lib_test.go

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -783,3 +783,57 @@ func TestSearchParagraph(t *testing.T) {
783783
]
784784
}`)
785785
}
786+
787+
func TestLibListWithUpdatableFlag(t *testing.T) {
788+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
789+
defer env.CleanUp()
790+
791+
// Init the environment explicitly
792+
_, _, err := cli.Run("lib", "update-index")
793+
require.NoError(t, err)
794+
795+
// No libraries to update
796+
stdout, stderr, err := cli.Run("lib", "list", "--updatable")
797+
require.NoError(t, err)
798+
require.Empty(t, stderr)
799+
require.Contains(t, string(stdout), "No libraries update is available.")
800+
// No library to update in json
801+
stdout, stderr, err = cli.Run("lib", "list", "--updatable", "--format", "json")
802+
require.NoError(t, err)
803+
require.Empty(t, stderr)
804+
requirejson.Empty(t, stdout)
805+
806+
// Install outdated library
807+
_, _, err = cli.Run("lib", "install", "ArduinoJson@6.11.0")
808+
require.NoError(t, err)
809+
// Install latest version of library
810+
_, _, err = cli.Run("lib", "install", "WiFi101")
811+
require.NoError(t, err)
812+
813+
stdout, stderr, err = cli.Run("lib", "list", "--updatable")
814+
require.NoError(t, err)
815+
require.Empty(t, stderr)
816+
var lines [][]string
817+
for _, v := range strings.Split(strings.TrimSpace(string(stdout)), "\n") {
818+
v = strings.Join(strings.Fields(v), " ")
819+
lines = append(lines, strings.SplitN(v, " ", 5))
820+
}
821+
require.Len(t, lines, 2)
822+
require.Subset(t, lines[0], []string{"Name", "Installed", "Available", "Location", "Description"})
823+
require.Equal(t, "ArduinoJson", lines[1][0])
824+
require.Equal(t, "6.11.0", lines[1][1])
825+
// Verifies available version is not equal to installed one and not empty
826+
require.NotEqual(t, "6.11.0", lines[1][2])
827+
require.NotEmpty(t, lines[1][2])
828+
require.Equal(t, "An efficient and elegant JSON library...", lines[1][4])
829+
830+
// Look at the JSON output
831+
stdout, stderr, err = cli.Run("lib", "list", "--updatable", "--format", "json")
832+
require.NoError(t, err)
833+
require.Empty(t, stderr)
834+
requirejson.Len(t, stdout, 1)
835+
// be sure data contains the available version
836+
requirejson.Query(t, stdout, `.[0] | .library | .version`, `"6.11.0"`)
837+
requirejson.Query(t, stdout, `.[0] | .release | .version != "6.11.0"`, `true`)
838+
requirejson.Query(t, stdout, `.[0] | .release | .version != ""`, `true`)
839+
}

test/test_lib.py

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -146,53 +146,6 @@ def test_install_with_zip_path(run_command, data_dir, downloads_dir):
146146
assert lib_install_dir / "README.adoc" in files
147147

148148

149-
def test_lib_list_with_updatable_flag(run_command):
150-
# Init the environment explicitly
151-
run_command(["lib", "update-index"])
152-
153-
# No libraries to update
154-
result = run_command(["lib", "list", "--updatable"])
155-
assert result.ok
156-
assert "" == result.stderr
157-
assert "No libraries update is available." in result.stdout.strip()
158-
# No library to update in json
159-
result = run_command(["lib", "list", "--updatable", "--format", "json"])
160-
assert result.ok
161-
assert "" == result.stderr
162-
assert 0 == len(json.loads(result.stdout))
163-
164-
# Install outdated library
165-
assert run_command(["lib", "install", "ArduinoJson@6.11.0"])
166-
# Install latest version of library
167-
assert run_command(["lib", "install", "WiFi101"])
168-
169-
res = run_command(["lib", "list", "--updatable"])
170-
assert res.ok
171-
assert "" == res.stderr
172-
# lines = res.stdout.strip().splitlines()
173-
lines = [l.strip().split(maxsplit=4) for l in res.stdout.strip().splitlines()]
174-
assert 2 == len(lines)
175-
assert ["Name", "Installed", "Available", "Location", "Description"] in lines
176-
line = lines[1]
177-
assert "ArduinoJson" == line[0]
178-
assert "6.11.0" == line[1]
179-
# Verifies available version is not equal to installed one and not empty
180-
assert "6.11.0" != line[2]
181-
assert "" != line[2]
182-
assert "An efficient and elegant JSON library..." == line[4]
183-
184-
# Look at the JSON output
185-
res = run_command(["lib", "list", "--updatable", "--format", "json"], hide=True)
186-
assert res.ok
187-
assert "" == res.stderr
188-
data = json.loads(res.stdout)
189-
assert 1 == len(data)
190-
# be sure data contains the available version
191-
assert "6.11.0" == data[0]["library"]["version"]
192-
assert "6.11.0" != data[0]["release"]["version"]
193-
assert "" != data[0]["release"]["version"]
194-
195-
196149
def test_install_with_git_url_from_current_directory(run_command, downloads_dir, data_dir):
197150
assert run_command(["update"])
198151

0 commit comments

Comments
 (0)