Skip to content

Commit 7da3dbc

Browse files
tarekbadrshafrittoli
authored andcommitted
add artifact tests
1 parent c79c311 commit 7da3dbc

File tree

1 file changed

+80
-0
lines changed

1 file changed

+80
-0
lines changed

cli/tests/test_artifact.py

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
"""Unit tests for artifact."""
2+
import pytest
3+
from unittest.mock import patch
4+
from click.testing import CliRunner
5+
6+
from cdevents.cli.artifact import packaged, published
7+
from cdevents.cli.cdevents_command import CDeventsCommand
8+
9+
# pylint: disable=missing-function-docstring, protected-access, missing-class-docstring
10+
11+
@pytest.fixture
12+
def runner() -> CliRunner:
13+
return CliRunner()
14+
15+
16+
ID_ARG = "id"
17+
NAME_ARG = "name"
18+
VERSION_ARG = "version"
19+
DATA_ARG = "data"
20+
21+
@pytest.mark.unit
22+
def test_packaged(runner: CliRunner):
23+
"""Test packaging of an artifact."""
24+
25+
expected_id = "task1"
26+
expected_name = "My Task Run"
27+
expected_version = "MyArtifact"
28+
expected_data = ["key1", "value1"]
29+
30+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
31+
result = runner.invoke(
32+
packaged,
33+
[
34+
f"--{ID_ARG}",
35+
expected_id,
36+
f"--{NAME_ARG}",
37+
expected_name,
38+
f"--{VERSION_ARG}",
39+
expected_version,
40+
f"--{DATA_ARG}",
41+
*expected_data,
42+
],
43+
)
44+
assert result.exit_code == 0
45+
assert f"{ID_ARG}={expected_id}" in result.stdout
46+
assert f"{NAME_ARG}={expected_name}" in result.stdout
47+
assert f"{VERSION_ARG}={expected_version}" in result.stdout
48+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
49+
50+
51+
52+
@pytest.mark.unit
53+
def test_published(runner: CliRunner):
54+
"""Test published of an artifact."""
55+
56+
expected_id = "task1"
57+
expected_name = "My Task Run"
58+
expected_version = "MyArtifact"
59+
expected_data = ["key1", "value1"]
60+
61+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
62+
result = runner.invoke(
63+
published,
64+
[
65+
f"--{ID_ARG}",
66+
expected_id,
67+
f"--{NAME_ARG}",
68+
expected_name,
69+
f"--{VERSION_ARG}",
70+
expected_version,
71+
f"--{DATA_ARG}",
72+
*expected_data,
73+
],
74+
)
75+
assert result.exit_code == 0
76+
assert f"{ID_ARG}={expected_id}" in result.stdout
77+
assert f"{NAME_ARG}={expected_name}" in result.stdout
78+
assert f"{VERSION_ARG}={expected_version}" in result.stdout
79+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
80+

0 commit comments

Comments
 (0)