|
| 1 | +# path: policylens/tests/test_ops_smoke.py |
| 2 | +""" |
| 3 | +Ops UI smoke tests. |
| 4 | +""" |
| 5 | + |
| 6 | +from __future__ import annotations |
| 7 | + |
| 8 | +import importlib |
| 9 | + |
| 10 | +import pytest |
| 11 | +from django.conf import settings |
| 12 | +from django.contrib.auth import get_user_model |
| 13 | +from django.test import override_settings |
| 14 | +from django.urls import reverse |
| 15 | + |
| 16 | +User = get_user_model() |
| 17 | + |
| 18 | + |
| 19 | +@pytest.mark.django_db |
| 20 | +def test_ops_home_redirects_to_queue_for_logged_in_user(client): |
| 21 | + """Ops landing should redirect authenticated users to queue.""" |
| 22 | + user = User.objects.create_user(username="ops_home_user", password="password123") |
| 23 | + client.force_login(user) |
| 24 | + |
| 25 | + url = reverse("ops:home") |
| 26 | + resp = client.get(url) |
| 27 | + assert resp.status_code == 302 |
| 28 | + assert resp.url == reverse("ops:queue") |
| 29 | + |
| 30 | + |
| 31 | +@pytest.mark.django_db |
| 32 | +def test_ops_queue_page_renders_for_logged_in_user(client): |
| 33 | + """Queue page should be accessible and render expected content.""" |
| 34 | + user = User.objects.create_user(username="ops_user", password="password123") |
| 35 | + client.force_login(user) |
| 36 | + |
| 37 | + url = reverse("ops:queue") |
| 38 | + resp = client.get(url) |
| 39 | + assert resp.status_code == 200 |
| 40 | + assert any(t.name == "ops/queue.html" for t in resp.templates) |
| 41 | + assert "Review queue" in resp.content.decode("utf-8") |
| 42 | + |
| 43 | + |
| 44 | +@override_settings(DEBUG=True) |
| 45 | +def test_root_urlpatterns_include_media_static_when_debug_true(): |
| 46 | + """Root URLConf should append media static patterns in DEBUG.""" |
| 47 | + urls_module = importlib.import_module("policylens.config.urls") |
| 48 | + reloaded = importlib.reload(urls_module) |
| 49 | + media_prefix = settings.MEDIA_URL.lstrip("/") |
| 50 | + assert any( |
| 51 | + str(pattern.pattern).startswith(f"^{media_prefix}") for pattern in reloaded.urlpatterns |
| 52 | + ) |
0 commit comments