Skip to content

Commit 8c1ff51

Browse files
Migrate TestCoreListOutdatedCore from test_core.py to core_test.go
1 parent 1934c20 commit 8c1ff51

File tree

2 files changed

+24
-18
lines changed

2 files changed

+24
-18
lines changed

internal/integrationtest/core/core_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/arduino/arduino-cli/internal/integrationtest"
2727
"github.com/arduino/go-paths-helper"
2828
"github.com/stretchr/testify/require"
29+
semver "go.bug.st/relaxed-semver"
2930
"go.bug.st/testifyjson/requirejson"
3031
"gopkg.in/src-d/go-git.v4"
3132
"gopkg.in/src-d/go-git.v4/plumbing"
@@ -816,3 +817,26 @@ func TestCoreWithMissingCustomBoardOptionsIsLoaded(t *testing.T) {
816817
}
817818
]`)
818819
}
820+
821+
func TestCoreListOutdatedCore(t *testing.T) {
822+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
823+
defer env.CleanUp()
824+
825+
_, _, err := cli.Run("update")
826+
require.NoError(t, err)
827+
828+
// Install an old core version
829+
_, _, err = cli.Run("core", "install", "arduino:samd@1.8.6")
830+
require.NoError(t, err)
831+
832+
stdout, _, err := cli.Run("core", "list", "--format", "json")
833+
require.NoError(t, err)
834+
requirejson.Len(t, stdout, 1)
835+
requirejson.Query(t, stdout, ".[0] | .installed", "\"1.8.6\"")
836+
installedVersion, err := semver.Parse(strings.Trim(requirejson.Parse(t, stdout).Query(".[0] | .installed").String(), "\""))
837+
require.NoError(t, err)
838+
latestVersion, err := semver.Parse(strings.Trim(requirejson.Parse(t, stdout).Query(".[0] | .latest").String(), "\""))
839+
require.NoError(t, err)
840+
// Installed version must be older than latest
841+
require.True(t, installedVersion.LessThan(latestVersion))
842+
}

test/test_core.py

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -133,24 +133,6 @@ def test_core_download_multiple_platforms(run_command, data_dir):
133133
assert "Invalid argument passed: Found 2 platform for reference" in res.stderr
134134

135135

136-
def test_core_list_outdated_core(run_command):
137-
assert run_command(["update"])
138-
139-
# Install an old core version
140-
assert run_command(["core", "install", "arduino:samd@1.8.6"])
141-
142-
res = run_command(["core", "list", "--format", "json"])
143-
144-
data = json.loads(res.stdout)
145-
assert len(data) == 1
146-
samd_core = data[0]
147-
assert samd_core["installed"] == "1.8.6"
148-
installed_version = semver.parse_version_info(samd_core["installed"])
149-
latest_version = semver.parse_version_info(samd_core["latest"])
150-
# Installed version must be older than latest
151-
assert installed_version.compare(latest_version) == -1
152-
153-
154136
def test_core_loading_package_manager(run_command, data_dir):
155137
# Create empty architecture folder (this condition is normally produced by `core uninstall`)
156138
(Path(data_dir) / "packages" / "foovendor" / "hardware" / "fooarch").mkdir(parents=True)

0 commit comments

Comments
 (0)