Skip to content

Commit 1a1edfd

Browse files
Migrate TestSetSliceWithMultipleArguments from test_config.py to config_test.go
1 parent 5020c14 commit 1a1edfd

File tree

2 files changed

+87
-66
lines changed

2 files changed

+87
-66
lines changed

internal/integrationtest/config/config_test.go

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -577,3 +577,90 @@ func TestSetSliceWithSingleArgument(t *testing.T) {
577577
require.NoError(t, err)
578578
requirejson.Query(t, stdout, ".board_manager | .additional_urls", "[\"https://example.com/yet_another_package_example_index.json\"]")
579579
}
580+
581+
func TestSetSliceWithMultipleArguments(t *testing.T) {
582+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
583+
defer env.CleanUp()
584+
585+
// Create a config file
586+
_, _, err := cli.Run("config", "init", "--dest-dir", ".")
587+
require.NoError(t, err)
588+
589+
// Verifies default state
590+
stdout, _, err := cli.Run("config", "dump", "--format", "json")
591+
require.NoError(t, err)
592+
requirejson.Query(t, stdout, ".board_manager | .additional_urls", "[]")
593+
594+
// Set some URLs in the list
595+
urls := [7]string{
596+
"https://example.com/first_package_index.json",
597+
"https://example.com/second_package_index.json",
598+
}
599+
_, _, err = cli.Run("config", "set", "board_manager.additional_urls", urls[0], urls[1])
600+
require.NoError(t, err)
601+
602+
// Verifies value is changed
603+
stdout, _, err = cli.Run("config", "dump", "--format", "json")
604+
require.NoError(t, err)
605+
requirejson.Query(t, stdout, ".board_manager | .additional_urls | length", "2")
606+
requirejson.Contains(t, stdout, `
607+
{
608+
"board_manager": {
609+
"additional_urls": [
610+
"https://example.com/first_package_index.json",
611+
"https://example.com/second_package_index.json"
612+
]
613+
}
614+
}`)
615+
616+
// Set some URLs in the list
617+
urls = [7]string{
618+
"https://example.com/third_package_index.json",
619+
"https://example.com/fourth_package_index.json",
620+
}
621+
_, _, err = cli.Run("config", "set", "board_manager.additional_urls", urls[0], urls[1])
622+
require.NoError(t, err)
623+
624+
// Verifies previous value is overwritten
625+
stdout, _, err = cli.Run("config", "dump", "--format", "json")
626+
require.NoError(t, err)
627+
requirejson.Query(t, stdout, ".board_manager | .additional_urls | length", "2")
628+
requirejson.Contains(t, stdout, `
629+
{
630+
"board_manager": {
631+
"additional_urls": [
632+
"https://example.com/third_package_index.json",
633+
"https://example.com/fourth_package_index.json"
634+
]
635+
}
636+
}`)
637+
638+
// Sets a third set of 7 URLs (with only 4 unique values)
639+
urls = [7]string{
640+
"https://example.com/first_package_index.json",
641+
"https://example.com/second_package_index.json",
642+
"https://example.com/first_package_index.json",
643+
"https://example.com/fifth_package_index.json",
644+
"https://example.com/second_package_index.json",
645+
"https://example.com/sixth_package_index.json",
646+
"https://example.com/first_package_index.json",
647+
}
648+
_, _, err = cli.Run("config", "set", "board_manager.additional_urls", urls[0], urls[1], urls[2], urls[3], urls[4], urls[5], urls[6])
649+
require.NoError(t, err)
650+
651+
// Verifies all unique values exist in config
652+
stdout, _, err = cli.Run("config", "dump", "--format", "json")
653+
require.NoError(t, err)
654+
requirejson.Query(t, stdout, ".board_manager | .additional_urls | length", "4")
655+
requirejson.Contains(t, stdout, `
656+
{
657+
"board_manager": {
658+
"additional_urls": [
659+
"https://example.com/first_package_index.json",
660+
"https://example.com/second_package_index.json",
661+
"https://example.com/fifth_package_index.json",
662+
"https://example.com/sixth_package_index.json"
663+
]
664+
}
665+
}`)
666+
}

test/test_config.py

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -17,72 +17,6 @@
1717
import yaml
1818

1919

20-
def test_set_slice_with_multiple_arguments(run_command):
21-
# Create a config file
22-
assert run_command(["config", "init", "--dest-dir", "."])
23-
24-
# Verifies default state
25-
result = run_command(["config", "dump", "--format", "json"])
26-
assert result.ok
27-
settings_json = json.loads(result.stdout)
28-
assert [] == settings_json["board_manager"]["additional_urls"]
29-
30-
# Set some URLs in the list
31-
urls = [
32-
"https://example.com/first_package_index.json",
33-
"https://example.com/second_package_index.json",
34-
]
35-
assert run_command(["config", "set", "board_manager.additional_urls"] + urls)
36-
37-
# Verifies value is changed
38-
result = run_command(["config", "dump", "--format", "json"])
39-
assert result.ok
40-
settings_json = json.loads(result.stdout)
41-
assert 2 == len(settings_json["board_manager"]["additional_urls"])
42-
assert urls[0] in settings_json["board_manager"]["additional_urls"]
43-
assert urls[1] in settings_json["board_manager"]["additional_urls"]
44-
45-
# Sets another set of URL
46-
urls = [
47-
"https://example.com/third_package_index.json",
48-
"https://example.com/fourth_package_index.json",
49-
]
50-
assert run_command(["config", "set", "board_manager.additional_urls"] + urls)
51-
52-
# Verifies previous value is overwritten
53-
result = run_command(["config", "dump", "--format", "json"])
54-
assert result.ok
55-
settings_json = json.loads(result.stdout)
56-
assert 2 == len(settings_json["board_manager"]["additional_urls"])
57-
assert urls[0] in settings_json["board_manager"]["additional_urls"]
58-
assert urls[1] in settings_json["board_manager"]["additional_urls"]
59-
60-
# Sets a third set of 7 URLs (with only 4 unique values)
61-
urls = [
62-
"https://example.com/first_package_index.json",
63-
"https://example.com/second_package_index.json",
64-
"https://example.com/first_package_index.json",
65-
"https://example.com/fifth_package_index.json",
66-
"https://example.com/second_package_index.json",
67-
"https://example.com/sixth_package_index.json",
68-
"https://example.com/first_package_index.json",
69-
]
70-
assert run_command(["config", "set", "board_manager.additional_urls"] + urls)
71-
72-
# Verifies all unique values exist in config
73-
result = run_command(["config", "dump", "--format", "json"])
74-
assert result.ok
75-
settings_json = json.loads(result.stdout)
76-
assert 4 == len(settings_json["board_manager"]["additional_urls"])
77-
assert urls[0] in settings_json["board_manager"]["additional_urls"]
78-
assert urls[1] in settings_json["board_manager"]["additional_urls"]
79-
assert urls[2] in settings_json["board_manager"]["additional_urls"]
80-
assert urls[3] in settings_json["board_manager"]["additional_urls"]
81-
assert urls[4] in settings_json["board_manager"]["additional_urls"]
82-
assert urls[5] in settings_json["board_manager"]["additional_urls"]
83-
assert urls[6] in settings_json["board_manager"]["additional_urls"]
84-
85-
8620
def test_set_string_with_single_argument(run_command):
8721
# Create a config file
8822
assert run_command(["config", "init", "--dest-dir", "."])

0 commit comments

Comments
 (0)