Changes between Initial Version and Version 1 of Ticket #29308


Ignore:
Timestamp:
Apr 10, 2018, 12:05:42 PM (6 years ago)
Author:
Tim Graham
Comment:

As someone who knows how the transform parameter works, the documentation is unclear to me. Changing behavior would be backwards incompatible.

For the use case you mentioned, it would also be useful to recommend assertSequenceEqual(queryset, [obj1, obj2, ...]) and assertCountEqual() as these are simpler than assertQuerysetEqual().

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #29308

    • Property Component Testing frameworkDocumentation
    • Property Triage Stage UnreviewedAccepted
    • Property Summary Testing: assertQuerysetEqual's transform parameter not applied to the values parameterClarify how assertQuerysetEqual()'s transform parameter works
    • Property Type BugCleanup/optimization
  • Ticket #29308 – Description

    initial v1  
    88The way I read this is that this assert method receives a queryset and a list parameters and compares their contents for equality. By default it will use `repr` to do that but the user can change this. The way the docs are written suggests that the `transform` function is applied to both the queryset and the `values` list. In other words in my tests I can write:
    99
    10 ``
    11 self.assertQuerysetEqual(some_query_taken_from_request_context, [test_object1, test_object2, etc])
    12 ``
     10`self.assertQuerysetEqual(some_query_taken_from_request_context, [test_object1, test_object2, etc])`
    1311
    1412The tutorial doesn't use the above but instead hard codes string representations in the tests:
    1513https://docs.djangoproject.com/en/2.0/intro/tutorial05/#testing-our-new-view
    1614
    17 
    1815IMO this is less optimal, makes test suites more fragile (dependent on repr()) and less intuitive b/c the expected value isn't a list of the actual objects but a list of their representation which may have been obtained elsewhere.
    19 
    2016
    2117Note: this may sounds like an RFE but if we trust the docs it's a bug.
    2218
    2319Note2: I can contribute a PR for this and update the existing test suite & docs. Just let me know how you feel about it.
    24 
Back to Top