Skip to content

Commit f1f61d7

Browse files
tarekbadrshafrittoli
authored andcommitted
add command line tests
1 parent 592f1bb commit f1f61d7

File tree

7 files changed

+665
-1
lines changed

7 files changed

+665
-1
lines changed

cli/tests/test_branch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
"""Unit tests for artifact."""
1+
"""Unit tests for branch."""
22
import pytest
33
from unittest.mock import patch
44
from click.testing import CliRunner

cli/tests/test_build.py

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
"""Unit tests for build."""
2+
import pytest
3+
from unittest.mock import patch
4+
from click.testing import CliRunner
5+
6+
from cdevents.cli.build import started, finished, queued
7+
from cdevents.cli.cdevents_command import CDeventsCommand
8+
9+
# pylint: disable=missing-function-docstring, protected-access, missing-class-docstring
10+
@pytest.fixture
11+
def runner() -> CliRunner:
12+
return CliRunner()
13+
14+
15+
ID_ARG = "id"
16+
NAME_ARG = "name"
17+
ARTIFACT_ARG = "artifact"
18+
DATA_ARG = "data"
19+
20+
@pytest.mark.unit
21+
def test_started(runner: CliRunner):
22+
"""Test started of a build."""
23+
24+
expected_id = "task1"
25+
expected_name = "My Task Run"
26+
expected_artifact = "artifact1"
27+
expected_data = ["key1", "value1"]
28+
29+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
30+
result = runner.invoke(
31+
started,
32+
[
33+
f"--{ID_ARG}",
34+
expected_id,
35+
f"--{NAME_ARG}",
36+
expected_name,
37+
f"--{ARTIFACT_ARG}",
38+
expected_artifact,
39+
f"--{DATA_ARG}",
40+
*expected_data,
41+
],
42+
)
43+
assert result.exit_code == 0
44+
assert f"{ID_ARG}={expected_id}" in result.stdout
45+
assert f"{NAME_ARG}={expected_name}" in result.stdout
46+
assert f"{ARTIFACT_ARG}={expected_artifact}" in result.stdout
47+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
48+
49+
50+
@pytest.mark.unit
51+
def test_finished(runner: CliRunner):
52+
"""Test finished of a build."""
53+
54+
expected_id = "task1"
55+
expected_name = "My Task Run"
56+
expected_artifact = "artifact1"
57+
expected_data = ["key1", "value1"]
58+
59+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
60+
result = runner.invoke(
61+
finished,
62+
[
63+
f"--{ID_ARG}",
64+
expected_id,
65+
f"--{NAME_ARG}",
66+
expected_name,
67+
f"--{ARTIFACT_ARG}",
68+
expected_artifact,
69+
f"--{DATA_ARG}",
70+
*expected_data,
71+
],
72+
)
73+
assert result.exit_code == 0
74+
assert f"{ID_ARG}={expected_id}" in result.stdout
75+
assert f"{NAME_ARG}={expected_name}" in result.stdout
76+
assert f"{ARTIFACT_ARG}={expected_artifact}" in result.stdout
77+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
78+
79+
80+
@pytest.mark.unit
81+
def test_queued(runner: CliRunner):
82+
"""Test queued of a build."""
83+
84+
expected_id = "task1"
85+
expected_name = "My Task Run"
86+
expected_artifact = "artifact1"
87+
expected_data = ["key1", "value1"]
88+
89+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
90+
result = runner.invoke(
91+
queued,
92+
[
93+
f"--{ID_ARG}",
94+
expected_id,
95+
f"--{NAME_ARG}",
96+
expected_name,
97+
f"--{ARTIFACT_ARG}",
98+
expected_artifact,
99+
f"--{DATA_ARG}",
100+
*expected_data,
101+
],
102+
)
103+
assert result.exit_code == 0
104+
assert f"{ID_ARG}={expected_id}" in result.stdout
105+
assert f"{NAME_ARG}={expected_name}" in result.stdout
106+
assert f"{ARTIFACT_ARG}={expected_artifact}" in result.stdout
107+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
108+

