Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit f6f2ee4

Browse files
committedDec 13, 2022
Migrate TestInstallGitInvalidLibrary from test_lib.py to lib_test.go
1 parent 6ec7f38 commit f6f2ee4

File tree

2 files changed

+64
-46
lines changed

2 files changed

+64
-46
lines changed
 

‎internal/integrationtest/lib/lib_test.go

+64
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,14 @@ import (
2222
"net/http"
2323
"strings"
2424
"testing"
25+
"time"
2526

2627
"github.com/arduino/arduino-cli/internal/integrationtest"
2728
"github.com/arduino/go-paths-helper"
2829
"github.com/stretchr/testify/require"
2930
"go.bug.st/testifyjson/requirejson"
3031
"gopkg.in/src-d/go-git.v4"
32+
"gopkg.in/src-d/go-git.v4/plumbing/object"
3133
)
3234

3335
func TestLibUpgradeCommand(t *testing.T) {
@@ -1171,3 +1173,65 @@ func TestInstallZipInvalidLibrary(t *testing.T) {
11711173
require.Error(t, err)
11721174
require.Contains(t, string(stderr), "library not valid")
11731175
}
1176+
1177+
func TestInstallGitInvalidLibrary(t *testing.T) {
1178+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1179+
defer env.CleanUp()
1180+
1181+
// Initialize configs to enable --zip-path flag
1182+
envVar := cli.GetDefaultEnv()
1183+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1184+
_, _, err := cli.RunWithCustomEnv(envVar, "config", "init", "--dest-dir", ".")
1185+
require.NoError(t, err)
1186+
1187+
// Create fake library repository
1188+
repoDir := cli.SketchbookDir().Join("lib-without-header")
1189+
repo, err := git.PlainInit(repoDir.String(), false)
1190+
require.NoError(t, err)
1191+
libProperties := repoDir.Join("library.properties")
1192+
f, err := libProperties.Create()
1193+
require.NoError(t, err)
1194+
f.Close()
1195+
tree, err := repo.Worktree()
1196+
require.NoError(t, err)
1197+
_, err = tree.Add("library.properties")
1198+
require.NoError(t, err)
1199+
_, err = tree.Commit("First commit", &git.CommitOptions{
1200+
All: false, Author: &object.Signature{Name: "a", Email: "b", When: time.Now()}, Committer: nil, Parents: nil, SignKey: nil})
1201+
require.NoError(t, err)
1202+
1203+
libInstallDir := cli.SketchbookDir().Join("libraries", "lib-without-header")
1204+
// Verifies library is not already installed
1205+
require.NoDirExists(t, libInstallDir.String())
1206+
1207+
_, stderr, err := cli.RunWithCustomEnv(envVar, "lib", "install", "--git-url", repoDir.String())
1208+
require.Error(t, err)
1209+
require.Contains(t, string(stderr), "library not valid")
1210+
require.NoDirExists(t, libInstallDir.String())
1211+
1212+
// Create another fake library repository
1213+
repoDir = cli.SketchbookDir().Join("lib-without-properties")
1214+
repo, err = git.PlainInit(repoDir.String(), false)
1215+
require.NoError(t, err)
1216+
libHeader := repoDir.Join("src", "lib-without-properties.h")
1217+
require.NoError(t, libHeader.Parent().MkdirAll())
1218+
f, err = libHeader.Create()
1219+
require.NoError(t, err)
1220+
f.Close()
1221+
tree, err = repo.Worktree()
1222+
require.NoError(t, err)
1223+
_, err = tree.Add("src/lib-without-properties.h")
1224+
require.NoError(t, err)
1225+
_, err = tree.Commit("First commit", &git.CommitOptions{
1226+
All: false, Author: &object.Signature{Name: "a", Email: "b", When: time.Now()}, Committer: nil, Parents: nil, SignKey: nil})
1227+
require.NoError(t, err)
1228+
1229+
libInstallDir = cli.SketchbookDir().Join("libraries", "lib-without-properties")
1230+
// Verifies library is not already installed
1231+
require.NoDirExists(t, libInstallDir.String())
1232+
1233+
_, stderr, err = cli.RunWithCustomEnv(envVar, "lib", "install", "--git-url", repoDir.String())
1234+
require.Error(t, err)
1235+
require.Contains(t, string(stderr), "library not valid")
1236+
require.NoDirExists(t, libInstallDir.String())
1237+
}

‎test/test_lib.py

-46
Original file line numberDiff line numberDiff line change
@@ -206,52 +206,6 @@ def test_install_with_zip_path_multiple_libraries(run_command, downloads_dir, da
206206
assert ble_install_dir.exists()
207207

208208

209-
def test_install_git_invalid_library(run_command, data_dir, downloads_dir):
210-
# Initialize configs to enable --zip-path flag
211-
env = {
212-
"ARDUINO_DATA_DIR": data_dir,
213-
"ARDUINO_DOWNLOADS_DIR": downloads_dir,
214-
"ARDUINO_SKETCHBOOK_DIR": data_dir,
215-
"ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL": "true",
216-
}
217-
assert run_command(["config", "init", "--dest-dir", "."], custom_env=env)
218-
219-
# Create fake library repository
220-
repo_dir = Path(data_dir, "lib-without-header")
221-
with Repo.init(repo_dir) as repo:
222-
lib_properties = Path(repo_dir, "library.properties")
223-
lib_properties.touch()
224-
repo.index.add([str(lib_properties)])
225-
repo.index.commit("First commit")
226-
227-
lib_install_dir = Path(data_dir, "libraries", "lib-without-header")
228-
# Verifies library is not already installed
229-
assert not lib_install_dir.exists()
230-
231-
res = run_command(["lib", "install", "--git-url", repo_dir], custom_env=env)
232-
assert res.failed
233-
assert "library not valid" in res.stderr
234-
assert not lib_install_dir.exists()
235-
236-
# Create another fake library repository
237-
repo_dir = Path(data_dir, "lib-without-properties")
238-
with Repo.init(repo_dir) as repo:
239-
lib_header = Path(repo_dir, "src", "lib-without-properties.h")
240-
lib_header.parent.mkdir(parents=True, exist_ok=True)
241-
lib_header.touch()
242-
repo.index.add([str(lib_header)])
243-
repo.index.commit("First commit")
244-
245-
lib_install_dir = Path(data_dir, "libraries", "lib-without-properties")
246-
# Verifies library is not already installed
247-
assert not lib_install_dir.exists()
248-
249-
res = run_command(["lib", "install", "--git-url", repo_dir], custom_env=env)
250-
assert res.failed
251-
assert "library not valid" in res.stderr
252-
assert not lib_install_dir.exists()
253-
254-
255209
def test_upgrade_does_not_try_to_upgrade_bundled_core_libraries_in_sketchbook(run_command, data_dir):
256210
test_platform_name = "platform_with_bundled_library"
257211
platform_install_dir = Path(data_dir, "hardware", "arduino-beta-dev", test_platform_name)

0 commit comments

Comments
 (0)
Please sign in to comment.