Opened 3 years ago
Closed 3 years ago
#33762 closed Cleanup/optimization (wontfix)
test_random_ordering not really testing randomization
| Reported by: | Sicong | Owned by: | Sicong |
|---|---|---|---|
| Component: | Core (Other) | Version: | |
| Severity: | Normal | Keywords: | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
Unit test test_random_ordering only checks the length of result queryset. It's not checking if order_by("?") giving same result every time.
My proposed solution is like this. It's very unlikely that all 10 items generated with order_by("?") are the same.
def test_random_ordering(self):
"""
Use '?' to order randomly.
"""
articles = []
# Iterate 10 times, items in result set shouldn't be all the same
for _ in range(10):
articles.append(list(Article.objects.order_by("?")))
self.assertNotEqual(articles.count(articles[0]), 10)
Change History (2)
comment:1 by , 3 years ago
| Owner: | changed from to |
|---|---|
| Status: | new → assigned |
comment:2 by , 3 years ago
| Component: | Testing framework → Core (Other) |
|---|---|
| Resolution: | → wontfix |
| Status: | assigned → closed |
Note:
See TracTickets
for help on using tickets.
Unfortunately, it's still possible. I don't see much value in adding a non-deterministic flaky test.