Add Redis configuration, integrate Celery, and sort fields in models
All checks were successful
Deploy to Server / deploy (push) Successful in 49s
All checks were successful
Deploy to Server / deploy (push) Successful in 49s
This commit is contained in:
parent
ef2010464c
commit
d99579ed2b
15 changed files with 451 additions and 253 deletions
41
config/tests/test_celery.py
Normal file
41
config/tests/test_celery.py
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
from typing import TYPE_CHECKING
|
||||
from typing import Any
|
||||
from unittest.mock import patch
|
||||
|
||||
import pytest
|
||||
from celery import Celery
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Generator
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def celery_app() -> Generator[Celery, Any]:
|
||||
"""Fixture to create a Celery app instance for testing.
|
||||
|
||||
Yields:
|
||||
Celery: A Celery app instance configured for testing.
|
||||
"""
|
||||
with patch("os.environ.setdefault") as mock_setenv: # noqa: F841
|
||||
app = Celery("config")
|
||||
app.config_from_object("django.conf:settings", namespace="CELERY")
|
||||
yield app
|
||||
|
||||
|
||||
def test_celery_app_initialization(celery_app: Celery) -> None:
|
||||
"""Test that the Celery app is initialized with the correct main module."""
|
||||
assert celery_app.main == "config"
|
||||
|
||||
|
||||
def test_celery_app_config(celery_app: Celery) -> None:
|
||||
"""Test that the Celery app is configured with the correct settings."""
|
||||
with patch("celery.Celery.config_from_object") as mock_config:
|
||||
celery_app.config_from_object("django.conf:settings", namespace="CELERY")
|
||||
mock_config.assert_called_once_with("django.conf:settings", namespace="CELERY")
|
||||
|
||||
|
||||
def test_celery_task_discovery(celery_app: Celery) -> None:
|
||||
"""Test that the Celery app discovers tasks correctly."""
|
||||
with patch("celery.Celery.autodiscover_tasks") as mock_discover:
|
||||
celery_app.autodiscover_tasks()
|
||||
mock_discover.assert_called_once()
|
||||
|
|
@ -1,9 +1,14 @@
|
|||
import importlib
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import pytest
|
||||
from django.conf import settings
|
||||
from django.test.utils import override_settings
|
||||
from django.urls import resolve
|
||||
from django.urls import reverse
|
||||
|
||||
from config.urls import urlpatterns
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from collections.abc import Iterable
|
||||
from types import ModuleType
|
||||
|
|
@ -50,3 +55,43 @@ def test_debug_tools_not_present_while_testing() -> None:
|
|||
patterns = list(_pattern_strings(mod))
|
||||
assert not any("silk" in p for p in patterns)
|
||||
assert not any("__debug__" in p or "debug" in p for p in patterns)
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"url_name",
|
||||
[
|
||||
"sitemap",
|
||||
"sitemap-static",
|
||||
"sitemap-twitch-channels",
|
||||
"sitemap-twitch-drops",
|
||||
"sitemap-twitch-others",
|
||||
"sitemap-kick",
|
||||
"sitemap-youtube",
|
||||
],
|
||||
)
|
||||
def test_static_sitemap_urls(url_name: str) -> None:
|
||||
"""Test that static sitemap URLs resolve correctly."""
|
||||
url: str = reverse(url_name)
|
||||
resolved_view: str = resolve(url).view_name
|
||||
assert resolved_view == url_name
|
||||
|
||||
|
||||
def test_app_url_inclusion() -> None:
|
||||
"""Test that app-specific URLs are included in urlpatterns."""
|
||||
assert any("core.urls" in str(pattern) for pattern in urlpatterns)
|
||||
assert any("twitch.urls" in str(pattern) for pattern in urlpatterns)
|
||||
assert any("kick.urls" in str(pattern) for pattern in urlpatterns)
|
||||
assert any("youtube.urls" in str(pattern) for pattern in urlpatterns)
|
||||
|
||||
|
||||
def test_media_serving_in_development() -> None:
|
||||
"""Test that media URLs are served in development mode."""
|
||||
if settings.DEBUG:
|
||||
assert any("MEDIA_URL" in str(pattern) for pattern in urlpatterns)
|
||||
|
||||
|
||||
def test_debug_toolbar_and_silk_urls() -> None:
|
||||
"""Test that debug toolbar and Silk URLs are included when appropriate."""
|
||||
if not settings.TESTING:
|
||||
assert any("silk.urls" in str(pattern) for pattern in urlpatterns)
|
||||
assert any("debug_toolbar" in str(pattern) for pattern in urlpatterns)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue