Skip to content

Commit 81c7a27

Browse files
Migrate TestInstallGitUrlAndZipPathFlagsVisibility from test_lib.py to lib_test.go
1 parent cacb050 commit 81c7a27

File tree

2 files changed

+62
-47
lines changed

2 files changed

+62
-47
lines changed

Diff for: internal/integrationtest/lib/lib_test.go

+62
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package lib_test
1818
import (
1919
"encoding/json"
2020
"fmt"
21+
"io"
22+
"net/http"
2123
"strings"
2224
"testing"
2325
"time"
@@ -1254,3 +1256,63 @@ func TestUpgradeDoesNotTryToUpgradeBundledCoreLibraries(t *testing.T) {
12541256
// Empty output means nothing has been updated as expected
12551257
require.Empty(t, stdout)
12561258
}
1259+
1260+
func downloadLib(t *testing.T, url string, zipPath *paths.Path) {
1261+
response, err := http.Get(url)
1262+
require.NoError(t, err)
1263+
require.Equal(t, response.StatusCode, 200)
1264+
zip, err := zipPath.Create()
1265+
require.NoError(t, err)
1266+
_, err = io.Copy(zip, response.Body)
1267+
require.NoError(t, err)
1268+
require.NoError(t, response.Body.Close())
1269+
require.NoError(t, zip.Close())
1270+
}
1271+
1272+
func TestInstallGitUrlAndZipPathFlagsVisibility(t *testing.T) {
1273+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1274+
defer env.CleanUp()
1275+
1276+
// Verifies installation fail because flags are not found
1277+
gitUrl := "https://github.com/arduino-libraries/WiFi101.git"
1278+
_, stderr, err := cli.Run("lib", "install", "--git-url", gitUrl)
1279+
require.Error(t, err)
1280+
require.Contains(t, string(stderr), "--git-url and --zip-path are disabled by default, for more information see:")
1281+
1282+
// Download library
1283+
url := "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
1284+
zipPath := cli.DownloadDir().Join("libraries", "AudioZero.zip")
1285+
require.NoError(t, zipPath.Parent().MkdirAll())
1286+
downloadLib(t, url, zipPath)
1287+
1288+
_, stderr, err = cli.Run("lib", "install", "--zip-path", zipPath.String())
1289+
require.Error(t, err)
1290+
require.Contains(t, string(stderr), "--git-url and --zip-path are disabled by default, for more information see:")
1291+
1292+
envVar := cli.GetDefaultEnv()
1293+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1294+
// Verifies installation is successful when flags are enabled with env var
1295+
stdout, _, err := cli.RunWithCustomEnv(envVar, "lib", "install", "--git-url", gitUrl)
1296+
require.NoError(t, err)
1297+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1298+
1299+
stdout, _, err = cli.RunWithCustomEnv(envVar, "lib", "install", "--zip-path", zipPath.String())
1300+
require.NoError(t, err)
1301+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1302+
1303+
// Uninstall libraries to install them again
1304+
_, _, err = cli.Run("lib", "uninstall", "WiFi101", "AudioZero")
1305+
require.NoError(t, err)
1306+
1307+
// Verifies installation is successful when flags are enabled with settings file
1308+
_, _, err = cli.RunWithCustomEnv(envVar, "config", "init", "--dest-dir", ".")
1309+
require.NoError(t, err)
1310+
1311+
stdout, _, err = cli.Run("lib", "install", "--git-url", gitUrl)
1312+
require.NoError(t, err)
1313+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1314+
1315+
stdout, _, err = cli.Run("lib", "install", "--zip-path", zipPath.String())
1316+
require.NoError(t, err)
1317+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1318+
}

Diff for: test/test_lib.py

-47
Original file line numberDiff line numberDiff line change
@@ -49,53 +49,6 @@ def download_lib(url, download_dir):
4949
z.close()
5050

5151

52-
def test_install_git_url_and_zip_path_flags_visibility(run_command, data_dir, downloads_dir):
53-
# Verifies installation fail because flags are not found
54-
git_url = "https://github.com/arduino-libraries/WiFi101.git"
55-
res = run_command(["lib", "install", "--git-url", git_url])
56-
assert res.failed
57-
assert "--git-url and --zip-path are disabled by default, for more information see:" in res.stderr
58-
59-
# Download library
60-
url = "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
61-
zip_path = Path(downloads_dir, "libraries", "AudioZero.zip")
62-
zip_path.parent.mkdir(parents=True, exist_ok=True)
63-
download_lib(url, zip_path)
64-
65-
res = run_command(["lib", "install", "--zip-path", zip_path])
66-
assert res.failed
67-
assert "--git-url and --zip-path are disabled by default, for more information see:" in res.stderr
68-
69-
env = {
70-
"ARDUINO_DATA_DIR": data_dir,
71-
"ARDUINO_DOWNLOADS_DIR": downloads_dir,
72-
"ARDUINO_SKETCHBOOK_DIR": data_dir,
73-
"ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL": "true",
74-
}
75-
# Verifies installation is successful when flags are enabled with env var
76-
res = run_command(["lib", "install", "--git-url", git_url], custom_env=env)
77-
assert res.ok
78-
assert "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." in res.stdout
79-
80-
res = run_command(["lib", "install", "--zip-path", zip_path], custom_env=env)
81-
assert res.ok
82-
assert "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." in res.stdout
83-
84-
# Uninstall libraries to install them again
85-
assert run_command(["lib", "uninstall", "WiFi101", "AudioZero"])
86-
87-
# Verifies installation is successful when flags are enabled with settings file
88-
assert run_command(["config", "init", "--dest-dir", "."], custom_env=env)
89-
90-
res = run_command(["lib", "install", "--git-url", git_url])
91-
assert res.ok
92-
assert "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." in res.stdout
93-
94-
res = run_command(["lib", "install", "--zip-path", zip_path])
95-
assert res.ok
96-
assert "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." in res.stdout
97-
98-
9952
def test_install_with_zip_path(run_command, data_dir, downloads_dir):
10053
# Initialize configs to enable --zip-path flag
10154
env = {

0 commit comments

Comments
 (0)