ttvdrops/chzzk/tests/test_tasks.py
Joakim Hellsén 66ea46cf23
All checks were successful
Deploy to Server / deploy (push) Successful in 26s
Use celery tasks instead of systemd timers for periodic work; and add more tests
2026-04-08 03:23:18 +02:00

58 lines
1.9 KiB
Python

from unittest.mock import patch
import pytest
from chzzk.tasks import discover_chzzk_campaigns
from chzzk.tasks import import_chzzk_campaign_task
def test_import_chzzk_campaign_task_calls_command_with_campaign_no() -> None:
"""It should invoke import_chzzk_campaign for the given campaign number."""
with patch("chzzk.tasks.call_command") as call_command_mock:
import_chzzk_campaign_task.run(905)
call_command_mock.assert_called_once_with("import_chzzk_campaign", "905")
def test_import_chzzk_campaign_task_retries_on_command_error() -> None:
"""It should retry when import_chzzk_campaign raises an exception."""
error = RuntimeError("boom")
with (
patch("chzzk.tasks.call_command", side_effect=error),
patch.object(
import_chzzk_campaign_task,
"retry",
side_effect=RuntimeError("retried"),
) as retry_mock,
pytest.raises(RuntimeError, match="retried"),
):
import_chzzk_campaign_task.run(905)
retry_mock.assert_called_once_with(exc=error)
def test_discover_chzzk_campaigns_calls_command_with_latest_flag() -> None:
"""It should invoke import_chzzk_campaign with latest=True."""
with patch("chzzk.tasks.call_command") as call_command_mock:
discover_chzzk_campaigns.run()
call_command_mock.assert_called_once_with("import_chzzk_campaign", latest=True)
def test_discover_chzzk_campaigns_retries_on_command_error() -> None:
"""It should retry when import_chzzk_campaign raises an exception."""
error = RuntimeError("boom")
with (
patch("chzzk.tasks.call_command", side_effect=error),
patch.object(
discover_chzzk_campaigns,
"retry",
side_effect=RuntimeError("retried"),
) as retry_mock,
pytest.raises(RuntimeError, match="retried"),
):
discover_chzzk_campaigns.run()
retry_mock.assert_called_once_with(exc=error)