From 42e5671a8eb01f4f9a4bda4025d2ad4b3bad49d8 Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Tue, 16 Aug 2022 16:34:18 +0200 Subject: [PATCH 1/2] Migrated TestOutdated from test_outdated.py to outdated_test.go --- .../integrationtest/outdated/outdated_test.go | 57 +++++++++++++++++++ test/test_outdated.py | 22 ------- 2 files changed, 57 insertions(+), 22 deletions(-) create mode 100644 internal/integrationtest/outdated/outdated_test.go diff --git a/internal/integrationtest/outdated/outdated_test.go b/internal/integrationtest/outdated/outdated_test.go new file mode 100644 index 00000000000..ea7b873d2e7 --- /dev/null +++ b/internal/integrationtest/outdated/outdated_test.go @@ -0,0 +1,57 @@ +// This file is part of arduino-cli. +// +// Copyright 2022 ARDUINO SA (http://www.arduino.cc/) +// +// This software is released under the GNU General Public License version 3, +// which covers the main part of arduino-cli. +// The terms of this license can be found at: +// https://www.gnu.org/licenses/gpl-3.0.en.html +// +// You can be released from the requirements of the above licenses by purchasing +// a commercial license. Buying such a license is mandatory if you want to +// modify or otherwise use the software for commercial activities involving the +// Arduino software without disclosing the source code of your own applications. +// To purchase a commercial license, send an email to license@arduino.cc. + +package outdated_test + +import ( + "strings" + "testing" + + "github.com/arduino/arduino-cli/internal/integrationtest" + "github.com/stretchr/testify/require" +) + +func TestOutdated(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + //Updates index for cores and libraries + _, _, err := cli.Run("core", "update-index") + require.NoError(t, err) + _, _, err = cli.Run("lib", "update-index") + require.NoError(t, err) + + // Installs an outdated core and library + _, _, err = cli.Run("core", "install", "arduino:avr@1.6.3") + require.NoError(t, err) + _, _, err = cli.Run("lib", "install", "USBHost@1.0.0") + require.NoError(t, err) + + // Installs latest version of a core and a library + _, _, err = cli.Run("core", "install", "arduino:samd") + require.NoError(t, err) + _, _, err = cli.Run("lib", "install", "ArduinoJson") + require.NoError(t, err) + + // Verifies only outdated cores and libraries are returned + stdout, _, err := cli.Run("outdated") + require.NoError(t, err) + lines := strings.Split(string(stdout), "\n") + for i := range lines { + lines[i] = strings.TrimSpace(lines[i]) + } + require.Contains(t, lines[1], "Arduino AVR Boards") + require.Contains(t, lines[4], "USBHost") +} diff --git a/test/test_outdated.py b/test/test_outdated.py index 83a2659bcf8..f03a09c9de8 100644 --- a/test/test_outdated.py +++ b/test/test_outdated.py @@ -15,28 +15,6 @@ from pathlib import Path - -def test_outdated(run_command): - # Updates index for cores and libraries - run_command(["core", "update-index"]) - run_command(["lib", "update-index"]) - - # Installs an outdated core and library - run_command(["core", "install", "arduino:avr@1.6.3"]) - assert run_command(["lib", "install", "USBHost@1.0.0"]) - - # Installs latest version of a core and a library - run_command(["core", "install", "arduino:samd"]) - assert run_command(["lib", "install", "ArduinoJson"]) - - # Verifies only outdated cores and libraries are returned - result = run_command(["outdated"]) - assert result.ok - lines = [l.strip() for l in result.stdout.splitlines()] - assert "Arduino AVR Boards" in lines[1] - assert "USBHost" in lines[4] - - def test_outdated_using_library_with_invalid_version(run_command, data_dir): assert run_command(["update"]) From c32abddfc234796dcd8a43be66b32cfd5c8044cc Mon Sep 17 00:00:00 2001 From: Matteo Pologruto Date: Tue, 23 Aug 2022 16:43:44 +0200 Subject: [PATCH 2/2] Migrated TestOutdatedUsingLibraryWithInvalidVersion to outdated_test.go and deleted test_outdated.py --- .../integrationtest/outdated/outdated_test.go | 33 ++++++++++++++++ test/test_outdated.py | 38 ------------------- 2 files changed, 33 insertions(+), 38 deletions(-) delete mode 100644 test/test_outdated.py diff --git a/internal/integrationtest/outdated/outdated_test.go b/internal/integrationtest/outdated/outdated_test.go index ea7b873d2e7..24a10370a2c 100644 --- a/internal/integrationtest/outdated/outdated_test.go +++ b/internal/integrationtest/outdated/outdated_test.go @@ -55,3 +55,36 @@ func TestOutdated(t *testing.T) { require.Contains(t, lines[1], "Arduino AVR Boards") require.Contains(t, lines[4], "USBHost") } + +func TestOutdatedUsingLibraryWithInvalidVersion(t *testing.T) { + env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t) + defer env.CleanUp() + + _, _, err := cli.Run("update") + require.NoError(t, err) + + // Install latest version of a library library + _, _, err = cli.Run("lib", "install", "WiFi101") + require.NoError(t, err) + + // Verifies library is correctly returned + stdout, _, err := cli.Run("outdated") + require.NoError(t, err) + require.NotContains(t, string(stdout), "WiFi101") + + // Changes the version of the currently installed library so that it's invalid + libPropPath := cli.SketchbookDir().Join("libraries", "WiFi101", "library.properties") + err = libPropPath.WriteFile([]byte("name=WiFi101\nversion=1.0001")) + require.NoError(t, err) + + // Verifies library is correctly returned + stdout, _, err = cli.Run("outdated") + require.NoError(t, err) + lines := strings.Split(string(stdout), "\n") + l := make([][]string, len(lines)) + for i := range lines { + lines[i] = strings.TrimSpace(lines[i]) + l[i] = strings.Split(lines[i], " ") + } + require.Contains(t, l[1][0], "WiFi101") +} diff --git a/test/test_outdated.py b/test/test_outdated.py deleted file mode 100644 index f03a09c9de8..00000000000 --- a/test/test_outdated.py +++ /dev/null @@ -1,38 +0,0 @@ -# This file is part of arduino-cli. -# -# Copyright 2020 ARDUINO SA (http://www.arduino.cc/) -# -# This software is released under the GNU General Public License version 3, -# which covers the main part of arduino-cli. -# The terms of this license can be found at: -# https://www.gnu.org/licenses/gpl-3.0.en.html -# -# You can be released from the requirements of the above licenses by purchasing -# a commercial license. Buying such a license is mandatory if you want to modify or -# otherwise use the software for commercial activities involving the Arduino -# software without disclosing the source code of your own applications. To purchase -# a commercial license, send an email to license@arduino.cc. - -from pathlib import Path - -def test_outdated_using_library_with_invalid_version(run_command, data_dir): - assert run_command(["update"]) - - # Install latest version of a library library - assert run_command(["lib", "install", "WiFi101"]) - - # Verifies library is correctly returned - res = run_command(["outdated"]) - assert res.ok - assert "WiFi101" not in res.stdout - - # Changes the version of the currently installed library so that it's - # invalid - lib_path = Path(data_dir, "libraries", "WiFi101") - Path(lib_path, "library.properties").write_text("name=WiFi101\nversion=1.0001") - - # Verifies library is correctly returned - res = run_command(["outdated"]) - assert res.ok - lines = [l.strip().split() for l in res.stdout.splitlines()] - assert "WiFi101" == lines[1][0]