ytdl-sub/tests/unit/cli/test_output_summary.py
Jesse Bannon 57fd6901e4
[DEV] Linter: Use ruff over black and isort (#1445)
Will eventually replace pylint with ruff
2026-03-09 11:39:01 -07:00

64 lines
2 KiB
Python

from typing import List, Optional, Tuple
from unittest.mock import MagicMock, Mock
from ytdl_sub.cli.output_summary import output_summary
def _to_mock_subscriptions(
subscription_values: List[Tuple[str, int, int, int, int, Optional[Exception]]],
) -> List[MagicMock]:
mock_subscriptions: List[MagicMock] = []
for values in subscription_values:
sub = Mock()
sub.name = values[0]
sub.num_entries_added = values[1]
sub.num_entries_modified = values[2]
sub.num_entries_removed = values[3]
sub.num_entries = values[4]
sub.exception = values[5]
mock_subscriptions.append(sub)
return mock_subscriptions
def test_output_summary_no_errors():
mock_subscriptions = _to_mock_subscriptions(
[
("long_name_but_lil_values", 0, 0, 0, 6, None),
("john_smith", 1, 0, 0, 52, None),
("david_gore", 0, 0, 0, 4, None),
("christopher_snoop", 50, 0, 3, 518, None),
("beyond funk", 352, 0, 0, 2342, None),
]
)
output_summary(subscriptions=mock_subscriptions, suppress_colors=False)
def test_output_summary_one_error():
mock_subscriptions = _to_mock_subscriptions(
[
("long_name_but_lil_values", 0, 0, 0, 6, None),
("john_smith", 1, 0, 0, 52, None),
("david_gore", 0, 0, 0, 4, None),
("christopher_snoop", 50, 0, 3, 518, None),
("beyond funk", 0, 0, 0, 176, ValueError("lol")),
]
)
output_summary(subscriptions=mock_subscriptions, suppress_colors=False)
def test_output_summary_multiple_errors():
mock_subscriptions = _to_mock_subscriptions(
[
("long_name_but_lil_values", 0, 0, 0, 6, None),
("john_smith", 1, 0, 0, 52, None),
("david_gore", 0, 0, 0, 4, PermissionError("ack")),
("christopher_snoop", 50, 0, 3, 518, None),
("beyond funk", 0, 0, 0, 176, ValueError("lol")),
]
)
output_summary(subscriptions=mock_subscriptions, suppress_colors=True)