Skip to content

Commit f5b2c50

Browse files
Migrate TestInstallWithZipPath from test_lib.py to lib_test.go
1 parent be5e687 commit f5b2c50

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
@@ -1363,3 +1363,56 @@ func TestInstallGitUrlAndZipPathFlagsVisibility(t *testing.T) {
13631363
require.NoError(t, err)
13641364
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
13651365
}
1366+
1367+
func TestInstallWithZipPath(t *testing.T) {
1368+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1369+
defer env.CleanUp()
1370+
1371+
// Initialize configs to enable --zip-path flag
1372+
envVar := cli.GetDefaultEnv()
1373+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1374+
_, _, err := cli.RunWithCustomEnv(envVar, "config", "init", "--dest-dir", ".")
1375+
require.NoError(t, err)
1376+
1377+
// Download a specific lib version
1378+
// Download library
1379+
url := "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
1380+
zipPath := cli.DownloadDir().Join("libraries", "AudioZero.zip")
1381+
require.NoError(t, zipPath.Parent().MkdirAll())
1382+
downloadLib(t, url, zipPath)
1383+
1384+
libInstallDir := cli.SketchbookDir().Join("libraries", "AudioZero")
1385+
// Verifies library is not already installed
1386+
require.NoDirExists(t, libInstallDir.String())
1387+
1388+
// Test zip-path install
1389+
stdout, _, err := cli.Run("lib", "install", "--zip-path", zipPath.String())
1390+
require.NoError(t, err)
1391+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1392+
1393+
// Verifies library is installed in expected path
1394+
require.DirExists(t, libInstallDir.String())
1395+
files, err := libInstallDir.ReadDirRecursive()
1396+
require.NoError(t, err)
1397+
require.Contains(t, files, libInstallDir.Join("examples", "SimpleAudioPlayerZero", "SimpleAudioPlayerZero.ino"))
1398+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.h"))
1399+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.cpp"))
1400+
require.Contains(t, files, libInstallDir.Join("keywords.txt"))
1401+
require.Contains(t, files, libInstallDir.Join("library.properties"))
1402+
require.Contains(t, files, libInstallDir.Join("README.adoc"))
1403+
1404+
// Reinstall library
1405+
_, _, err = cli.Run("lib", "install", "--zip-path", zipPath.String())
1406+
require.NoError(t, err)
1407+
1408+
// Verifies library remains installed
1409+
require.DirExists(t, libInstallDir.String())
1410+
files, err = libInstallDir.ReadDirRecursive()
1411+
require.NoError(t, err)
1412+
require.Contains(t, files, libInstallDir.Join("examples", "SimpleAudioPlayerZero", "SimpleAudioPlayerZero.ino"))
1413+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.h"))
1414+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.cpp"))
1415+
require.Contains(t, files, libInstallDir.Join("keywords.txt"))
1416+
require.Contains(t, files, libInstallDir.Join("library.properties"))
1417+
require.Contains(t, files, libInstallDir.Join("README.adoc"))
1418+
}

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)