diff options
Diffstat (limited to 'parts/django/tests/modeltests/get_latest')
-rw-r--r-- | parts/django/tests/modeltests/get_latest/__init__.py | 0 | ||||
-rw-r--r-- | parts/django/tests/modeltests/get_latest/models.py | 30 | ||||
-rw-r--r-- | parts/django/tests/modeltests/get_latest/tests.py | 53 |
3 files changed, 0 insertions, 83 deletions
diff --git a/parts/django/tests/modeltests/get_latest/__init__.py b/parts/django/tests/modeltests/get_latest/__init__.py deleted file mode 100644 index e69de29..0000000 --- a/parts/django/tests/modeltests/get_latest/__init__.py +++ /dev/null diff --git a/parts/django/tests/modeltests/get_latest/models.py b/parts/django/tests/modeltests/get_latest/models.py deleted file mode 100644 index 1eeb299..0000000 --- a/parts/django/tests/modeltests/get_latest/models.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -8. get_latest_by - -Models can have a ``get_latest_by`` attribute, which should be set to the name -of a ``DateField`` or ``DateTimeField``. If ``get_latest_by`` exists, the -model's manager will get a ``latest()`` method, which will return the latest -object in the database according to that field. "Latest" means "having the date -farthest into the future." -""" - -from django.db import models - -class Article(models.Model): - headline = models.CharField(max_length=100) - pub_date = models.DateField() - expire_date = models.DateField() - class Meta: - get_latest_by = 'pub_date' - - def __unicode__(self): - return self.headline - -class Person(models.Model): - name = models.CharField(max_length=30) - birthday = models.DateField() - - # Note that this model doesn't have "get_latest_by" set. - - def __unicode__(self): - return self.name diff --git a/parts/django/tests/modeltests/get_latest/tests.py b/parts/django/tests/modeltests/get_latest/tests.py deleted file mode 100644 index 3c3588b..0000000 --- a/parts/django/tests/modeltests/get_latest/tests.py +++ /dev/null @@ -1,53 +0,0 @@ -from datetime import datetime - -from django.test import TestCase - -from models import Article, Person - - -class LatestTests(TestCase): - def test_latest(self): - # Because no Articles exist yet, latest() raises ArticleDoesNotExist. - self.assertRaises(Article.DoesNotExist, Article.objects.latest) - - a1 = Article.objects.create( - headline="Article 1", pub_date=datetime(2005, 7, 26), - expire_date=datetime(2005, 9, 1) - ) - a2 = Article.objects.create( - headline="Article 2", pub_date=datetime(2005, 7, 27), - expire_date=datetime(2005, 7, 28) - ) - a3 = Article.objects.create( - headline="Article 3", pub_date=datetime(2005, 7, 27), - expire_date=datetime(2005, 8, 27) - ) - a4 = Article.objects.create( - headline="Article 4", pub_date=datetime(2005, 7, 28), - expire_date=datetime(2005, 7, 30) - ) - - # Get the latest Article. - self.assertEqual(Article.objects.latest(), a4) - # Get the latest Article that matches certain filters. - self.assertEqual( - Article.objects.filter(pub_date__lt=datetime(2005, 7, 27)).latest(), - a1 - ) - - # Pass a custom field name to latest() to change the field that's used - # to determine the latest object. - self.assertEqual(Article.objects.latest('expire_date'), a1) - self.assertEqual( - Article.objects.filter(pub_date__gt=datetime(2005, 7, 26)).latest('expire_date'), - a3, - ) - - def test_latest_manual(self): - # You can still use latest() with a model that doesn't have - # "get_latest_by" set -- just pass in the field name manually. - p1 = Person.objects.create(name="Ralph", birthday=datetime(1950, 1, 1)) - p2 = Person.objects.create(name="Stephanie", birthday=datetime(1960, 2, 3)) - self.assertRaises(AssertionError, Person.objects.latest) - - self.assertEqual(Person.objects.latest("birthday"), p2) |