Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
finished/fixed implementation of tests
  • Loading branch information
umbynos committed May 6, 2021
commit fca3ac0c166e0020c448798093e6073c920847b4
50 changes: 42 additions & 8 deletions test/test_core.py
Original file line number Diff line number Diff line change
Expand Up @@ -546,15 +546,15 @@ def test_core_search_sorted_results(run_command, httpserver):
assert result.ok

lines = [l.strip().split(maxsplit=2) for l in result.stdout.strip().splitlines()][1:]
not_deprecated = [l for l in lines if not l[2].startsWith("[DEPRECATED]")]
deprecated = [l for l in lines if l[2].startsWith("[DEPRECATED]")]
not_deprecated = [l for l in lines if not l[2].startswith("[DEPRECATED]")]
deprecated = [l for l in lines if l[2].startswith("[DEPRECATED]")]

# verify that results are already sorted correctly
assert not_deprecated == sorted(not_deprecated, key=lambda tokens: tokens[2])
assert deprecated == sorted(deprecated, key=lambda tokens: tokens[2])

# verify that deprecated platforms are the last ones
assert lines == deprecated + not_deprecated
assert lines == not_deprecated + deprecated

# test same behaviour with json output
result = run_command(f"core search --additional-urls={url} --format=json")
Expand All @@ -568,7 +568,7 @@ def test_core_search_sorted_results(run_command, httpserver):
assert not_deprecated == sorted(not_deprecated, key=lambda keys: keys["name"])
assert deprecated == sorted(deprecated, key=lambda keys: keys["name"])
# verify that deprecated platforms are the last ones
assert platforms == deprecated + not_deprecated
assert platforms == not_deprecated + deprecated


def test_core_list_sorted_results(run_command, httpserver):
Expand All @@ -580,31 +580,65 @@ def test_core_list_sorted_results(run_command, httpserver):
url = httpserver.url_for("/test_index.json")
assert run_command(f"core update-index --additional-urls={url}")

# install some core for testing
assert run_command(f"core install test:x86 Retrokits-RK002:arm Package:x86 --additional-urls={url}")

# list all with additional url specified
result = run_command(f"core list --additional-urls={url}")
assert result.ok

lines = [l.strip().split(maxsplit=3) for l in result.stdout.strip().splitlines()][1:]
not_deprecated = [l for l in lines if not l[3].startsWith("[DEPRECATED]")]
deprecated = [l for l in lines if l[3].startsWith("[DEPRECATED]")]
assert len(lines) == 3
not_deprecated = [l for l in lines if not l[3].startswith("[DEPRECATED]")]
deprecated = [l for l in lines if l[3].startswith("[DEPRECATED]")]

# verify that results are already sorted correctly
assert not_deprecated == sorted(not_deprecated, key=lambda tokens: tokens[3])
assert deprecated == sorted(deprecated, key=lambda tokens: tokens[3])

# verify that deprecated platforms are the last ones
assert lines == deprecated + not_deprecated
assert lines == not_deprecated + deprecated

# test same behaviour with json output
result = run_command(f"core list --additional-urls={url} --format=json")
assert result.ok

platforms = json.loads(result.stdout)
assert len(platforms) == 3
not_deprecated = [p for p in platforms if not p.get("deprecated")]
deprecated = [p for p in platforms if p.get("deprecated")]

# verify that results are already sorted correctly
assert not_deprecated == sorted(not_deprecated, key=lambda keys: keys["name"])
assert deprecated == sorted(deprecated, key=lambda keys: keys["name"])
# verify that deprecated platforms are the last ones
assert platforms == deprecated + not_deprecated
assert platforms == not_deprecated + deprecated

def test_core_list_deprecated_platform_with_installed_json(run_command, httpserver, data_dir):
# Set up the server to serve our custom index file
test_index = Path(__file__).parent / "testdata" / "test_index.json"
httpserver.expect_request("/test_index.json").respond_with_data(test_index.read_text())

# update custom index
url = httpserver.url_for("/test_index.json")
assert run_command(f"core update-index --additional-urls={url}")

# install some core for testing
assert run_command(f"core install Package:x86 --additional-urls={url}")

installed_json_file = Path(data_dir, "packages", "Package", "hardware", "x86", "1.2.3", "installed.json")
assert installed_json_file.exists()
installed_json = json.load(installed_json_file.open("r"))
platform = installed_json["packages"][0]["platforms"][0]
del platform["deprecated"]
installed_json["packages"][0]["platforms"][0] = platform
with open(installed_json_file, "w") as f:
json.dump(installed_json, f)

# test same behaviour with json output
result = run_command(f"core list --additional-urls={url} --format=json")
assert result.ok

platforms = json.loads(result.stdout)
assert len(platforms) == 1
assert platforms[0]["deprecated"]