#23947 closed Cleanup/optimization (fixed)
Django's test suite does not pass in reverse order
| Reported by: | Tim Graham | Owned by: | Diego Guimarães |
|---|---|---|---|
| Component: | Core (Other) | Version: | dev |
| Severity: | Normal | Keywords: | |
| Cc: | diegaogs@… | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
runtests.py now has a --reverse flag to run tests in reverse order (#23742). Unfortunately, Django's test suite doesn't pass this way which means some tests have side effects. We should see if we can fix this.
Attachments (2)
Change History (23)
comment:1 by , 11 years ago
| Cc: | added |
|---|---|
| Owner: | changed from to |
| Status: | new → assigned |
by , 11 years ago
| Attachment: | 23947.diff added |
|---|
comment:2 by , 11 years ago
| Has patch: | set |
|---|---|
| Patch needs improvement: | set |
This initial patch fixes most of the errors when running the Django test suite with --reverse. The common problems I've found so far, was basically that some tests were performing operations that in a reverse way triggered side effects, like a smtp sever that was stopped first and had issues with Thread when tried to start it again, and cache that was closed by a previous test, etc.
There is still one test failing with issues handling staticfiles cache.
FAIL: test_template_tag_denorm (staticfiles_tests.tests.TestCollectionCachedStorage)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/diego/djangoproject/django/tests/staticfiles_tests/tests.py", line 526, in test_template_tag_denorm
self.assertIn(b'url("img/relative.acae32e4532b.png', content)
AssertionError: 'url("img/relative.acae32e4532b.png' not found in '@import url("../cached/styles.bb84a0240107.css");\nbody {\n background: #d3d6d8 url("img/relative.deploy12345.png");\n}\n'
To reproduce this error: ./runtests.py --reverse staticfiles_tests.tests
comment:3 by , 11 years ago
I saw your paste in IRC that you had a proposed fix for the last issue. Any chance you could make a pull request with the fixes? That makes review a lot easier. Thanks!
by , 11 years ago
| Attachment: | static_files.diff added |
|---|
comment:11 by , 11 years ago
This new patch tries to solve the staticfiles test problem. I added a tearDown to the TestHashedFiles mixin, where it clears the hashed_files after each test, avoiding side effects and unexpected changes among them. Is this approach valid?
comment:13 by , 11 years ago
| Has patch: | unset |
|---|---|
| Patch needs improvement: | unset |
SQLite is passing in reverse, but it looks like there is more work to do on PostgreSQL. I see the following failures:
admin_views.tests.AdminViewDeletedObjectsTest.test_generic_relations generic_relations_regress.tests.GenericRelationTests.test_annotate migrations.test_operations.OperationTests.test_alter_field_m2m queries.tests.SubqueryTests.test_related_sliced_subquery
comment:14 by , 11 years ago
Ok, I'll setup the test suite to run with PostgresSQL and debug those tests.
comment:15 by , 11 years ago
Created a new PR with the fixes to PostgreSQL https://github.com/django/django/pull/3726
comment:16 by , 11 years ago
| Has patch: | set |
|---|
comment:20 by , 11 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |
I think we're finished here for now. Thanks Diego!
initial patch