Skip to content

Commit 11aaefe

Browse files
Migrate TestInstallWithZipPath from test_lib.py to lib_test.go
1 parent 8a7798f commit 11aaefe

File tree

2 files changed

+53
-50
lines changed

2 files changed

+53
-50
lines changed

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

+53
Original file line numberDiff line numberDiff line change
@@ -1317,3 +1317,56 @@ func TestInstallGitUrlAndZipPathFlagsVisibility(t *testing.T) {
13171317
require.NoError(t, err)
13181318
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
13191319
}
1320+
1321+
func TestInstallWithZipPath(t *testing.T) {
1322+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1323+
defer env.CleanUp()
1324+
1325+
// Initialize configs to enable --zip-path flag
1326+
envVar := cli.GetDefaultEnv()
1327+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1328+
_, _, err := cli.RunWithCustomEnv(envVar, "config", "init", "--dest-dir", ".")
1329+
require.NoError(t, err)
1330+
1331+
// Download a specific lib version
1332+
// Download library
1333+
url := "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
1334+
zipPath := cli.DownloadDir().Join("libraries", "AudioZero.zip")
1335+
require.NoError(t, zipPath.Parent().MkdirAll())
1336+
downloadLib(t, url, zipPath)
1337+
1338+
libInstallDir := cli.SketchbookDir().Join("libraries", "AudioZero-1.1.1")
1339+
// Verifies library is not already installed
1340+
require.NoDirExists(t, libInstallDir.String())
1341+
1342+
// Test zip-path install
1343+
stdout, _, err := cli.Run("lib", "install", "--zip-path", zipPath.String())
1344+
require.NoError(t, err)
1345+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1346+
1347+
// Verifies library is installed in expected path
1348+
require.DirExists(t, libInstallDir.String())
1349+
files, err := libInstallDir.ReadDirRecursive()
1350+
require.NoError(t, err)
1351+
require.Contains(t, files, libInstallDir.Join("examples", "SimpleAudioPlayerZero", "SimpleAudioPlayerZero.ino"))
1352+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.h"))
1353+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.cpp"))
1354+
require.Contains(t, files, libInstallDir.Join("keywords.txt"))
1355+
require.Contains(t, files, libInstallDir.Join("library.properties"))
1356+
require.Contains(t, files, libInstallDir.Join("README.adoc"))
1357+
1358+
// Reinstall library
1359+
_, _, err = cli.Run("lib", "install", "--zip-path", zipPath.String())
1360+
require.NoError(t, err)
1361+
1362+
// Verifies library remains installed
1363+
require.DirExists(t, libInstallDir.String())
1364+
files, err = libInstallDir.ReadDirRecursive()
1365+
require.NoError(t, err)
1366+
require.Contains(t, files, libInstallDir.Join("examples", "SimpleAudioPlayerZero", "SimpleAudioPlayerZero.ino"))
1367+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.h"))
1368+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.cpp"))
1369+
require.Contains(t, files, libInstallDir.Join("keywords.txt"))
1370+
require.Contains(t, files, libInstallDir.Join("library.properties"))
1371+
require.Contains(t, files, libInstallDir.Join("README.adoc"))
1372+
}

Diff for: test/test_lib.py

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

5151

52-
def test_install_with_zip_path(run_command, data_dir, downloads_dir):
53-
# Initialize configs to enable --zip-path flag
54-
env = {
55-
"ARDUINO_DATA_DIR": data_dir,
56-
"ARDUINO_DOWNLOADS_DIR": downloads_dir,
57-
"ARDUINO_SKETCHBOOK_DIR": data_dir,
58-
"ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL": "true",
59-
}
60-
assert run_command(["config", "init", "--dest-dir", "."], custom_env=env)
61-
62-
# Download a specific lib version
63-
# Download library
64-
url = "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
65-
zip_path = Path(downloads_dir, "libraries", "AudioZero.zip")
66-
zip_path.parent.mkdir(parents=True, exist_ok=True)
67-
download_lib(url, zip_path)
68-
69-
lib_install_dir = Path(data_dir, "libraries", "AudioZero")
70-
# Verifies library is not already installed
71-
assert not lib_install_dir.exists()
72-
73-
# Test zip-path install
74-
res = run_command(["lib", "install", "--zip-path", zip_path])
75-
assert res.ok
76-
assert "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk." in res.stdout
77-
78-
# Verifies library is installed in expected path
79-
assert lib_install_dir.exists()
80-
files = list(lib_install_dir.glob("**/*"))
81-
assert lib_install_dir / "examples" / "SimpleAudioPlayerZero" / "SimpleAudioPlayerZero.ino" in files
82-
assert lib_install_dir / "src" / "AudioZero.h" in files
83-
assert lib_install_dir / "src" / "AudioZero.cpp" in files
84-
assert lib_install_dir / "keywords.txt" in files
85-
assert lib_install_dir / "library.properties" in files
86-
assert lib_install_dir / "README.adoc" in files
87-
88-
# Reinstall library
89-
assert run_command(["lib", "install", "--zip-path", zip_path])
90-
91-
# Verifies library remains installed
92-
assert lib_install_dir.exists()
93-
files = list(lib_install_dir.glob("**/*"))
94-
assert lib_install_dir / "examples" / "SimpleAudioPlayerZero" / "SimpleAudioPlayerZero.ino" in files
95-
assert lib_install_dir / "src" / "AudioZero.h" in files
96-
assert lib_install_dir / "src" / "AudioZero.cpp" in files
97-
assert lib_install_dir / "keywords.txt" in files
98-
assert lib_install_dir / "library.properties" in files
99-
assert lib_install_dir / "README.adoc" in files
100-
101-
10252
@pytest.mark.skipif(
10353
platform.system() == "Windows",
10454
reason="Using a file uri as git url doesn't work on Windows, "

0 commit comments

Comments
 (0)