#17940 closed Bug (fixed)
RuntimeWarning when running the test suite on a new project
| Reported by: | Aymeric Augustin | Owned by: | Aymeric Augustin |
|---|---|---|---|
| Component: | contrib.auth | Version: | dev |
| Severity: | Release blocker | Keywords: | |
| Cc: | slacy@… | Triage Stage: | Accepted |
| Has patch: | yes | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
(reported on IRC)
19-21:33:09 carljm mYk: is there already an open ticket about the fact that when you start a new project and run its tests, you get RuntimeWarnings about timezones? 19-22:17:43 carljm mYk: it's in the contrib.auth tests 19-22:17:48 carljm three occurrences 19-22:17:57 carljm haven't tracked it down to the specific tests yet 19-22:18:10 carljm reproduction is just "startproject, configure db, manage.py test auth" 19-22:22:07 cramm carljm, mYk: /manage.py test -v2 auth.AuthContextProcessorTests.test_message_attrs auth.AuthViewNamedURLTests.test_named_urls auth.LoadDataWithNaturalKeysTestCase.test_user_is_created_and_added_to_group 19-22:22:28 cramm these are the three tests to run to reproduce what Carl reports
(reported in the comments of #17275)
I'm just switching our codebase to 1.4c2 and have run into this issue in the test suites.
To make sure it wasn't something I was doing, I did the following:
$ django-admin.py startproject blank $ cd blank/blank $ <edit settings.py and set DB ENGINE to 'django.db.backends.sqlite3' $ django-admin.py test Creating test database for alias 'default'... ..../home/slacy/src/oswebsite/wsve/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2007-05-30 13:20:10) while time zone support is active. RuntimeWarning) ...../home/slacy/src/oswebsite/wsve/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2006-12-17 07:03:31) while time zone support is active. RuntimeWarning) ........................../home/slacy/src/oswebsite/wsve/local/lib/python2.7/site-packages/django/db/models/fields/__init__.py:808: RuntimeWarning: DateTimeField received a naive datetime (2012-01-13 00:14:00) while time zone support is active. RuntimeWarning) ...............................................................................................................................................................................................................................................................................................................s....................................................................... ---------------------------------------------------------------------- Ran 410 tests in 10.039s OK (skipped=1) Destroying test database for alias 'default'...
Attachments (1)
Change History (6)
comment:1 by , 14 years ago
comment:2 by , 14 years ago
| Has patch: | set |
|---|
The root cause of the problem lies in the fixtures used by the tests of django.contrib.auth. As explained in the docs (once again!) it isn't possible to write fixtures that work both with and without USE_TZ.
The easiest solution is to override_settings(USE_TZ=False) in all tests that use fixtures.
This problem only affects contrib apps, whose tests are likely to be run with non-default settings.
A quick find shows that auth, flatpages and gis use fixtures and may suffer from the problem:
% find django -name .svn -prune -o -path \*/fixtures/\* -type f -print django/contrib/auth/fixtures/authtestdata.json django/contrib/auth/fixtures/context-processors-users.xml django/contrib/auth/fixtures/natural.json django/contrib/auth/fixtures/regular.json django/contrib/flatpages/fixtures/sample_flatpages.json django/contrib/gis/tests/distapp/fixtures/initial_data.json.gz django/contrib/gis/tests/geoapp/fixtures/initial_data.json.gz django/contrib/gis/tests/geogapp/fixtures/initial_data.json django/contrib/gis/tests/relatedapp/fixtures/initial_data.json.gz
Upon closer inspection, only the auth fixtures contain serialized datetime objects, so the fix only needs to be applied to auth.
by , 14 years ago
| Attachment: | 17940.patch added |
|---|
comment:4 by , 14 years ago
| Cc: | added |
|---|
comment:5 by , 14 years ago
This bug fix has introduced another bug #17966 which is in 1.4 final. Sigh. :)
FYI the easiest way to debug this is to turn warning into exceptions as explained in the docs.