|
9 | 9 | from django.http import HttpResponseForbidden, HttpResponseRedirect, QueryDict |
10 | 10 | from hvad.admin import InlineModelForm |
11 | 11 | from hvad.admin import translatable_modelform_factory |
| 12 | +from hvad.compat.urls import urlparse |
12 | 13 | from hvad.forms import TranslatableModelForm |
13 | 14 | from hvad.test_utils.context_managers import LanguageOverride |
14 | 15 | from hvad.test_utils.fixtures import NormalFixture, SuperuserFixture |
@@ -232,28 +233,44 @@ def test_admin_change_form_title(self): |
232 | 233 | self.assertTrue('en' in response.content.decode('utf-8')) |
233 | 234 |
|
234 | 235 | def test_admin_change_form_language_tabs_urls(self): |
235 | | - from hvad.compat.urls import urlparse |
236 | | - |
237 | 236 | with LanguageOverride('en'): |
238 | 237 | with self.login_user_context(username='admin', password='admin'): |
239 | 238 | get_url = reverse('admin:app_normal_change', args=(self.normal_id[1],)) |
240 | 239 | test_urls = [ |
241 | 240 | '%s?%s' % (get_url, '_changelist_filters=q%3Dsearchparam'), |
| 241 | + '%s?%s' % (get_url, '_changelist_filters=q%3Dsearchparam&language=fr'), |
242 | 242 | ] |
243 | 243 |
|
244 | 244 | for test_url in test_urls: |
245 | 245 | response = self.client.get(test_url) |
246 | 246 | self.assertEqual(response.status_code, 200) |
247 | 247 | tabs = response.context['language_tabs'] |
248 | 248 |
|
249 | | - test_querydict = QueryDict(urlparse(test_url).query, mutable=True) |
| 249 | + expected_querydict = QueryDict(urlparse(test_url).query, mutable=True) |
250 | 250 |
|
251 | 251 | for actual_tab_url, name, key, status in tabs: |
252 | | - expected_querydict = test_querydict.copy() |
253 | 252 | expected_querydict['language'] = key |
254 | 253 | actual_querydict = QueryDict(urlparse(actual_tab_url).query) |
255 | 254 | self.assertEqual(expected_querydict, actual_querydict) |
256 | 255 |
|
| 256 | + def test_admin_change_form_action_url(self): |
| 257 | + with LanguageOverride('en'): |
| 258 | + with self.login_user_context(username='admin', password='admin'): |
| 259 | + url = reverse('admin:app_normal_change', args=(self.normal_id[1],)) |
| 260 | + tests = ( |
| 261 | + '', |
| 262 | + 'language=fr', |
| 263 | + '_changelist_filters=q%3Dparam&language=fr', |
| 264 | + ) |
| 265 | + for query_string in tests: |
| 266 | + expected_dict = QueryDict(query_string) |
| 267 | + full_url = '%s?%s' % (url, query_string) if query_string else url |
| 268 | + response = self.client.get(full_url) |
| 269 | + form_url = urlparse(response.context['form_url']) |
| 270 | + self.assertEqual(expected_dict, QueryDict(form_url.query), |
| 271 | + 'query_string=%r' % query_string) |
| 272 | + |
| 273 | + |
257 | 274 | def test_admin_change_form_redirect_add_another(self): |
258 | 275 | lang = 'en' |
259 | 276 | with LanguageOverride('ja'): |
|
0 commit comments