Django

Code

Ticket #8510 (closed: fixed)

Opened 3 months ago

Last modified 3 months ago

Date filtering no longer works with integers

Reported by: jarrow Assigned to: mtredinnick
Milestone: 1.0 Component: Database layer (models, ORM)
Version: SVN Keywords:
Cc: boobsd@gmail.com Triage Stage: Accepted
Has patch: 0 Needs documentation: 0
Needs tests: 0 Patch needs improvement: 0

Description

Tested with r8507, on Debian Etch, sqlite and Python 2.4.4

======================================================================
FAIL: Doctest: modeltests.reserved_names.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for modeltests.reserved_names.models.__test__.API_TESTS
  File "/srv/lib/django-trunk/tests/modeltests/reserved_names/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/reserved_names/models.py", line ?, in modeltests.reserved_names.models.__test__.API_TESTS
Failed example:
    Thing.objects.filter(where__month=1)
Expected:
    [<Thing: a>]
Got:
    []


======================================================================
FAIL: Doctest: modeltests.basic.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for modeltests.basic.models.__test__.API_TESTS
  File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line ?, in modeltests.basic.models.__test__.API_TESTS
Failed example:
    Article.objects.get(pub_date__year=2005, pub_date__month=7)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 1267, in __run
        compileflags, 1) in test.globs
      File "<doctest modeltests.basic.models.__test__.API_TESTS[14]>", line 1, in ?
        Article.objects.get(pub_date__year=2005, pub_date__month=7)
      File "/usr/lib/python2.4/site-packages/django/db/models/manager.py", line 81, in get
        return self.get_query_set().get(*args, **kwargs)
      File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 300, in get
        raise self.model.DoesNotExist("%s matching query does not exist."
    DoesNotExist: Article matching query does not exist.
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line ?, in modeltests.basic.models.__test__.API_TESTS
Failed example:
    Article.objects.get(pub_date__year=2005, pub_date__month=7, pub_date__day=28)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 1267, in __run
        compileflags, 1) in test.globs
      File "<doctest modeltests.basic.models.__test__.API_TESTS[15]>", line 1, in ?
        Article.objects.get(pub_date__year=2005, pub_date__month=7, pub_date__day=28)
      File "/usr/lib/python2.4/site-packages/django/db/models/manager.py", line 81, in get
        return self.get_query_set().get(*args, **kwargs)
      File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 300, in get
        raise self.model.DoesNotExist("%s matching query does not exist."
    DoesNotExist: Article matching query does not exist.
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line ?, in modeltests.basic.models.__test__.API_TESTS
Failed example:
    Article.objects.filter(pub_date__year=2005, pub_date__month=7)
Expected:
    [<Article: Area woman programs in Python>]
Got:
    []


======================================================================
FAIL: Doctest: regressiontests.model_regress.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for regressiontests.model_regress.models.__test__.API_TESTS
  File "/srv/lib/django-trunk/tests/regressiontests/model_regress/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/model_regress/models.py", line ?, in regressiontests.model_regress.models.__test__.API_TESTS
Failed example:
    [p.when for p in Party.objects.filter(when__month = 1)]
Expected:
    [datetime.date(1999, 1, 1)]
Got:
    []
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/model_regress/models.py", line ?, in regressiontests.model_regress.models.__test__.API_TESTS
Failed example:
    [p.when for p in Party.objects.filter(when__month = 12)]
Expected:
    [datetime.date(1999, 12, 31), datetime.date(1998, 12, 31)]
Got:
    []


======================================================================
FAIL: Doctest: regressiontests.mail.tests
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for regressiontests.mail.tests
  File "/srv/lib/django-trunk/tests/regressiontests/mail/tests.py", line 1, in tests

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/mail/tests.py", line 12, in regressiontests.mail.tests
Failed example:
    message['Subject']
Expected:
    <email.header.Header instance...>
Got:
    <email.Header.Header instance at 0x2aaaabbda710>
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/mail/tests.py", line 27, in regressiontests.mail.tests
Failed example:
    message['Subject']
Expected:
    <email.header.Header instance...>
Got:
    <email.Header.Header instance at 0x2aaaabbe4290>


----------------------------------------------------------------------
Ran 449 tests in 303.805s

FAILED (failures=4)

Attachments

Change History

08/23/08 20:58:39 changed by jarrow

  • needs_better_patch changed.
  • summary changed from Tests fail with r8507 to Tests fail after [8494].
  • needs_tests changed.
  • needs_docs changed.

08/23/08 21:09:08 changed by jarrow

Hmmm, some errors disappear below r8494 but this is still there with r8493:

======================================================================
FAIL: Doctest: regressiontests.mail.tests
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for regressiontests.mail.tests
  File "/srv/lib/django-trunk/tests/regressiontests/mail/tests.py", line 1, in tests

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/mail/tests.py", line 12, in regressiontests.mail.tests
Failed example:
    message['Subject']
Expected:
    <email.header.Header instance...>
Got:
    <email.Header.Header instance at 0x2aaaabb365f0>
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/mail/tests.py", line 27, in regressiontests.mail.tests
Failed example:
    message['Subject']
Expected:
    <email.header.Header instance...>
Got:
    <email.Header.Header instance at 0x2aaaabb04200>


----------------------------------------------------------------------
Ran 446 tests in 296.577s

FAILED (failures=1)

08/23/08 21:13:09 changed by jarrow

Ok, the last failure was triggered by [8483].

08/23/08 21:37:42 changed by jarrow

So [8494] actually triggered this (see below). And I opened another ticket for the other failure, see #8511.

======================================================================
FAIL: Doctest: modeltests.reserved_names.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for modeltests.reserved_names.models.__test__.API_TESTS
  File "/srv/lib/django-trunk/tests/modeltests/reserved_names/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/reserved_names/models.py", line ?, in modeltests.reserved_names.models.__test__.API_TESTS
Failed example:
    Thing.objects.filter(where__month=1)
Expected:
    [<Thing: a>]
Got:
    []


======================================================================
FAIL: Doctest: modeltests.basic.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for modeltests.basic.models.__test__.API_TESTS
  File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line ?, in modeltests.basic.models.__test__.API_TESTS
Failed example:
    Article.objects.get(pub_date__year=2005, pub_date__month=7)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 1267, in __run
        compileflags, 1) in test.globs
      File "<doctest modeltests.basic.models.__test__.API_TESTS[14]>", line 1, in ?
        Article.objects.get(pub_date__year=2005, pub_date__month=7)
      File "/usr/lib/python2.4/site-packages/django/db/models/manager.py", line 81, in get
        return self.get_query_set().get(*args, **kwargs)
      File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 300, in get
        raise self.model.DoesNotExist("%s matching query does not exist."
    DoesNotExist: Article matching query does not exist.
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line ?, in modeltests.basic.models.__test__.API_TESTS
Failed example:
    Article.objects.get(pub_date__year=2005, pub_date__month=7, pub_date__day=28)
Exception raised:
    Traceback (most recent call last):
      File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 1267, in __run
        compileflags, 1) in test.globs
      File "<doctest modeltests.basic.models.__test__.API_TESTS[15]>", line 1, in ?
        Article.objects.get(pub_date__year=2005, pub_date__month=7, pub_date__day=28)
      File "/usr/lib/python2.4/site-packages/django/db/models/manager.py", line 81, in get
        return self.get_query_set().get(*args, **kwargs)
      File "/usr/lib/python2.4/site-packages/django/db/models/query.py", line 300, in get
        raise self.model.DoesNotExist("%s matching query does not exist."
    DoesNotExist: Article matching query does not exist.
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/modeltests/basic/models.py", line ?, in modeltests.basic.models.__test__.API_TESTS
Failed example:
    Article.objects.filter(pub_date__year=2005, pub_date__month=7)
Expected:
    [<Article: Area woman programs in Python>]
Got:
    []


======================================================================
FAIL: Doctest: regressiontests.model_regress.models.__test__.API_TESTS
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/usr/lib/python2.4/site-packages/django/test/_doctest.py", line 2180, in runTest
    raise self.failureException(self.format_failure(new.getvalue()))
AssertionError: Failed doctest test for regressiontests.model_regress.models.__test__.API_TESTS
  File "/srv/lib/django-trunk/tests/regressiontests/model_regress/models.py", line unknown line number, in API_TESTS

----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/model_regress/models.py", line ?, in regressiontests.model_regress.models.__test__.API_TESTS
Failed example:
    [p.when for p in Party.objects.filter(when__month = 1)]
Expected:
    [datetime.date(1999, 1, 1)]
Got:
    []
----------------------------------------------------------------------
File "/srv/lib/django-trunk/tests/regressiontests/model_regress/models.py", line ?, in regressiontests.model_regress.models.__test__.API_TESTS
Failed example:
    [p.when for p in Party.objects.filter(when__month = 12)]
Expected:
    [datetime.date(1999, 12, 31), datetime.date(1998, 12, 31)]
Got:
    []

08/24/08 09:39:25 changed by Boo

  • cc set to boobsd@gmail.com.

Yes, after [8494]

MyModel.objects.get(pub_date__month=11, pub_date__day=18, slug=blahblah)

return DoesNotExist? exception, but before [8494] this works correct.

08/24/08 12:15:28 changed by jacob

  • stage changed from Unreviewed to Accepted.

(follow-up: ↓ 8 ) 08/24/08 15:20:06 changed by gsf

It appears that after [8494] month and day filtering work with strings but not integers, so the following returns the desired objects:

MyModel.objects.get(pub_date__month='11', pub_date__day='18')

(in reply to: ↑ 7 ) 08/24/08 15:48:02 changed by gsf

Replying to gsf: With [8494] reverted, the query works with integers but not strings. Ideally, it would work with either.

08/24/08 16:02:23 changed by anonymous

  • component changed from Uncategorized to Database wrapper.

08/24/08 19:43:14 changed by mtredinnick

  • summary changed from Tests fail after [8494] to Date filtering no longer works with integers.

Both strings and integers should be valid there. It's not immediately clear why it's stopped working, but it is a bug.

Changing bug title to something more self-explanatory about the real problem.

08/24/08 19:50:15 changed by mtredinnick

  • owner changed from nobody to mtredinnick.
  • status changed from new to assigned.

08/24/08 22:17:07 changed by mtredinnick

  • status changed from assigned to closed.
  • resolution set to fixed.

(In [8526]) Fixed #8510 -- Allow both strings (mostly for the admin) and integers to be used in "month" and "day" filters on date/datetime fields. Without this commit, SQLite behaved inconsistently after [8494].


Add/Change #8510 (Date filtering no longer works with integers)




Change Properties
Action