Skip to content

Commit 307d507

Browse files
Migrate TestSearch from test_lib.py to lib_test.go
1 parent fc1f3d8 commit 307d507

File tree

2 files changed

+46
-48
lines changed

2 files changed

+46
-48
lines changed

internal/integrationtest/lib/lib_test.go

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ package lib_test
1717

1818
import (
1919
"encoding/json"
20+
"fmt"
2021
"io"
2122
"net/http"
2223
"strings"
@@ -718,3 +719,48 @@ func TestLibOpsCaseInsensitive(t *testing.T) {
718719
require.NoError(t, err)
719720
requirejson.Len(t, stdout, 0)
720721
}
722+
723+
func TestSearch(t *testing.T) {
724+
env, cli := integrationtest.CreateArduinoCLIWithEnvironment(t)
725+
defer env.CleanUp()
726+
727+
stdout, _, err := cli.Run("lib", "search", "--names")
728+
require.NoError(t, err)
729+
lines := strings.Split(strings.TrimSpace(string(stdout)), "\n")
730+
var libs []string
731+
for i, v := range lines {
732+
lines[i] = strings.TrimSpace(v)
733+
if strings.Contains(v, "Name:") {
734+
libs = append(libs, strings.Trim(strings.SplitN(v, " ", 2)[1], "\""))
735+
}
736+
}
737+
738+
expected := []string{"WiFi101", "WiFi101OTA", "Firebase Arduino based on WiFi101", "WiFi101_Generic"}
739+
require.Subset(t, libs, expected)
740+
741+
stdout, _, err = cli.Run("lib", "search", "--names", "--format", "json")
742+
require.NoError(t, err)
743+
requirejson.Query(t, stdout, ".libraries | length", fmt.Sprint(len(libs)))
744+
745+
runSearch := func(args string, expectedLibs []string) {
746+
stdout, _, err = cli.Run("lib", "search", "--names", "--format", "json", args)
747+
require.NoError(t, err)
748+
libraries := requirejson.Parse(t, stdout).Query("[ .libraries | .[] | .name ]").String()
749+
for _, l := range expectedLibs {
750+
require.Contains(t, libraries, l)
751+
}
752+
}
753+
runSearch("Arduino_MKRIoTCarrier", []string{"Arduino_MKRIoTCarrier"})
754+
runSearch("Arduino mkr iot carrier", []string{"Arduino_MKRIoTCarrier"})
755+
runSearch("mkr iot carrier", []string{"Arduino_MKRIoTCarrier"})
756+
runSearch("mkriotcarrier", []string{"Arduino_MKRIoTCarrier"})
757+
runSearch("dht", []string{"DHT sensor library", "DHT sensor library for ESPx", "DHT12", "SimpleDHT", "TinyDHT sensor library", "SDHT"})
758+
runSearch("dht11", []string{"DHT sensor library", "DHT sensor library for ESPx", "SimpleDHT", "SDHT"})
759+
runSearch("dht12", []string{"DHT12", "DHT12 sensor library", "SDHT"})
760+
runSearch("dht22", []string{"DHT sensor library", "DHT sensor library for ESPx", "SimpleDHT", "SDHT"})
761+
runSearch("dht sensor", []string{"DHT sensor library", "DHT sensor library for ESPx", "SimpleDHT", "SDHT"})
762+
runSearch("sensor dht", []string{})
763+
runSearch("arduino json", []string{"ArduinoJson", "Arduino_JSON"})
764+
runSearch("arduinojson", []string{"ArduinoJson"})
765+
runSearch("json", []string{"ArduinoJson", "Arduino_JSON"})
766+
}

test/test_lib.py

Lines changed: 0 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -146,54 +146,6 @@ def test_install_with_zip_path(run_command, data_dir, downloads_dir):
146146
assert lib_install_dir / "README.adoc" in files
147147

148148

149-
def test_search(run_command):
150-
assert run_command(["update"])
151-
152-
result = run_command(["lib", "search", "--names"])
153-
assert result.ok
154-
lines = [l.strip() for l in result.stdout.strip().splitlines()]
155-
assert "Downloading index: library_index.tar.bz2 downloaded" in lines
156-
libs = [l[6:].strip('"') for l in lines if "Name:" in l]
157-
158-
expected = {"WiFi101", "WiFi101OTA", "Firebase Arduino based on WiFi101", "WiFi101_Generic"}
159-
assert expected == {lib for lib in libs if "WiFi101" in lib}
160-
161-
result = run_command(["lib", "search", "--names", "--format", "json"])
162-
assert result.ok
163-
libs_json = json.loads(result.stdout)
164-
assert len(libs) == len(libs_json.get("libraries"))
165-
166-
result = run_command(["lib", "search", "--names"])
167-
assert result.ok
168-
169-
def run_search(search_args, expected_libraries):
170-
res = run_command(["lib", "search", "--names", "--format", "json"] + search_args.split(" "))
171-
assert res.ok
172-
data = json.loads(res.stdout)
173-
libraries = [l["name"] for l in data["libraries"]]
174-
for l in expected_libraries:
175-
assert l in libraries
176-
177-
run_search("Arduino_MKRIoTCarrier", ["Arduino_MKRIoTCarrier"])
178-
run_search("Arduino mkr iot carrier", ["Arduino_MKRIoTCarrier"])
179-
run_search("mkr iot carrier", ["Arduino_MKRIoTCarrier"])
180-
run_search("mkriotcarrier", ["Arduino_MKRIoTCarrier"])
181-
182-
run_search(
183-
"dht",
184-
["DHT sensor library", "DHT sensor library for ESPx", "DHT12", "SimpleDHT", "TinyDHT sensor library", "SDHT"],
185-
)
186-
run_search("dht11", ["DHT sensor library", "DHT sensor library for ESPx", "SimpleDHT", "SDHT"])
187-
run_search("dht12", ["DHT12", "DHT12 sensor library", "SDHT"])
188-
run_search("dht22", ["DHT sensor library", "DHT sensor library for ESPx", "SimpleDHT", "SDHT"])
189-
run_search("dht sensor", ["DHT sensor library", "DHT sensor library for ESPx", "SimpleDHT", "SDHT"])
190-
run_search("sensor dht", [])
191-
192-
run_search("arduino json", ["ArduinoJson", "Arduino_JSON"])
193-
run_search("arduinojson", ["ArduinoJson"])
194-
run_search("json", ["ArduinoJson", "Arduino_JSON"])
195-
196-
197149
def test_search_paragraph(run_command):
198150
"""
199151
Search for a string that's only present in the `paragraph` field

0 commit comments

Comments
 (0)