|
1 | 1 | from datetime import datetime, timedelta
|
2 | 2 | from django_webtest import WebTest
|
| 3 | +from django.test.utils import override_settings |
3 | 4 | from django import VERSION
|
4 | 5 | from django.core.urlresolvers import reverse
|
5 | 6 | try:
|
|
8 | 9 | except ImportError: # django 1.4 compatibility
|
9 | 10 | from django.contrib.auth.models import User
|
10 | 11 | from django.contrib.admin.util import quote
|
| 12 | +from django.conf import settings |
11 | 13 |
|
12 | 14 | from ..models import Book, Person, Poll
|
13 | 15 |
|
@@ -114,7 +116,7 @@ def test_history_form(self):
|
114 | 116 | self.assertEqual(poll.question, "what?")
|
115 | 117 | self.assertEqual(poll.pub_date, tomorrow)
|
116 | 118 | self.assertEqual([p.history_user for p in Poll.history.all()],
|
117 |
| - [self.user] * 3) |
| 119 | + [self.user, None, None]) |
118 | 120 |
|
119 | 121 | def test_history_user_on_save_in_admin(self):
|
120 | 122 | self.login()
|
@@ -156,3 +158,26 @@ def test_historical_user_with_setter(self):
|
156 | 158 | self.login()
|
157 | 159 | add_page = self.app.get(reverse('admin:tests_paper_add'))
|
158 | 160 | add_page.form.submit()
|
| 161 | + |
| 162 | + def test_history_user_not_saved(self): |
| 163 | + self.login() |
| 164 | + poll = Poll.objects.create(question="why?", pub_date=today) |
| 165 | + historical_poll = poll.history.all()[0] |
| 166 | + self.assertIsNone( |
| 167 | + historical_poll.history_user, |
| 168 | + "No way to know of request, history_user should be unset.", |
| 169 | + ) |
| 170 | + |
| 171 | + def test_middleware_saves_user(self): |
| 172 | + overridden_settings = { |
| 173 | + 'MIDDLEWARE_CLASSES': |
| 174 | + settings.MIDDLEWARE_CLASSES |
| 175 | + + ['simple_history.middleware.HistoryRequestMiddleware'], |
| 176 | + } |
| 177 | + with override_settings(**overridden_settings): |
| 178 | + self.login() |
| 179 | + poll = Poll.objects.create(question="why?", pub_date=today) |
| 180 | + historical_poll = poll.history.all()[0] |
| 181 | + self.assertEqual(historical_poll.history_user, self.user, |
| 182 | + "Middleware should make the request available to " |
| 183 | + "retrieve history_user.") |
0 commit comments