mirror of
https://github.com/django/django.git
synced 2025-12-15 21:45:20 +00:00
Split tests.basic.ModelTests in several tests; refs #18586.
This commit is contained in:
parent
77c0a904cb
commit
7e2c804c94
5 changed files with 384 additions and 315 deletions
|
|
@ -97,3 +97,60 @@ class DateTimesTests(TestCase):
|
|||
Article.objects.create(title="First one", pub_date=now)
|
||||
qs = Article.objects.datetimes('pub_date', 'second')
|
||||
self.assertEqual(qs[0], now)
|
||||
|
||||
def test_datetimes_returns_available_dates_for_given_scope_and_given_field(self):
|
||||
pub_dates = [
|
||||
datetime.datetime(2005, 7, 28, 12, 15),
|
||||
datetime.datetime(2005, 7, 29, 2, 15),
|
||||
datetime.datetime(2005, 7, 30, 5, 15),
|
||||
datetime.datetime(2005, 7, 31, 19, 15)]
|
||||
for i, pub_date in enumerate(pub_dates):
|
||||
Article(pub_date=pub_date, title='title #{}'.format(i)).save()
|
||||
|
||||
self.assertQuerysetEqual(
|
||||
Article.objects.datetimes('pub_date', 'year'),
|
||||
["datetime.datetime(2005, 1, 1, 0, 0)"])
|
||||
self.assertQuerysetEqual(
|
||||
Article.objects.datetimes('pub_date', 'month'),
|
||||
["datetime.datetime(2005, 7, 1, 0, 0)"])
|
||||
self.assertQuerysetEqual(
|
||||
Article.objects.datetimes('pub_date', 'day'),
|
||||
["datetime.datetime(2005, 7, 28, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 29, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 30, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 31, 0, 0)"])
|
||||
self.assertQuerysetEqual(
|
||||
Article.objects.datetimes('pub_date', 'day', order='ASC'),
|
||||
["datetime.datetime(2005, 7, 28, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 29, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 30, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 31, 0, 0)"])
|
||||
self.assertQuerysetEqual(
|
||||
Article.objects.datetimes('pub_date', 'day', order='DESC'),
|
||||
["datetime.datetime(2005, 7, 31, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 30, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 29, 0, 0)",
|
||||
"datetime.datetime(2005, 7, 28, 0, 0)"])
|
||||
|
||||
def test_datetimes_has_lazy_iterator(self):
|
||||
pub_dates = [
|
||||
datetime.datetime(2005, 7, 28, 12, 15),
|
||||
datetime.datetime(2005, 7, 29, 2, 15),
|
||||
datetime.datetime(2005, 7, 30, 5, 15),
|
||||
datetime.datetime(2005, 7, 31, 19, 15)]
|
||||
for i, pub_date in enumerate(pub_dates):
|
||||
Article(pub_date=pub_date, title='title #{}'.format(i)).save()
|
||||
# Use iterator() with datetimes() to return a generator that lazily
|
||||
# requests each result one at a time, to save memory.
|
||||
dates = []
|
||||
with self.assertNumQueries(0):
|
||||
article_datetimes_iterator = Article.objects.datetimes('pub_date', 'day', order='DESC').iterator()
|
||||
|
||||
with self.assertNumQueries(1):
|
||||
for article in article_datetimes_iterator:
|
||||
dates.append(article)
|
||||
self.assertEqual(dates, [
|
||||
datetime.datetime(2005, 7, 31, 0, 0),
|
||||
datetime.datetime(2005, 7, 30, 0, 0),
|
||||
datetime.datetime(2005, 7, 29, 0, 0),
|
||||
datetime.datetime(2005, 7, 28, 0, 0)])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue