Refs #27953 -- Removed hardcoded uses of Model.__str__() in tests.

This commit is contained in:
Collin Anderson 2017-06-09 12:36:09 -04:00 committed by Tim Graham
parent 0877989c94
commit 7c9cb1ed37
6 changed files with 31 additions and 28 deletions

View File

@ -186,7 +186,7 @@ class ChangeListTests(TestCase):
link = reverse('admin:admin_changelist_child_change', args=(new_child.id,)) link = reverse('admin:admin_changelist_child_change', args=(new_child.id,))
row_html = ( row_html = (
'<tbody><tr class="row1"><th class="field-name"><a href="%s">name</a></th>' '<tbody><tr class="row1"><th class="field-name"><a href="%s">name</a></th>'
'<td class="field-parent nowrap">Parent object</td></tr></tbody>' % link '<td class="field-parent nowrap">%s</td></tr></tbody>' % (link, new_parent)
) )
self.assertNotEqual(table_output.find(row_html), -1, 'Failed to find expected row element: %s' % table_output) self.assertNotEqual(table_output.find(row_html), -1, 'Failed to find expected row element: %s' % table_output)

View File

@ -18,6 +18,9 @@ class Article(models.Model):
hist = models.CharField(max_length=100, verbose_name=_("History")) hist = models.CharField(max_length=100, verbose_name=_("History"))
created = models.DateTimeField(null=True) created = models.DateTimeField(null=True)
def __str__(self):
return self.title
def test_from_model(self): def test_from_model(self):
return "nothing" return "nothing"

View File

@ -120,23 +120,23 @@ class LogEntryTests(TestCase):
json.loads(logentry.change_message), json.loads(logentry.change_message),
[ [
{"changed": {"fields": ["domain"]}}, {"changed": {"fields": ["domain"]}},
{"added": {"object": "Article object", "name": "article"}}, {"added": {"object": "Added article", "name": "article"}},
{"changed": {"fields": ["title"], "object": "Article object", "name": "article"}}, {"changed": {"fields": ["title"], "object": "Changed Title", "name": "article"}},
{"deleted": {"object": "Article object", "name": "article"}}, {"deleted": {"object": "Title second article", "name": "article"}},
] ]
) )
self.assertEqual( self.assertEqual(
logentry.get_change_message(), logentry.get_change_message(),
'Changed domain. Added article "Article object". ' 'Changed domain. Added article "Added article". '
'Changed title for article "Article object". Deleted article "Article object".' 'Changed title for article "Changed Title". Deleted article "Title second article".'
) )
with translation.override('fr'): with translation.override('fr'):
self.assertEqual( self.assertEqual(
logentry.get_change_message(), logentry.get_change_message(),
"Modification de domain. Ajout de article « Article object ». " "Modification de domain. Ajout de article « Added article ». "
"Modification de title pour l'objet article « Article object ». " "Modification de title pour l'objet article « Changed Title ». "
"Suppression de article « Article object »." "Suppression de article « Title second article »."
) )
def test_logentry_get_edited_object(self): def test_logentry_get_edited_object(self):

View File

