summaryrefslogtreecommitdiff
path: root/tests/admin_views
diff options
context:
space:
mode:
authorDražen Odobašić <dodobas@candela-it.com>2015-09-11 19:33:12 -0400
committerTim Graham <timograham@gmail.com>2015-09-12 11:40:50 -0400
commitb1e33ceceda1e75ff68c7deed8f6659683a195d3 (patch)
treee4e446f69194f2dc3c9c7ee3ecf48290ea8d4d31 /tests/admin_views
parent84b0a8d2aad042fb573df5055b6153770d0929ac (diff)
Fixed #23395 -- Limited line lengths to 119 characters.
Diffstat (limited to 'tests/admin_views')
-rw-r--r--tests/admin_views/admin.py4
-rw-r--r--tests/admin_views/tests.py215
2 files changed, 161 insertions, 58 deletions
diff --git a/tests/admin_views/admin.py b/tests/admin_views/admin.py
index 0104181d96..ca114680d0 100644
--- a/tests/admin_views/admin.py
+++ b/tests/admin_views/admin.py
@@ -587,7 +587,9 @@ class PluggableSearchPersonAdmin(admin.ModelAdmin):
search_fields = ('name',)
def get_search_results(self, request, queryset, search_term):
- queryset, use_distinct = super(PluggableSearchPersonAdmin, self).get_search_results(request, queryset, search_term)
+ queryset, use_distinct = super(PluggableSearchPersonAdmin, self).get_search_results(
+ request, queryset, search_term
+ )
try:
search_term_as_int = int(search_term)
queryset |= self.model.objects.filter(age=search_term_as_int)
diff --git a/tests/admin_views/tests.py b/tests/admin_views/tests.py
index fbeca604d4..87d6f86ae4 100644
--- a/tests/admin_views/tests.py
+++ b/tests/admin_views/tests.py
@@ -300,7 +300,8 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
"""
A smoke test to ensure POST on edit_view works.
"""
- response = self.client.post(reverse('admin:admin_views_section_change', args=(self.s1.pk,)), self.inline_post_data)
+ url = reverse('admin:admin_views_section_change', args=(self.s1.pk,))
+ response = self.client.post(url, self.inline_post_data)
self.assertEqual(response.status_code, 302) # redirect somewhere
def test_edit_save_as(self):
@@ -600,7 +601,10 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
link1 = reverse('admin:admin_views_fabric_change', args=(self.fab1.pk,))
link2 = reverse('admin:admin_views_fabric_change', args=(self.fab2.pk,))
response = self.client.get(reverse('admin:admin_views_fabric_changelist'))
- fail_msg = "Changelist table isn't showing the right human-readable values set by a model field 'choices' option named group."
+ fail_msg = (
+ "Changelist table isn't showing the right human-readable values "
+ "set by a model field 'choices' option named group."
+ )
self.assertContains(response, '<a href="%s">Horizontal</a>' % link1, msg_prefix=fail_msg, html=True)
self.assertContains(response, '<a href="%s">Vertical</a>' % link2, msg_prefix=fail_msg, html=True)
@@ -610,7 +614,10 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
been used in the choices option of a model field.
"""
response = self.client.get(reverse('admin:admin_views_fabric_changelist'))
- fail_msg = "Changelist filter isn't showing options contained inside a model field 'choices' option named group."
+ fail_msg = (
+ "Changelist filter isn't showing options contained inside a model "
+ "field 'choices' option named group."
+ )
self.assertContains(response, '<div id="changelist-filter">')
self.assertContains(response,
'<a href="?surface__exact=x">Horizontal</a>', msg_prefix=fail_msg, html=True)
@@ -684,7 +691,8 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
def test_disallowed_to_field(self):
with patch_logger('django.security.DisallowedModelAdminToField', 'error') as calls:
- response = self.client.get(reverse('admin:admin_views_section_changelist'), {TO_FIELD_VAR: 'missing_field'})
+ url = reverse('admin:admin_views_section_changelist')
+ response = self.client.get(url, {TO_FIELD_VAR: 'missing_field'})
self.assertEqual(response.status_code, 400)
self.assertEqual(len(calls), 1)
@@ -726,12 +734,14 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
section = Section.objects.create()
with patch_logger('django.security.DisallowedModelAdminToField', 'error') as calls:
- response = self.client.post(reverse('admin:admin_views_section_change', args=(section.pk,)), {TO_FIELD_VAR: 'name'})
+ url = reverse('admin:admin_views_section_change', args=(section.pk,))
+ response = self.client.post(url, {TO_FIELD_VAR: 'name'})
self.assertEqual(response.status_code, 400)
self.assertEqual(len(calls), 1)
with patch_logger('django.security.DisallowedModelAdminToField', 'error') as calls:
- response = self.client.post(reverse('admin:admin_views_section_delete', args=(section.pk,)), {TO_FIELD_VAR: 'name'})
+ url = reverse('admin:admin_views_section_delete', args=(section.pk,))
+ response = self.client.post(url, {TO_FIELD_VAR: 'name'})
self.assertEqual(response.status_code, 400)
self.assertEqual(len(calls), 1)
@@ -742,7 +752,8 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
can break.
"""
# Filters should be allowed if they are defined on a ForeignKey pointing to this model
- response = self.client.get("%s?leader__name=Palin&leader__age=27" % reverse('admin:admin_views_inquisition_changelist'))
+ url = "%s?leader__name=Palin&leader__age=27" % reverse('admin:admin_views_inquisition_changelist')
+ response = self.client.get(url)
self.assertEqual(response.status_code, 200)
def test_popup_dismiss_related(self):
@@ -1787,24 +1798,24 @@ class AdminViewPermissionsTest(TestCase):
rl2 = RowLevelChangePermissionModel.objects.create(name="even id")
for login_dict in [self.super_login, self.changeuser_login, self.adduser_login, self.deleteuser_login]:
self.client.post(login_url, login_dict)
- response = self.client.get(reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl1.pk,)))
+ url = reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl1.pk,))
+ response = self.client.get(url)
self.assertEqual(response.status_code, 403)
- response = self.client.get(reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl2.pk,)))
+ url = reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl2.pk,))
+ response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.client.get(reverse('admin:logout'))
for login_dict in [self.joepublic_login, self.no_username_login]:
self.client.post(login_url, login_dict)
- response = self.client.get(
- reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl1.pk,)), follow=True
- )
+ url = reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl1.pk,))
+ response = self.client.get(url, follow=True)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'login-form')
- response = self.client.get(
- reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl2.pk,)), follow=True
- )
+ url = reverse('admin:admin_views_rowlevelchangepermissionmodel_history', args=(rl2.pk,))
+ response = self.client.get(url, follow=True)
self.assertEqual(response.status_code, 200)
self.assertContains(response, 'login-form')
@@ -2118,11 +2129,15 @@ class AdminViewDeletedObjectsTest(TestCase):
Objects should be nested to display the relationships that
cause them to be scheduled for deletion.
"""
- pattern = re.compile(force_bytes(
- r'<li>Plot: <a href="%s">World Domination</a>\s*<ul>\s*<li>Plot details: <a href="%s">almost finished</a>' % (
- reverse('admin:admin_views_plot_change', args=(self.pl1.pk,)),
- reverse('admin:admin_views_plotdetails_change', args=(self.pd1.pk,)))
- ))
+ pattern = re.compile(
+ force_bytes(
+ r'<li>Plot: <a href="%s">World Domination</a>\s*<ul>\s*'
+ r'<li>Plot details: <a href="%s">almost finished</a>' % (
+ reverse('admin:admin_views_plot_change', args=(self.pl1.pk,)),
+ reverse('admin:admin_views_plotdetails_change', args=(self.pd1.pk,)),
+ )
+ )
+ )
response = self.client.get(reverse('admin:admin_views_villain_delete', args=(self.v1.pk,)))
six.assertRegex(self, response.content, pattern)
@@ -2210,7 +2225,9 @@ class AdminViewDeletedObjectsTest(TestCase):
"""
should_contain = [
'<li>Villain: <a href="%s">Bob</a>' % reverse('admin:admin_views_villain_change', args=(self.sv1.pk,)),
- '<li>Super villain: <a href="%s">Bob</a>' % reverse('admin:admin_views_supervillain_change', args=(self.sv1.pk,)),
+ '<li>Super villain: <a href="%s">Bob</a>' % reverse(
+ 'admin:admin_views_supervillain_change', args=(self.sv1.pk,)
+ ),
'<li>Secret hideout: floating castle',
'<li>Super secret hideout: super floating castle!',
]
@@ -2324,7 +2341,10 @@ class AdminViewStringPrimaryKeyTest(TestCase):
content='<p>Newest content</p>', date=datetime.datetime(2009, 3, 18, 11, 54, 58), section=cls.s1
)
cls.p1 = PrePopulatedPost.objects.create(title='A Long Title', published=True, slug='a-long-title')
- cls.pk = """abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 -_.!~*'() ;/?:@&=+$, <>#%" {}|\^[]`"""
+ cls.pk = (
+ "abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890 "
+ """-_.!~*'() ;/?:@&=+$, <>#%" {}|\^[]`"""
+ )
cls.m1 = ModelWithStringPrimaryKey.objects.create(string_pk=cls.pk)
content_type_pk = ContentType.objects.get_for_model(ModelWithStringPrimaryKey).pk
LogEntry.objects.log_action(100, content_type_pk, cls.pk, cls.pk, 2, change_message='Changed something')
@@ -2389,7 +2409,10 @@ class AdminViewStringPrimaryKeyTest(TestCase):
counted_presence_after)
def test_logentry_get_admin_url(self):
- "LogEntry.get_admin_url returns a URL to edit the entry's object or None for non-existent (possibly deleted) models"
+ """
+ LogEntry.get_admin_url returns a URL to edit the entry's object or
+ None for non-existent (possibly deleted) models.
+ """
log_entry_model = "modelwithstringprimarykey" # capitalized in Recent Actions
logentry = LogEntry.objects.get(content_type__model__iexact=log_entry_model)
desired_admin_url = reverse('admin:admin_views_modelwithstringprimarykey_change', args=(quote(self.pk),))
@@ -2418,7 +2441,8 @@ class AdminViewStringPrimaryKeyTest(TestCase):
def test_deleteconfirmation_link(self):
"The link from the delete confirmation page referring back to the changeform of the object should be quoted"
- response = self.client.get(reverse('admin:admin_views_modelwithstringprimarykey_delete', args=(quote(self.pk),)))
+ url = reverse('admin:admin_views_modelwithstringprimarykey_delete', args=(quote(self.pk),))
+ response = self.client.get(url)
# this URL now comes through reverse(), thus url quoting and iri_to_uri encoding
change_url = reverse(
'admin:admin_views_modelwithstringprimarykey_change', args=('__fk__',)
@@ -3028,11 +3052,22 @@ class AdminViewListEditable(TestCase):
Refs #12475.
"""
story1 = Story.objects.create(title='The adventures of Guido', content='Once upon a time in Djangoland...')
- story2 = Story.objects.create(title='Crouching Tiger, Hidden Python', content='The Python was sneaking into...')
+ story2 = Story.objects.create(
+ title='Crouching Tiger, Hidden Python',
+ content='The Python was sneaking into...',
+ )
response = self.client.get(reverse('admin:admin_views_story_changelist'))
- self.assertContains(response, 'id="id_form-0-id"', 1) # Only one hidden field, in a separate place than the table.
+ # Only one hidden field, in a separate place than the table.
+ self.assertContains(response, 'id="id_form-0-id"', 1)
self.assertContains(response, 'id="id_form-1-id"', 1)
- self.assertContains(response, '<div class="hiddenfields">\n<input type="hidden" name="form-0-id" value="%d" id="id_form-0-id" /><input type="hidden" name="form-1-id" value="%d" id="id_form-1-id" />\n</div>' % (story2.id, story1.id), html=True)
+ self.assertContains(
+ response,
+ '<div class="hiddenfields">\n'
+ '<input type="hidden" name="form-0-id" value="%d" id="id_form-0-id" />'
+ '<input type="hidden" name="form-1-id" value="%d" id="id_form-1-id" />\n</div>'
+ % (story2.id, story1.id),
+ html=True
+ )
self.assertContains(response, '<td class="field-id">%d</td>' % story1.id, 1)
self.assertContains(response, '<td class="field-id">%d</td>' % story2.id, 1)
@@ -3041,14 +3076,28 @@ class AdminViewListEditable(TestCase):
referenced in list_display_links.
Refs #12475.
"""
- story1 = OtherStory.objects.create(title='The adventures of Guido', content='Once upon a time in Djangoland...')
- story2 = OtherStory.objects.create(title='Crouching Tiger, Hidden Python', content='The Python was sneaking into...')
+ story1 = OtherStory.objects.create(
+ title='The adventures of Guido',
+ content='Once upon a time in Djangoland...',
+ )
+ story2 = OtherStory.objects.create(
+ title='Crouching Tiger, Hidden Python',
+ content='The Python was sneaking into...',
+ )
link1 = reverse('admin:admin_views_otherstory_change', args=(story1.pk,))
link2 = reverse('admin:admin_views_otherstory_change', args=(story2.pk,))
response = self.client.get(reverse('admin:admin_views_otherstory_changelist'))
- self.assertContains(response, 'id="id_form-0-id"', 1) # Only one hidden field, in a separate place than the table.
+ # Only one hidden field, in a separate place than the table.
+ self.assertContains(response, 'id="id_form-0-id"', 1)
self.assertContains(response, 'id="id_form-1-id"', 1)
- self.assertContains(response, '<div class="hiddenfields">\n<input type="hidden" name="form-0-id" value="%d" id="id_form-0-id" /><input type="hidden" name="form-1-id" value="%d" id="id_form-1-id" />\n</div>' % (story2.id, story1.id), html=True)
+ self.assertContains(
+ response,
+ '<div class="hiddenfields">\n'
+ '<input type="hidden" name="form-0-id" value="%d" id="id_form-0-id" />'
+ '<input type="hidden" name="form-1-id" value="%d" id="id_form-1-id" />\n</div>'
+ % (story2.id, story1.id),
+ html=True
+ )
self.assertContains(response, '<th class="field-id"><a href="%s">%d</a></th>' % (link1, story1.id), 1)
self.assertContains(response, '<th class="field-id"><a href="%s">%d</a></th>' % (link2, story2.id), 1)
@@ -3850,9 +3899,11 @@ class AdminCustomQuerysetTest(TestCase):
# Message should contain non-ugly model verbose name. The ugly(!)
# instance representation is set by six.text_type()
self.assertContains(
- response,
- '<li class="success">The short message &quot;ShortMessage_Deferred_timestamp object&quot; was changed successfully.</li>',
- html=True
+ response, (
+ '<li class="success">The short message '
+ '&quot;ShortMessage_Deferred_timestamp object&quot; was '
+ 'changed successfully.</li>'
+ ), html=True
)
def test_edit_model_modeladmin_only_qs(self):
@@ -4462,9 +4513,15 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase):
# Initial inline
self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-0-pubdate').send_keys('2011-12-17')
self.get_select_option('#id_relatedprepopulated_set-0-status', 'option one').click()
- self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-0-name').send_keys(' here is a sŤāÇkeð inline ! ')
- slug1 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-0-slug1').get_attribute('value')
- slug2 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-0-slug2').get_attribute('value')
+ self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-0-name'
+ ).send_keys(' here is a sŤāÇkeð inline ! ')
+ slug1 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-0-slug1'
+ ).get_attribute('value')
+ slug2 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-0-slug2'
+ ).get_attribute('value')
self.assertEqual(slug1, 'here-stacked-inline-2011-12-17')
self.assertEqual(slug2, 'option-one-here-stacked-inline')
@@ -4472,19 +4529,34 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase):
self.selenium.find_elements_by_link_text('Add another Related prepopulated')[0].click()
self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-1-pubdate').send_keys('1999-01-25')
self.get_select_option('#id_relatedprepopulated_set-1-status', 'option two').click()
- self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-1-name').send_keys(' now you haVe anöther sŤāÇkeð inline with a very ... loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooog text... ')
- slug1 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-1-slug1').get_attribute('value')
- slug2 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-1-slug2').get_attribute('value')
- self.assertEqual(slug1, 'now-you-have-another-stacked-inline-very-loooooooo') # 50 characters maximum for slug1 field
- self.assertEqual(slug2, 'option-two-now-you-have-another-stacked-inline-very-looooooo') # 60 characters maximum for slug2 field
+ self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-1-name').send_keys(
+ ' now you haVe anöther sŤāÇkeð inline with a very ... '
+ 'loooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooog text... '
+ )
+ slug1 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-1-slug1'
+ ).get_attribute('value')
+ slug2 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-1-slug2'
+ ).get_attribute('value')
+ # 50 characters maximum for slug1 field
+ self.assertEqual(slug1, 'now-you-have-another-stacked-inline-very-loooooooo')
+ # 60 characters maximum for slug2 field
+ self.assertEqual(slug2, 'option-two-now-you-have-another-stacked-inline-very-looooooo')
# Tabular inlines ----------------------------------------------------
# Initial inline
self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-0-pubdate').send_keys('1234-12-07')
self.get_select_option('#id_relatedprepopulated_set-2-0-status', 'option two').click()
- self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-0-name').send_keys('And now, with a tÃbűlaŘ inline !!!')
- slug1 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-0-slug1').get_attribute('value')
- slug2 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-0-slug2').get_attribute('value')
+ self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-2-0-name'
+ ).send_keys('And now, with a tÃbűlaŘ inline !!!')
+ slug1 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-2-0-slug1'
+ ).get_attribute('value')
+ slug2 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-2-0-slug2'
+ ).get_attribute('value')
self.assertEqual(slug1, 'and-now-tabular-inline-1234-12-07')
self.assertEqual(slug2, 'option-two-and-now-tabular-inline')
@@ -4492,9 +4564,15 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase):
self.selenium.find_elements_by_link_text('Add another Related prepopulated')[1].click()
self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-1-pubdate').send_keys('1981-08-22')
self.get_select_option('#id_relatedprepopulated_set-2-1-status', 'option one').click()
- self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-1-name').send_keys('a tÃbűlaŘ inline with ignored ;"&*^\%$#@-/`~ characters')
- slug1 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-1-slug1').get_attribute('value')
- slug2 = self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-1-slug2').get_attribute('value')
+ self.selenium.find_element_by_css_selector('#id_relatedprepopulated_set-2-1-name').send_keys(
+ 'a tÃbűlaŘ inline with ignored ;"&*^\%$#@-/`~ characters'
+ )
+ slug1 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-2-1-slug1'
+ ).get_attribute('value')
+ slug2 = self.selenium.find_element_by_css_selector(
+ '#id_relatedprepopulated_set-2-1-slug2'
+ ).get_attribute('value')
self.assertEqual(slug1, 'tabular-inline-ignored-characters-1981-08-22')
self.assertEqual(slug2, 'option-one-tabular-inline-ignored-characters')
@@ -4518,7 +4596,8 @@ class SeleniumAdminViewsFirefoxTests(AdminSeleniumWebDriverTestCase):
slug2='option-one-here-stacked-inline',
)
RelatedPrepopulated.objects.get(
- name=' now you haVe anöther sŤāÇkeð inline with a very ... loooooooooooooooooo', # 75 characters in name field
+ # 75 characters in name field
+ name=' now you haVe anöther sŤāÇkeð inline with a very ... loooooooooooooooooo',
pubdate='1999-01-25',
status='option two',
slug1='now-you-have-another-stacked-inline-very-loooooooo',
@@ -4713,9 +4792,21 @@ class ReadonlyTest(TestCase):
self.assertContains(response, '<div class="form-row field-value">')
self.assertContains(response, '<div class="form-row">')
self.assertContains(response, '<p class="help">', 3)
- self.assertContains(response, '<p class="help">Some help text for the title (with unicode ŠĐĆŽćžšđ)</p>', html=True)
- self.assertContains(response, '<p class="help">Some help text for the content (with unicode ŠĐĆŽćžšđ)</p>', html=True)
- self.assertContains(response, '<p class="help">Some help text for the date (with unicode ŠĐĆŽćžšđ)</p>', html=True)
+ self.assertContains(
+ response,
+ '<p class="help">Some help text for the title (with unicode ŠĐĆŽćžšđ)</p>',
+ html=True
+ )
+ self.assertContains(
+ response,
+ '<p class="help">Some help text for the content (with unicode ŠĐĆŽćžšđ)</p>',
+ html=True
+ )
+ self.assertContains(
+ response,
+ '<p class="help">Some help text for the date (with unicode ŠĐĆŽćžšđ)</p>',
+ html=True
+ )
p = Post.objects.create(title="I worked on readonly_fields", content="Its good stuff")
response = self.client.get(reverse('admin:admin_views_post_change', args=(p.pk,)))
@@ -5741,20 +5832,30 @@ class AdminKeepChangeListFiltersTests(TestCase):
# Test equality.
change_user_url = reverse('admin:auth_user_change', args=(self.u5.pk,))
self.assertURLEqual(
- 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(change_user_url),
- 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(change_user_url)
+ 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(
+ change_user_url
+ ),
+ 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(
+ change_user_url
+ )
)
# Test inequality.
with self.assertRaises(AssertionError):
self.assertURLEqual(
- 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(change_user_url),
- 'http://testserver{}?_changelist_filters=is_staff__exact%3D1%26is_superuser__exact%3D1'.format(change_user_url)
+ 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(
+ change_user_url
+ ),
+ 'http://testserver{}?_changelist_filters=is_staff__exact%3D1%26is_superuser__exact%3D1'.format(
+ change_user_url
+ )
)
# Ignore scheme and host.
self.assertURLEqual(
- 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(change_user_url),
+ 'http://testserver{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(
+ change_user_url
+ ),
'{}?_changelist_filters=is_staff__exact%3D0%26is_superuser__exact%3D0'.format(change_user_url)
)