Changes between Initial Version and Version 1 of Ticket #29308
- Timestamp:
- Apr 10, 2018, 12:05:42 PM (7 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #29308
- Property Component Testing framework → Documentation
- Property Triage Stage Unreviewed → Accepted
- Property Summary Testing: assertQuerysetEqual's transform parameter not applied to the values parameter → Clarify how assertQuerysetEqual()'s transform parameter works
- Property Type Bug → Cleanup/optimization
-
Ticket #29308 – Description
initial v1 8 8 The 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: 9 9 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])` 13 11 14 12 The tutorial doesn't use the above but instead hard codes string representations in the tests: 15 13 https://docs.djangoproject.com/en/2.0/intro/tutorial05/#testing-our-new-view 16 14 17 18 15 IMO 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 20 16 21 17 Note: this may sounds like an RFE but if we trust the docs it's a bug. 22 18 23 19 Note2: I can contribute a PR for this and update the existing test suite & docs. Just let me know how you feel about it. 24