diff --git a/aircox/tests/conftest.py b/aircox/tests/conftest.py index b74bfcd..c99d469 100644 --- a/aircox/tests/conftest.py +++ b/aircox/tests/conftest.py @@ -2,6 +2,8 @@ from datetime import time, timedelta import itertools import logging +from django.contrib.auth.models import User + import pytest from model_bakery import baker @@ -9,6 +11,11 @@ from aircox import models from aircox.test import Interface +@pytest.fixture +def staff_user(): + return baker.make(User, is_active=True, is_staff=True) + + @pytest.fixture def logger(): logger = Interface( diff --git a/aircox/tests/test_admin_site.py b/aircox/tests/test_admin_site.py new file mode 100644 index 0000000..7af82a0 --- /dev/null +++ b/aircox/tests/test_admin_site.py @@ -0,0 +1,44 @@ +from django.urls import path, reverse +from django.test import RequestFactory +from django.utils.translation import gettext_lazy as _ + +import pytest + +from aircox import admin_site, urls as _urls + + +reqs = RequestFactory() +_urls + + +@pytest.fixture +def site(): + return admin_site.AdminSite() + + +class TestAdminSite: + @pytest.mark.django_db + def test_each_context(self, site, staff_user): + req = reqs.get("admin/test") + req.user = staff_user + context = site.each_context(req) + assert "programs" in context + assert "diffusions" in context + assert "comments" in context + + def test_get_urls(self, site): + extra_url = path("test/path", lambda *_, **kw: _) + site.extra_urls.append(extra_url) + urls = site.get_urls() + assert extra_url in urls + + def test_get_tools(self, site): + tools = site.get_tools() + tools = dict(tools) + assert tools == { + _("Statistics"): reverse("admin:tools-stats"), + } + + def test_route_view(self, site): + # TODO + pass