Skip to content

Commit bcd316b

Browse files
committed
Add a test to demonstrate #92
1 parent 7da0211 commit bcd316b

File tree

3 files changed

+32
-11
lines changed

3 files changed

+32
-11
lines changed

simple_history/tests/other_admin.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from django.contrib.admin.sites import AdminSite
2+
from simple_history.admin import SimpleHistoryAdmin
3+
from .models import State
4+
5+
site = AdminSite(name="other_admin", app_name="other_admin")
6+
7+
site.register(State, SimpleHistoryAdmin)

simple_history/tests/tests/test_admin.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,28 @@
1111
from django.contrib.admin.util import quote
1212
from django.conf import settings
1313

14-
from ..models import Book, Person, Poll
14+
from ..models import Book, Person, Poll, State
1515

1616

1717
today = datetime(2021, 1, 1, 10, 0)
1818
tomorrow = today + timedelta(days=1)
1919

2020

21-
def get_history_url(model, history_index=None):
21+
def get_history_url(obj, history_index=None, site="admin"):
2222
try:
23-
info = model._meta.app_label, model._meta.module_name
23+
app, model = obj._meta.app_label, obj._meta.module_name
2424
except AttributeError:
25-
info = model._meta.app_label, model._meta.model_name
25+
app, model = obj._meta.app_label, obj._meta.model_name
2626
if history_index is not None:
27-
history = model.history.order_by('history_id')[history_index]
28-
return reverse('admin:%s_%s_simple_history' % info,
29-
args=[quote(model.pk), quote(history.history_id)])
27+
history = obj.history.order_by('history_id')[history_index]
28+
return reverse(
29+
"{site}:{app}_{model}_simple_history".format(
30+
site=site, app=app, model=model),
31+
args=[quote(obj.pk), quote(history.history_id)],
32+
)
3033
else:
31-
return reverse('admin:%s_%s_history' % info, args=[quote(model.pk)])
34+
return reverse("{site}:{app}_{model}_history".format(
35+
site=site, app=app, model=model), args=[quote(obj.pk)])
3236

3337

3438
class AdminSiteTest(WebTest):
@@ -181,3 +185,11 @@ def test_middleware_saves_user(self):
181185
self.assertEqual(historical_poll.history_user, self.user,
182186
"Middleware should make the request available to "
183187
"retrieve history_user.")
188+
189+
def test_other_admin(self):
190+
"""Demonstrate error viewing the historical admin page for a
191+
model not registered with the default site 'admin'.
192+
"""
193+
self.login()
194+
state = State.objects.create()
195+
self.app.get(get_history_url(state, site="other_admin"))

simple_history/tests/urls.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,11 @@
66
from django.conf.urls.defaults import patterns, include, url
77

88
from django.contrib import admin
9+
from . import other_admin
10+
911
admin.autodiscover()
1012

11-
urlpatterns = patterns(
12-
'',
13+
urlpatterns = [
1314
url(r'^admin/', include(admin.site.urls)),
14-
)
15+
url(r'^other-admin/', include(other_admin.site.urls)),
16+
]

0 commit comments

Comments
 (0)