Skip to content

Commit 098afd2

Browse files
committed
fix: conflicts in test_admin and test_migrations
1 parent 8b81c3f commit 098afd2

File tree

1 file changed

+40
-13
lines changed

1 file changed

+40
-13
lines changed

t/unit/test_admin.py

Lines changed: 40 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
1-
import pytest
21
from celery import uuid
2+
from django.apps import apps
33
from django.contrib import admin
44
from django.contrib.auth import get_user_model
55
from django.test import TestCase
6-
from django.urls import reverse
6+
from django.urls import (
7+
clear_url_caches,
8+
get_resolver,
9+
path,
10+
reverse,
11+
)
712

813
from django_celery_results.admin import TaskResultAdmin
914
from django_celery_results.models import TaskResult
1015

1116
User = get_user_model()
1217

1318

14-
@pytest.mark.usefixtures("depends_on_current_app")
1519
class TaskResultAdminTests(TestCase):
1620
app_name = "django_celery_results"
17-
model_name = "taskresult"
21+
model = TaskResult
22+
urlconf = None
1823

1924
def setUp(self):
2025
self.admin_user = User.objects.create_superuser(
@@ -26,27 +31,49 @@ def setUp(self):
2631
)
2732

2833
def test_add_view(self):
29-
url = reverse(f"admin:{self.app_name}_{self.model_name}_add")
34+
url = reverse(f"admin:{self.app_name}_{self.model._meta.model_name}_add")
3035
response = self.client.get(url)
3136
self.assertEqual(response.status_code, 200)
3237

3338
def test_change_view(self):
3439
url = reverse(
35-
f"admin:{self.app_name}_{self.model_name}_change",
40+
f"admin:{self.app_name}_{self.model._meta.model_name}_change",
3641
args=[self.task_result.id],
3742
)
3843
response = self.client.get(url)
3944
self.assertEqual(response.status_code, 200)
4045

4146

42-
class TaskResultProxy(TaskResult):
43-
class Meta:
44-
proxy = True
45-
app_label = "django_celery_results"
47+
class TaskResultProxyAdminTests(TaskResultAdminTests):
48+
@classmethod
49+
def setUpClass(cls):
50+
super().setUpClass()
4651

52+
class TaskResultProxy(TaskResult):
53+
class Meta:
54+
proxy = True
55+
app_label = "django_celery_results"
4756

48-
admin.site.register(TaskResultProxy, TaskResultAdmin)
57+
cls.model = TaskResultProxy
58+
admin.site.register(TaskResultProxy, TaskResultAdmin)
4959

60+
# The temporary registration of admin requires refreshing the URL cache; otherwise, it cannot be resolved.
61+
default_resover = get_resolver()
62+
cls.ori_url_patterns_0 = default_resover.url_patterns[0]
63+
get_resolver().url_patterns[0] = path("admin/", admin.site.urls)
64+
clear_url_caches()
5065

51-
class TaskResultProxyAdminTests(TaskResultAdminTests):
52-
model_name = "taskresultproxy"
66+
@classmethod
67+
def tearDownClass(cls):
68+
super().tearDownClass()
69+
70+
# Unregister the proxy model
71+
admin.site.unregister(cls.model)
72+
app_config = apps.get_app_config(cls.app_name)
73+
model_name = cls.model._meta.model_name
74+
if model_name in app_config.models:
75+
del app_config.models[model_name]
76+
77+
# Restore the original URL patterns
78+
get_resolver().url_patterns[0] = cls.ori_url_patterns_0
79+
clear_url_caches()

0 commit comments

Comments
 (0)