cli/tests/test_env.py

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
"""Unit tests for env."""
2+
import pytest
3+
from unittest.mock import patch
4+
from click.testing import CliRunner
5+
6+
from cdevents.cli.env import created, deleted, modified
7+
from cdevents.cli.cdevents_command import CDeventsCommand
8+
9+
# pylint: disable=missing-function-docstring, protected-access, missing-class-docstring
10+
@pytest.fixture
11+
def runner() -> CliRunner:
12+
return CliRunner()
13+
14+
15+
ID_ARG = "id"
16+
NAME_ARG = "name"
17+
REPO_ARG = "repo"
18+
DATA_ARG = "data"
19+
20+
@pytest.mark.unit
21+
def test_started(runner: CliRunner):
22+
"""Test started of an env."""
23+
24+
expected_id = "task1"
25+
expected_name = "My Task Run"
26+
expected_repo = "my-repo"
27+
expected_data = ["key1", "value1"]
28+
29+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
30+
result = runner.invoke(
31+
created,
32+
[
33+
f"--{ID_ARG}",
34+
expected_id,
35+
f"--{NAME_ARG}",
36+
expected_name,
37+
f"--{REPO_ARG}",
38+
expected_repo,
39+
f"--{DATA_ARG}",
40+
*expected_data,
41+
],
42+
)
43+
assert result.exit_code == 0
44+
assert f"{ID_ARG}={expected_id}" in result.stdout
45+
assert f"{NAME_ARG}={expected_name}" in result.stdout
46+
assert f"{REPO_ARG}={expected_repo}" in result.stdout
47+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
48+
49+
50+
@pytest.mark.unit
51+
def test_started(runner: CliRunner):
52+
"""Test started of an env."""
53+
54+
expected_id = "task1"
55+
expected_name = "My Task Run"
56+
expected_repo = "my-repo"
57+
expected_data = ["key1", "value1"]
58+
59+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
60+
result = runner.invoke(
61+
deleted,
62+
[
63+
f"--{ID_ARG}",
64+
expected_id,
65+
f"--{NAME_ARG}",
66+
expected_name,
67+
f"--{REPO_ARG}",
68+
expected_repo,
69+
f"--{DATA_ARG}",
70+
*expected_data,
71+
],
72+
)
73+
assert result.exit_code == 0
74+
assert f"{ID_ARG}={expected_id}" in result.stdout
75+
assert f"{NAME_ARG}={expected_name}" in result.stdout
76+
assert f"{REPO_ARG}={expected_repo}" in result.stdout
77+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
78+
79+
80+
@pytest.mark.unit
81+
def test_started(runner: CliRunner):
82+
"""Test started of an env."""
83+
84+
expected_id = "task1"
85+
expected_name = "My Task Run"
86+
expected_repo = "my-repo"
87+
expected_data = ["key1", "value1"]
88+
89+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
90+
result = runner.invoke(
91+
modified,
92+
[
93+
f"--{ID_ARG}",
94+
expected_id,
95+
f"--{NAME_ARG}",
96+
expected_name,
97+
f"--{REPO_ARG}",
98+
expected_repo,
99+
f"--{DATA_ARG}",
100+
*expected_data,
101+
],
102+
)
103+
assert result.exit_code == 0
104+
assert f"{ID_ARG}={expected_id}" in result.stdout
105+
assert f"{NAME_ARG}={expected_name}" in result.stdout
106+
assert f"{REPO_ARG}={expected_repo}" in result.stdout
107+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
108+

