Skip to content

Commit 9295a56

Browse files
committed
Add test
1 parent 486eeea commit 9295a56

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

tests/test_cli.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
import textwrap
2+
from typing import List
3+
from unittest.mock import MagicMock, patch
4+
5+
import pytest
6+
from click.testing import CliRunner
7+
8+
from gitea_github_sync.cli import cli
9+
from gitea_github_sync.github import Repository, Visibility
10+
11+
12+
@pytest.fixture
13+
def repositories_fixture() -> List[Repository]:
14+
return [
15+
Repository("some-team/a-repo", Visibility.PUBLIC),
16+
Repository("some-team/b-repo", Visibility.PRIVATE),
17+
Repository("some-team/c-repo", Visibility.UNKNOWN),
18+
]
19+
20+
21+
@patch("gitea_github_sync.cli.github.get_github", autospec=True)
22+
@patch("gitea_github_sync.cli.github.list_all_repositories", autospec=True)
23+
def test_list_all_repositories(
24+
mock_list_all_repositories: MagicMock,
25+
mock_get_github: MagicMock,
26+
repositories_fixture: List[Repository],
27+
) -> None:
28+
mock_github = MagicMock()
29+
mock_get_github.return_value = mock_github
30+
mock_list_all_repositories.return_value = repositories_fixture
31+
32+
runner = CliRunner()
33+
result = runner.invoke(cli, ["list-all-repositories"])
34+
35+
assert result.output == "some-team/a-repo\nsome-team/b-repo\nsome-team/c-repo\n"
36+
assert result.exit_code == 0
37+
38+
39+
@patch("gitea_github_sync.cli.github.get_github", autospec=True)
40+
@patch("gitea_github_sync.cli.github.list_all_repositories", autospec=True)
41+
def test_list_all_repositories_with_stats(
42+
mock_list_all_repositories: MagicMock,
43+
mock_get_github: MagicMock,
44+
repositories_fixture: List[Repository],
45+
) -> None:
46+
mock_github = MagicMock()
47+
mock_get_github.return_value = mock_github
48+
mock_list_all_repositories.return_value = repositories_fixture
49+
50+
runner = CliRunner()
51+
result = runner.invoke(cli, ["list-all-repositories", "--stats"])
52+
53+
expected_result = textwrap.dedent(
54+
"""\
55+
some-team/a-repo
56+
some-team/b-repo
57+
some-team/c-repo
58+
59+
Repository stats
60+
Number of public repos identified: 1
61+
Number of private repos identified: 1
62+
Number of unknown repos identified: 1
63+
Total number of repos identified: 3
64+
"""
65+
)
66+
67+
assert result.output == expected_result
68+
assert result.exit_code == 0

0 commit comments

Comments
 (0)