Fixed #3164 -- Added explicit ordering to basic model test, and revised results to suit the explicit order. Thanks to Matt Boersma for the report.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@4228 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Russell Keith-Magee 2006-12-19 03:38:38 +00:00
parent 3f4d6a2dda
commit 3a54d0cd5b
1 changed files with 9 additions and 6 deletions

View File

@ -10,6 +10,9 @@ class Article(models.Model):
headline = models.CharField(maxlength=100, default='Default headline') headline = models.CharField(maxlength=100, default='Default headline')
pub_date = models.DateTimeField() pub_date = models.DateTimeField()
class Meta:
ordering = ('pub_date','headline')
def __str__(self): def __str__(self):
return self.headline return self.headline
@ -245,7 +248,7 @@ datetime.datetime(2005, 7, 28, 0, 0)
# Slices (without step) are lazy: # Slices (without step) are lazy:
>>> Article.objects.all()[0:5].filter() >>> Article.objects.all()[0:5].filter()
[<Article: Area woman programs in Python>, <Article: Second article>, <Article: Third article>, <Article: Fourth article>, <Article: Article 6>] [<Article: Area woman programs in Python>, <Article: Second article>, <Article: Third article>, <Article: Article 6>, <Article: Default headline>]
# Slicing again works: # Slicing again works:
>>> Article.objects.all()[0:5][0:2] >>> Article.objects.all()[0:5][0:2]
@ -253,17 +256,17 @@ datetime.datetime(2005, 7, 28, 0, 0)
>>> Article.objects.all()[0:5][:2] >>> Article.objects.all()[0:5][:2]
[<Article: Area woman programs in Python>, <Article: Second article>] [<Article: Area woman programs in Python>, <Article: Second article>]
>>> Article.objects.all()[0:5][4:] >>> Article.objects.all()[0:5][4:]
[<Article: Article 6>] [<Article: Default headline>]
>>> Article.objects.all()[0:5][5:] >>> Article.objects.all()[0:5][5:]
[] []
# Some more tests! # Some more tests!
>>> Article.objects.all()[2:][0:2] >>> Article.objects.all()[2:][0:2]
[<Article: Third article>, <Article: Fourth article>] [<Article: Third article>, <Article: Article 6>]
>>> Article.objects.all()[2:][:2] >>> Article.objects.all()[2:][:2]
[<Article: Third article>, <Article: Fourth article>] [<Article: Third article>, <Article: Article 6>]
>>> Article.objects.all()[2:][2:3] >>> Article.objects.all()[2:][2:3]
[<Article: Article 6>] [<Article: Default headline>]
# Note that you can't use 'offset' without 'limit' (on some dbs), so this doesn't work: # Note that you can't use 'offset' without 'limit' (on some dbs), so this doesn't work:
>>> Article.objects.all()[2:] >>> Article.objects.all()[2:]
@ -312,7 +315,7 @@ AttributeError: Manager isn't accessible via Article instances
# Bulk delete test: How many objects before and after the delete? # Bulk delete test: How many objects before and after the delete?
>>> Article.objects.all() >>> Article.objects.all()
[<Article: Area woman programs in Python>, <Article: Second article>, <Article: Third article>, <Article: Fourth article>, <Article: Article 6>, <Article: Default headline>, <Article: Article 7>, <Article: Updated article 8>] [<Article: Area woman programs in Python>, <Article: Second article>, <Article: Third article>, <Article: Article 6>, <Article: Default headline>, <Article: Fourth article>, <Article: Article 7>, <Article: Updated article 8>]
>>> Article.objects.filter(id__lte=4).delete() >>> Article.objects.filter(id__lte=4).delete()
>>> Article.objects.all() >>> Article.objects.all()
[<Article: Article 6>, <Article: Default headline>, <Article: Article 7>, <Article: Updated article 8>] [<Article: Article 6>, <Article: Default headline>, <Article: Article 7>, <Article: Updated article 8>]