Skip to content

Commit c588011

Browse files
mascimastrolinux
authored andcommitted
Add --additional-urls flag (#316)
* add --additional-urls flag * add testdata * add core search test
1 parent 4454422 commit c588011

File tree

6 files changed

+66
-2
lines changed

6 files changed

+66
-2
lines changed

Diff for: cli/cli.go

+1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ func createCliCommandTree(cmd *cobra.Command) {
7878
cmd.PersistentFlags().BoolVar(&globals.Debug, "debug", false, "Enables debug output (super verbose, used to debug the CLI).")
7979
cmd.PersistentFlags().StringVar(&outputFormat, "format", "text", "The output format, can be [text|json].")
8080
cmd.PersistentFlags().StringVar(&globals.YAMLConfigFile, "config-file", "", "The custom config file (if not specified the default will be used).")
81+
cmd.PersistentFlags().StringSliceVar(&globals.AdditionalUrls, "additional-urls", []string{}, "Additional URLs for the board manager.")
8182
}
8283

8384
func preRun(cmd *cobra.Command, args []string) {

Diff for: cli/globals/globals.go

+2
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ var (
3939
Config *configs.Configuration
4040
// YAMLConfigFile contains the path to the config file
4141
YAMLConfigFile string
42+
// AdditionalUrls contains the list of additional urls the boards manager can use
43+
AdditionalUrls []string
4244
)
4345

4446
func getHTTPClientHeader() http.Header {

Diff for: cli/instance/instance.go

+5
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,11 @@ func initInstance() *rpc.InitResp {
6262

6363
func packageManagerInitReq() *rpc.InitReq {
6464
urls := []string{}
65+
66+
for _, urlString := range globals.AdditionalUrls {
67+
urls = append(urls, urlString)
68+
}
69+
6570
for _, URL := range globals.Config.BoardManagerAdditionalUrls {
6671
urls = append(urls, URL.String())
6772
}

Diff for: test/test_board.py

+22-2
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020

2121
@pytest.mark.skipif(running_on_ci(), reason="VMs have no serial ports")
22-
def test_board_list(run_command):
22+
def test_core_list(run_command):
2323
result = run_command("core update-index")
2424
assert result.ok
2525
result = run_command("board list --format json")
@@ -33,9 +33,29 @@ def test_board_list(run_command):
3333

3434

3535
@pytest.mark.skipif(running_on_ci(), reason="VMs have no serial ports")
36-
def test_board_listall(run_command):
36+
def test_core_listall(run_command):
3737
assert run_command("core update-index")
3838
result = run_command("board listall")
3939
print(result.stderr, result.stdout)
4040
assert result.ok
4141
assert ["Board", "Name", "FQBN"] == result.stdout.splitlines()[0].strip().split()
42+
43+
44+
def test_core_search(run_command):
45+
url = "https://raw.githubusercontent.com/arduino/arduino-cli/master/test/testdata/test_index.json"
46+
assert run_command("core update-index --additional-urls={}".format(url))
47+
# default search
48+
result = run_command("core search avr")
49+
assert result.ok
50+
assert 2 < len(result.stdout.splitlines())
51+
result = run_command("core search avr --format json")
52+
assert result.ok
53+
data = json.loads(result.stdout)
54+
assert 0 < len(data)
55+
# additional URL
56+
result = run_command(
57+
"core search test_core --format json --additional-urls={}".format(url)
58+
)
59+
assert result.ok
60+
data = json.loads(result.stdout)
61+
assert 1 == len(data)

Diff for: test/testdata/core.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
HELO

Diff for: test/testdata/test_index.json

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"packages": [
3+
{
4+
"maintainer": "Arduino",
5+
"help": {
6+
"online": "https://github.com/Arduino/arduino-cli"
7+
},
8+
"websiteURL": "https://github.com/Arduino/arduino-cli",
9+
"platforms": [
10+
{
11+
"category": "Test Category",
12+
"help": {
13+
"online": "https://github.com/Arduino/arduino-cli"
14+
},
15+
"url": "https://raw.githubusercontent.com/arduino/arduino-cli/massi/additional-urls/test/testdata/core.txt",
16+
"checksum": "SHA-256:1ba93f6aea56842dfef065c0f5eb0a34c1f78b72b3f2426c94e47ba3a359c9ff",
17+
"name": "test_core",
18+
"version": "1.0.0",
19+
"architecture": "x86",
20+
"archiveFileName": "core.txt",
21+
"size": "2799",
22+
"toolsDependencies": [],
23+
"boards": [
24+
{
25+
"name": "Test Board"
26+
}
27+
]
28+
}
29+
],
30+
"tools": [],
31+
"email": "[email protected]",
32+
"name": "test"
33+
}
34+
]
35+
}

0 commit comments

Comments
 (0)