Skip to content

Commit f651f7b

Browse files
Migrate TestInstallWithZipPath from test_lib.py to lib_test.go
1 parent 63e4a79 commit f651f7b

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

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)