Django

Code

Ticket #8763 (closed: fixed)

Opened 3 months ago

Last modified 3 months ago

modeltests/generic_relations may fail since TaggedItem ordering is not completely specified

Reported by: Richard Davies <richard.davies@elastichosts.com> Assigned to: nobody
Milestone: 1.0 Component: Testing framework
Version: SVN Keywords:
Cc: richard.davies@elastichosts.com Triage Stage: Accepted
Has patch: 1 Needs documentation: 0
Needs tests: 0 Patch needs improvement: 0

Description

modeltests/generic_relations fails on one of my systems, while it works on others. The reason is that there is a test on TaggedItem?.objects.all(), and the order of the items returned by all() may vary.

I attach a very simple patch to guarantee that the ordering is as expected by the test case.

The error:

$ ./runtests.py --settings=SETT_postgresql_psycopg2 generic_relations
======================================================================
FAIL: Doctest: modeltests.generic_relations.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/elastic/django-dev/trunk/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for modeltests.generic_relations.models.__test__.API_TESTS
  File "/home/elastic/django-dev/trunk/tests/modeltests/generic_relations/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/home/elastic/django-dev/trunk/tests/modeltests/generic_relations/models.py", line ?, in modeltests.generic_relations.models.__test__.API_TESTS
Failed example:
    [(t.tag, t.content_type, t.object_id) for t in TaggedItem.objects.all()]
Expected:
    [(u'clearish', <ContentType: mineral>, 1), (u'fatty', <ContentType: vegetable>, 2), (u'fatty', <ContentType: animal>, 1), (u'hairy', <ContentType: animal>, 2), (u'salty', <ContentType: vegetable>, 2), (u'shiny', <ContentType: animal>, 1), (u'yellow', <ContentType: animal>, 2)]
Got:
    [(u'clearish', <ContentType: mineral>, 1), (u'fatty', <ContentType: animal>, 1), (u'fatty', <ContentType: vegetable>, 2), (u'hairy', <ContentType: animal>, 2), (u'salty', <ContentType: vegetable>, 2), (u'shiny', <ContentType: animal>, 1), (u'yellow', <ContentType: animal>, 2)]
----------------------------------------------------------------------
File "/home/elastic/django-dev/trunk/tests/modeltests/generic_relations/models.py", line ?, in modeltests.generic_relations.models.__test__.API_TESTS
Failed example:
    [(t.tag, t.content_type, t.object_id) for t in TaggedItem.objects.all()]
Expected:
    [(u'clearish', <ContentType: mineral>, 1), (u'fatty', <ContentType: vegetable>, 2), (u'fatty', <ContentType: animal>, 1), (u'salty', <ContentType: vegetable>, 2), (u'shiny', <ContentType: animal>, 1)]
Got:
    [(u'clearish', <ContentType: mineral>, 1), (u'fatty', <ContentType: animal>, 1), (u'fatty', <ContentType: vegetable>, 2), (u'salty', <ContentType: vegetable>, 2), (u'shiny', <ContentType: animal>, 1)]
----------------------------------------------------------------------
File "/home/elastic/django-dev/trunk/tests/modeltests/generic_relations/models.py", line ?, in modeltests.generic_relations.models.__test__.API_TESTS
Failed example:
    [(t.tag, t.content_type, t.object_id) for t in TaggedItem.objects.all()]
Expected:
    [(u'clearish', <ContentType: mineral>, 1), (u'fatty', <ContentType: vegetable>, 2), (u'fatty', <ContentType: animal>, 1), (u'salty', <ContentType: vegetable>, 2), (u'shiny', <ContentType: animal>, 1)]
Got:
    [(u'clearish', <ContentType: mineral>, 1), (u'fatty', <ContentType: animal>, 1), (u'fatty', <ContentType: vegetable>, 2), (u'salty', <ContentType: vegetable>, 2), (u'shiny', <ContentType: animal>, 1)]


----------------------------------------------------------------------
Ran 1 test in 0.319s

FAILED (failures=1)

Attachments

8763_generic_relations_sort.diff (461 bytes) - added by Richard Davies <richard.davies@elastichosts.com> on 09/01/08 10:57:14.

Change History

09/01/08 10:57:14 changed by Richard Davies <richard.davies@elastichosts.com>

  • attachment 8763_generic_relations_sort.diff added.

09/01/08 13:52:08 changed by ericholscher

  • needs_better_patch changed.
  • stage changed from Unreviewed to Accepted.
  • needs_tests changed.
  • needs_docs changed.

This looks ready for checkin, but I'll just mark it accepted.

09/01/08 16:16:17 changed by jacob

  • status changed from new to closed.
  • resolution set to fixed.

(In [8815]) Fixed #8763: added an explicit ordering to the generic_relations test so that the test results aren't dependant on database ordering.


Add/Change #8763 (modeltests/generic_relations may fail since TaggedItem ordering is not completely specified)




Change Properties
Action