cli/tests/test_pipelinerun.py

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
"""Unit tests for pipelinerun."""
2+
import pytest
3+
from unittest.mock import patch
4+
from click.testing import CliRunner
5+
6+
from cdevents.cli.pipelinerun import started, finished, queued
7+
from cdevents.cli.cdevents_command import CDeventsCommand
8+
9+
# pylint: disable=missing-function-docstring, protected-access, missing-class-docstring
10+
@pytest.fixture
11+
def runner() -> CliRunner:
12+
return CliRunner()
13+
14+
15+
ID_ARG = "id"
16+
NAME_ARG = "name"
17+
STATUS_ARG = "status"
18+
URL_ARG = "url"
19+
ERRORS_ARG = "errors"
20+
DATA_ARG = "data"
21+
22+
@pytest.mark.unit
23+
def test_started(runner: CliRunner):
24+
"""Test started of an env."""
25+
26+
expected_id = "task1"
27+
expected_name = "My Task Run"
28+
expected_status = "success"
29+
expected_url = "https://my-url.com"
30+
expected_errors = "my-errors"
31+
expected_data = ["key1", "value1"]
32+
33+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
34+
result = runner.invoke(
35+
started,
36+
[
37+
f"--{ID_ARG}",
38+
expected_id,
39+
f"--{NAME_ARG}",
40+
expected_name,
41+
f"--{STATUS_ARG}",
42+
expected_status,
43+
f"--{URL_ARG}",
44+
expected_url,
45+
f"--{ERRORS_ARG}",
46+
expected_errors,
47+
f"--{DATA_ARG}",
48+
*expected_data,
49+
],
50+
)
51+
assert result.exit_code == 0
52+
assert f"{ID_ARG}={expected_id}" in result.stdout
53+
assert f"{NAME_ARG}={expected_name}" in result.stdout
54+
assert f"{STATUS_ARG}={expected_status}" in result.stdout
55+
assert f"{URL_ARG}={expected_url}" in result.stdout
56+
assert f"{ERRORS_ARG}={expected_errors}" in result.stdout
57+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
58+
59+
60+
@pytest.mark.unit
61+
def test_finished(runner: CliRunner):
62+
"""Test finished of an env."""
63+
64+
expected_id = "task1"
65+
expected_name = "My Task Run"
66+
expected_status = "success"
67+
expected_url = "https://my-url.com"
68+
expected_errors = "my-errors"
69+
expected_data = ["key1", "value1"]
70+
71+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
72+
result = runner.invoke(
73+
finished,
74+
[
75+
f"--{ID_ARG}",
76+
expected_id,
77+
f"--{NAME_ARG}",
78+
expected_name,
79+
f"--{STATUS_ARG}",
80+
expected_status,
81+
f"--{URL_ARG}",
82+
expected_url,
83+
f"--{ERRORS_ARG}",
84+
expected_errors,
85+
f"--{DATA_ARG}",
86+
*expected_data,
87+
],
88+
)
89+
assert result.exit_code == 0
90+
assert f"{ID_ARG}={expected_id}" in result.stdout
91+
assert f"{NAME_ARG}={expected_name}" in result.stdout
92+
assert f"{STATUS_ARG}={expected_status}" in result.stdout
93+
assert f"{URL_ARG}={expected_url}" in result.stdout
94+
assert f"{ERRORS_ARG}={expected_errors}" in result.stdout
95+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
96+
97+
@pytest.mark.unit
98+
def test_queued(runner: CliRunner):
99+
"""Test queued of an env."""
100+
101+
expected_id = "task1"
102+
expected_name = "My Task Run"
103+
expected_status = "success"
104+
expected_url = "https://my-url.com"
105+
expected_errors = "my-errors"
106+
expected_data = ["key1", "value1"]
107+
108+
with patch.object(CDeventsCommand, "run", spec=CDeventsCommand):
109+
result = runner.invoke(
110+
queued,
111+
[
112+
f"--{ID_ARG}",
113+
expected_id,
114+
f"--{NAME_ARG}",
115+
expected_name,
116+
f"--{STATUS_ARG}",
117+
expected_status,
118+
f"--{URL_ARG}",
119+
expected_url,
120+
f"--{ERRORS_ARG}",
121+
expected_errors,
122+
f"--{DATA_ARG}",
123+
*expected_data,
124+
],
125+
)
126+
assert result.exit_code == 0
127+
assert f"{ID_ARG}={expected_id}" in result.stdout
128+
assert f"{NAME_ARG}={expected_name}" in result.stdout
129+
assert f"{STATUS_ARG}={expected_status}" in result.stdout
130+
assert f"{URL_ARG}={expected_url}" in result.stdout
131+
assert f"{ERRORS_ARG}={expected_errors}" in result.stdout
132+
assert f"{DATA_ARG}=({tuple(expected_data)},)" in result.stdout
133+

0 commit comments

Comments
 (0)