Skip to content

Commit 0c9d2b6

Browse files
Migrate TestInstallWithZipPathMultipleLibraries from test_lib.py to lib_test.go
1 parent 3e53fb8 commit 0c9d2b6

File tree

2 files changed

+30
-53
lines changed

2 files changed

+30
-53
lines changed

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

+30
Original file line numberDiff line numberDiff line change
@@ -1369,3 +1369,33 @@ func TestInstallWithZipPath(t *testing.T) {
13691369
require.Contains(t, files, libInstallDir.Join("library.properties"))
13701370
require.Contains(t, files, libInstallDir.Join("README.adoc"))
13711371
}
1372+
1373+
func TestInstallWithZipPathMultipleLibraries(t *testing.T) {
1374+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1375+
defer env.CleanUp()
1376+
1377+
_, _, err := cli.Run("update")
1378+
require.NoError(t, err)
1379+
1380+
envVar := cli.GetDefaultEnv()
1381+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1382+
1383+
// Downloads zips to be installed later
1384+
wifiZipPath := cli.DownloadDir().Join("libraries", "WiFi101-0.16.1.zip")
1385+
bleZipPath := cli.DownloadDir().Join("libraries", "ArduinoBLE-1.1.3.zip")
1386+
downloadLib(t, "https://github.com/arduino-libraries/WiFi101/archive/refs/tags/0.16.1.zip", wifiZipPath)
1387+
downloadLib(t, "https://github.com/arduino-libraries/ArduinoBLE/archive/refs/tags/1.1.3.zip", bleZipPath)
1388+
1389+
wifiInstallDir := cli.SketchbookDir().Join("libraries", "WiFi101-0.16.1")
1390+
bleInstallDir := cli.SketchbookDir().Join("libraries", "ArduinoBLE-1.1.3")
1391+
// Verifies libraries are not installed
1392+
require.NoDirExists(t, wifiInstallDir.String())
1393+
require.NoDirExists(t, bleInstallDir.String())
1394+
1395+
_, _, err = cli.RunWithCustomEnv(envVar, "lib", "install", "--zip-path", wifiZipPath.String(), bleZipPath.String())
1396+
require.NoError(t, err)
1397+
1398+
// Verifies libraries are installed
1399+
require.DirExists(t, wifiInstallDir.String())
1400+
require.DirExists(t, bleInstallDir.String())
1401+
}

Diff for: test/test_lib.py

-53
Original file line numberDiff line numberDiff line change
@@ -26,29 +26,6 @@
2626
import re
2727

2828

29-
# Util function to download library from URL
30-
def download_lib(url, download_dir):
31-
tmp = Path(tempfile.TemporaryDirectory().name)
32-
tmp.mkdir(parents=True, exist_ok=True)
33-
regex = re.compile(r"^(.*)-[0-9]+.[0-9]+.[0-9]")
34-
response = requests.get(url)
35-
# Download and unzips library removing version suffix
36-
with zipfile.ZipFile(io.BytesIO(response.content)) as thezip:
37-
for zipinfo in thezip.infolist():
38-
with thezip.open(zipinfo) as f:
39-
dest_dir = tmp / regex.sub("\\g<1>", zipinfo.filename)
40-
if zipinfo.is_dir():
41-
dest_dir.mkdir(parents=True, exist_ok=True)
42-
else:
43-
dest_dir.write_bytes(f.read())
44-
45-
# Recreates zip with folder without version suffix
46-
z = zipfile.ZipFile(download_dir, "w")
47-
for f in tmp.glob("**/*"):
48-
z.write(f, arcname=f.relative_to(tmp))
49-
z.close()
50-
51-
5229
@pytest.mark.skipif(
5330
platform.system() == "Windows",
5431
reason="Using a file uri as git url doesn't work on Windows, "
@@ -77,33 +54,3 @@ def test_install_with_git_url_local_file_uri(run_command, downloads_dir, data_di
7754

7855
# Verifies library is installed
7956
assert lib_install_dir.exists()
80-
81-
82-
def test_install_with_zip_path_multiple_libraries(run_command, downloads_dir, data_dir):
83-
assert run_command(["update"])
84-
85-
env = {
86-
"ARDUINO_DATA_DIR": data_dir,
87-
"ARDUINO_DOWNLOADS_DIR": downloads_dir,
88-
"ARDUINO_SKETCHBOOK_DIR": data_dir,
89-
"ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL": "true",
90-
}
91-
92-
# Downloads zip to be installed later
93-
wifi_zip_path = Path(downloads_dir, "libraries", "WiFi101-0.16.1.zip")
94-
ble_zip_path = Path(downloads_dir, "libraries", "ArduinoBLE-1.1.3.zip")
95-
download_lib("https://github.com/arduino-libraries/WiFi101/archive/refs/tags/0.16.1.zip", wifi_zip_path)
96-
download_lib("https://github.com/arduino-libraries/ArduinoBLE/archive/refs/tags/1.1.3.zip", ble_zip_path)
97-
98-
wifi_install_dir = Path(data_dir, "libraries", "WiFi101")
99-
ble_install_dir = Path(data_dir, "libraries", "ArduinoBLE")
100-
101-
# Verifies libraries are not installed
102-
assert not wifi_install_dir.exists()
103-
assert not ble_install_dir.exists()
104-
105-
assert run_command(["lib", "install", "--zip-path", wifi_zip_path, ble_zip_path], custom_env=env)
106-
107-
# Verifies library are installed
108-
assert wifi_install_dir.exists()
109-
assert ble_install_dir.exists()

0 commit comments

Comments
 (0)