Skip to content

Commit 55648b3

Browse files
Migrate TestInstallWithZipPath from test_lib.py to lib_test.go
1 parent de34a89 commit 55648b3

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
@@ -1392,3 +1392,56 @@ func TestInstallGitUrlAndZipPathFlagsVisibility(t *testing.T) {
13921392
require.NoError(t, err)
13931393
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
13941394
}
1395+
1396+
func TestInstallWithZipPath(t *testing.T) {
1397+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1398+
defer env.CleanUp()
1399+
1400+
// Initialize configs to enable --zip-path flag
1401+
envVar := cli.GetDefaultEnv()
1402+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1403+
_, _, err := cli.RunWithCustomEnv(envVar, "config", "init", "--dest-dir", ".")
1404+
require.NoError(t, err)
1405+
1406+
// Download a specific lib version
1407+
// Download library
1408+
url := "https://github.com/arduino-libraries/AudioZero/archive/refs/tags/1.1.1.zip"
1409+
zipPath := cli.DownloadDir().Join("libraries", "AudioZero.zip")
1410+
require.NoError(t, zipPath.Parent().MkdirAll())
1411+
downloadLib(t, url, zipPath)
1412+
1413+
libInstallDir := cli.SketchbookDir().Join("libraries", "AudioZero")
1414+
// Verifies library is not already installed
1415+
require.NoDirExists(t, libInstallDir.String())
1416+
1417+
// Test zip-path install
1418+
stdout, _, err := cli.Run("lib", "install", "--zip-path", zipPath.String())
1419+
require.NoError(t, err)
1420+
require.Contains(t, string(stdout), "--git-url and --zip-path flags allow installing untrusted files, use it at your own risk.")
1421+
1422+
// Verifies library is installed in expected path
1423+
require.DirExists(t, libInstallDir.String())
1424+
files, err := libInstallDir.ReadDirRecursive()
1425+
require.NoError(t, err)
1426+
require.Contains(t, files, libInstallDir.Join("examples", "SimpleAudioPlayerZero", "SimpleAudioPlayerZero.ino"))
1427+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.h"))
1428+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.cpp"))
1429+
require.Contains(t, files, libInstallDir.Join("keywords.txt"))
1430+
require.Contains(t, files, libInstallDir.Join("library.properties"))
1431+
require.Contains(t, files, libInstallDir.Join("README.adoc"))
1432+
1433+
// Reinstall library
1434+
_, _, err = cli.Run("lib", "install", "--zip-path", zipPath.String())
1435+
require.NoError(t, err)
1436+
1437+
// Verifies library remains installed
1438+
require.DirExists(t, libInstallDir.String())
1439+
files, err = libInstallDir.ReadDirRecursive()
1440+
require.NoError(t, err)
1441+
require.Contains(t, files, libInstallDir.Join("examples", "SimpleAudioPlayerZero", "SimpleAudioPlayerZero.ino"))
1442+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.h"))
1443+
require.Contains(t, files, libInstallDir.Join("src", "AudioZero.cpp"))
1444+
require.Contains(t, files, libInstallDir.Join("keywords.txt"))
1445+
require.Contains(t, files, libInstallDir.Join("library.properties"))
1446+
require.Contains(t, files, libInstallDir.Join("README.adoc"))
1447+
}

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)