Skip to content

Commit 73a9b14

Browse files
Migrate TestInstallGitInvalidLibrary from test_lib.py to lib_test.go
1 parent c1b43a4 commit 73a9b14

File tree

2 files changed

+64
-46
lines changed

2 files changed

+64
-46
lines changed

internal/integrationtest/lib/lib_test.go

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,12 +20,14 @@ import (
2020
"fmt"
2121
"strings"
2222
"testing"
23+
"time"
2324

2425
"github.com/arduino/arduino-cli/internal/integrationtest"
2526
"github.com/arduino/go-paths-helper"
2627
"github.com/stretchr/testify/require"
2728
"go.bug.st/testifyjson/requirejson"
2829
"gopkg.in/src-d/go-git.v4"
30+
"gopkg.in/src-d/go-git.v4/plumbing/object"
2931
)
3032

3133
func TestLibUpgradeCommand(t *testing.T) {
@@ -1123,3 +1125,65 @@ func TestInstallZipInvalidLibrary(t *testing.T) {
11231125
require.Error(t, err)
11241126
require.Contains(t, string(stderr), "library not valid")
11251127
}
1128+
1129+
func TestInstallGitInvalidLibrary(t *testing.T) {
1130+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
1131+
defer env.CleanUp()
1132+
1133+
// Initialize configs to enable --zip-path flag
1134+
envVar := cli.GetDefaultEnv()
1135+
envVar["ARDUINO_ENABLE_UNSAFE_LIBRARY_INSTALL"] = "true"
1136+
_, _, err := cli.RunWithCustomEnv(envVar, "config", "init", "--dest-dir", ".")
1137+
require.NoError(t, err)
1138+
1139+
// Create fake library repository
1140+
repoDir := cli.SketchbookDir().Join("lib-without-header")
1141+
repo, err := git.PlainInit(repoDir.String(), false)
1142+
require.NoError(t, err)
1143+
libProperties := repoDir.Join("library.properties")
1144+
f, err := libProperties.Create()
1145+
require.NoError(t, err)
1146+
f.Close()
1147+
tree, err := repo.Worktree()
1148+
require.NoError(t, err)
1149+
_, err = tree.Add("library.properties")
1150+
require.NoError(t, err)
1151+
_, err = tree.Commit("First commit", &git.CommitOptions{
1152+
All: false, Author: &object.Signature{Name: "a", Email: "b", When: time.Now()}, Committer: nil, Parents: nil, SignKey: nil})
1153+
require.NoError(t, err)
1154+
1155+
libInstallDir := cli.SketchbookDir().Join("libraries", "lib-without-header")
1156+
// Verifies library is not already installed
1157+
require.NoDirExists(t, libInstallDir.String())
1158+
1159+
_, stderr, err := cli.RunWithCustomEnv(envVar, "lib", "install", "--git-url", repoDir.String())
1160+
require.Error(t, err)
1161+
require.Contains(t, string(stderr), "library not valid")
1162+
require.NoDirExists(t, libInstallDir.String())
1163+
1164+
// Create another fake library repository
1165+
repoDir = cli.SketchbookDir().Join("lib-without-properties")
1166+
repo, err = git.PlainInit(repoDir.String(), false)
1167+
require.NoError(t, err)
1168+
libHeader := repoDir.Join("src", "lib-without-properties.h")
1169+
require.NoError(t, libHeader.Parent().MkdirAll())
1170+
f, err = libHeader.Create()
1171+
require.NoError(t, err)
1172+
f.Close()
1173+
tree, err = repo.Worktree()
1174+
require.NoError(t, err)
1175+
_, err = tree.Add("src/lib-without-properties.h")
1176+
require.NoError(t, err)
1177+
_, err = tree.Commit("First commit", &git.CommitOptions{
1178+
All: false, Author: &object.Signature{Name: "a", Email: "b", When: time.Now()}, Committer: nil, Parents: nil, SignKey: nil})
1179+
require.NoError(t, err)
1180+
1181+
libInstallDir = cli.SketchbookDir().Join("libraries", "lib-without-properties")
1182+
// Verifies library is not already installed
1183+
require.NoDirExists(t, libInstallDir.String())
1184+
1185+
_, stderr, err = cli.RunWithCustomEnv(envVar, "lib", "install", "--git-url", repoDir.String())
1186+
require.Error(t, err)
1187+
require.Contains(t, string(stderr), "library not valid")
1188+
require.NoDirExists(t, libInstallDir.String())
1189+
}

test/test_lib.py

Lines changed: 0 additions & 46 deletions
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)