@ -891,11 +891,11 @@ class AdminViewBasicTest(AdminViewBasicTestCase):
ModelAdmin.changelist_view shouldn't result in a NoReverseMatch if url ModelAdmin.changelist_view shouldn't result in a NoReverseMatch if url
for change_view is removed from get_urls (#20934). for change_view is removed from get_urls (#20934).
""" """
UnchangeableObject.objects.create() o = UnchangeableObject.objects.create()
response = self.client.get(reverse('admin:admin_views_unchangeableobject_changelist')) response = self.client.get(reverse('admin:admin_views_unchangeableobject_changelist'))
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
# Check the format of the shown object -- shouldn't contain a change link # Check the format of the shown object -- shouldn't contain a change link
self.assertContains(response, '<th class="field-__str__">UnchangeableObject object</th>', html=True) self.assertContains(response, '<th class="field-__str__">%s</th>' % o, html=True)
def test_invalid_appindex_url(self): def test_invalid_appindex_url(self):
""" """
@ -3306,7 +3306,7 @@ class AdminActionsTest(TestCase):
# No 500 caused by NoReverseMatch # No 500 caused by NoReverseMatch
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
# The page shouldn't display a link to the nonexistent change page # The page shouldn't display a link to the nonexistent change page
self.assertContains(response, "<li>Unchangeable object: UnchangeableObject object</li>", 1, html=True) self.assertContains(response, "<li>Unchangeable object: %s</li>" % obj, 1, html=True)
def test_custom_function_mail_action(self): def test_custom_function_mail_action(self):
"Tests a custom action defined in a function" "Tests a custom action defined in a function"
@ -3692,12 +3692,12 @@ class AdminCustomQuerysetTest(TestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(ShortMessage.objects.count(), 1) self.assertEqual(ShortMessage.objects.count(), 1)
# Message should contain non-ugly model verbose name # Message should contain non-ugly model verbose name
pk = ShortMessage.objects.all()[0].pk sm = ShortMessage.objects.all()[0]
self.assertContains( self.assertContains(
response, response,
'<li class="success">The short message "<a href="%s">' '<li class="success">The short message "<a href="%s">'
'ShortMessage object</a>" was added successfully.</li>' % '%s</a>" was added successfully.</li>' %
reverse('admin:admin_views_shortmessage_change', args=(pk,)), html=True (reverse('admin:admin_views_shortmessage_change', args=(sm.pk,)), sm), html=True
) )
def test_add_model_modeladmin_only_qs(self): def test_add_model_modeladmin_only_qs(self):
@ -3733,12 +3733,12 @@ class AdminCustomQuerysetTest(TestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(Paper.objects.count(), 1) self.assertEqual(Paper.objects.count(), 1)
# Message should contain non-ugly model verbose name # Message should contain non-ugly model verbose name
pk = Paper.objects.all()[0].pk p = Paper.objects.all()[0]
self.assertContains( self.assertContains(
response, response,
'<li class="success">The paper "<a href="%s">' '<li class="success">The paper "<a href="%s">'
'Paper object</a>" was added successfully.</li>' % '%s</a>" was added successfully.</li>' %
reverse('admin:admin_views_paper_change', args=(pk,)), html=True (reverse('admin:admin_views_paper_change', args=(p.pk,)), p), html=True
) )
def test_edit_model_modeladmin_defer_qs(self): def test_edit_model_modeladmin_defer_qs(self):
@ -3786,8 +3786,8 @@ class AdminCustomQuerysetTest(TestCase):
self.assertContains( self.assertContains(
response, response,
'<li class="success">The short message "<a href="%s">' '<li class="success">The short message "<a href="%s">'
'ShortMessage object</a>" was changed successfully.</li>' % '%s</a>" was changed successfully.</li>' %
reverse('admin:admin_views_shortmessage_change', args=(sm.pk,)), html=True (reverse('admin:admin_views_shortmessage_change', args=(sm.pk,)), sm), html=True
) )
def test_edit_model_modeladmin_only_qs(self): def test_edit_model_modeladmin_only_qs(self):
@ -3833,8 +3833,8 @@ class AdminCustomQuerysetTest(TestCase):
self.assertContains( self.assertContains(
response, response,
'<li class="success">The paper "<a href="%s">' '<li class="success">The paper "<a href="%s">'
'Paper object</a>" was changed successfully.</li>' % '%s</a>" was changed successfully.</li>' %
reverse('admin:admin_views_paper_change', args=(p.pk,)), html=True (reverse('admin:admin_views_paper_change', args=(p.pk,)), p), html=True
) )
def test_history_view_custom_qs(self): def test_history_view_custom_qs(self):

View File

@ -520,8 +520,8 @@ class ForeignKeyRawIdWidgetTest(TestCase):
self.assertHTMLEqual( self.assertHTMLEqual(
w.render('honeycomb_widget', big_honeycomb.pk, attrs={}), w.render('honeycomb_widget', big_honeycomb.pk, attrs={}),
'<input type="text" name="honeycomb_widget" value="%(hcombpk)s" />' '<input type="text" name="honeycomb_widget" value="%(hcombpk)s" />'
'&nbsp;<strong>Honeycomb object</strong>' '&nbsp;<strong>%(hcomb)s</strong>'
% {'hcombpk': big_honeycomb.pk} % {'hcombpk': big_honeycomb.pk, 'hcomb': big_honeycomb}
) )
def test_fk_to_self_model_not_in_admin(self): def test_fk_to_self_model_not_in_admin(self):
@ -535,8 +535,8 @@ class ForeignKeyRawIdWidgetTest(TestCase):
self.assertHTMLEqual( self.assertHTMLEqual(
w.render('individual_widget', subject1.pk, attrs={}), w.render('individual_widget', subject1.pk, attrs={}),
'<input type="text" name="individual_widget" value="%(subj1pk)s" />' '<input type="text" name="individual_widget" value="%(subj1pk)s" />'
'&nbsp;<strong>Individual object</strong>' '&nbsp;<strong>%(subj1)s</strong>'
% {'subj1pk': subject1.pk} % {'subj1pk': subject1.pk, 'subj1': subject1}
) )
def test_proper_manager_for_label_lookup(self): def test_proper_manager_for_label_lookup(self):

View File

@ -21,9 +21,9 @@ class TestFloatField(TestCase):
instance.size = instance instance.size = instance
msg = ( msg = (
'Tried to update field model_fields.FloatModel.size with a model ' 'Tried to update field model_fields.FloatModel.size with a model '
'instance, <FloatModel: FloatModel object>. Use a value ' 'instance, %r. Use a value '
'compatible with FloatField.' 'compatible with FloatField.'
) ) % instance
with transaction.atomic(): with transaction.atomic():
with self.assertRaisesMessage(TypeError, msg): with self.assertRaisesMessage(TypeError, msg):
instance.save() instance.save()