Loading tests/modeltests/get_object_or_404/models.py +0 −73 Original line number Diff line number Diff line Loading @@ -32,76 +32,3 @@ class Article(models.Model): def __unicode__(self): return self.title __test__ = {'API_TESTS':""" # Create some Authors. >>> a = Author.objects.create(name="Brave Sir Robin") >>> a.save() >>> a2 = Author.objects.create(name="Patsy") >>> a2.save() # No Articles yet, so we should get a Http404 error. >>> get_object_or_404(Article, title="Foo") Traceback (most recent call last): ... Http404: No Article matches the given query. # Create an Article. >>> article = Article.objects.create(title="Run away!") >>> article.authors = [a, a2] >>> article.save() # get_object_or_404 can be passed a Model to query. >>> get_object_or_404(Article, title__contains="Run") <Article: Run away!> # We can also use the Article manager through an Author object. >>> get_object_or_404(a.article_set, title__contains="Run") <Article: Run away!> # No articles containing "Camelot". This should raise a Http404 error. >>> get_object_or_404(a.article_set, title__contains="Camelot") Traceback (most recent call last): ... Http404: No Article matches the given query. # Custom managers can be used too. >>> get_object_or_404(Article.by_a_sir, title="Run away!") <Article: Run away!> # QuerySets can be used too. >>> get_object_or_404(Article.objects.all(), title__contains="Run") <Article: Run away!> # Just as when using a get() lookup, you will get an error if more than one # object is returned. >>> get_object_or_404(Author.objects.all()) Traceback (most recent call last): ... MultipleObjectsReturned: get() returned more than one Author -- it returned ...! Lookup parameters were {} # Using an EmptyQuerySet raises a Http404 error. >>> get_object_or_404(Article.objects.none(), title__contains="Run") Traceback (most recent call last): ... Http404: No Article matches the given query. # get_list_or_404 can be used to get lists of objects >>> get_list_or_404(a.article_set, title__icontains='Run') [<Article: Run away!>] # Http404 is returned if the list is empty. >>> get_list_or_404(a.article_set, title__icontains='Shrubbery') Traceback (most recent call last): ... Http404: No Article matches the given query. # Custom managers can be used too. >>> get_list_or_404(Article.by_a_sir, title__icontains="Run") [<Article: Run away!>] # QuerySets can be used too. >>> get_list_or_404(Article.objects.all(), title__icontains="Run") [<Article: Run away!>] """} tests/modeltests/get_object_or_404/tests.py 0 → 100644 +80 −0 Original line number Diff line number Diff line from django.http import Http404 from django.shortcuts import get_object_or_404, get_list_or_404 from django.test import TestCase from models import Author, Article class GetObjectOr404Tests(TestCase): def test_get_object_or_404(self): a1 = Author.objects.create(name="Brave Sir Robin") a2 = Author.objects.create(name="Patsy") # No Articles yet, so we should get a Http404 error. self.assertRaises(Http404, get_object_or_404, Article, title="Foo") article = Article.objects.create(title="Run away!") article.authors = [a1, a2] # get_object_or_404 can be passed a Model to query. self.assertEqual( get_object_or_404(Article, title__contains="Run"), article ) # We can also use the Article manager through an Author object. self.assertEqual( get_object_or_404(a1.article_set, title__contains="Run"), article ) # No articles containing "Camelot". This should raise a Http404 error. self.assertRaises(Http404, get_object_or_404, a1.article_set, title__contains="Camelot" ) # Custom managers can be used too. self.assertEqual( get_object_or_404(Article.by_a_sir, title="Run away!"), article ) # QuerySets can be used too. self.assertEqual( get_object_or_404(Article.objects.all(), title__contains="Run"), article ) # Just as when using a get() lookup, you will get an error if more than # one object is returned. self.assertRaises(Author.MultipleObjectsReturned, get_object_or_404, Author.objects.all() ) # Using an EmptyQuerySet raises a Http404 error. self.assertRaises(Http404, get_object_or_404, Article.objects.none(), title__contains="Run" ) # get_list_or_404 can be used to get lists of objects self.assertEqual( get_list_or_404(a1.article_set, title__icontains="Run"), [article] ) # Http404 is returned if the list is empty. self.assertRaises(Http404, get_list_or_404, a1.article_set, title__icontains="Shrubbery" ) # Custom managers can be used too. self.assertEqual( get_list_or_404(Article.by_a_sir, title__icontains="Run"), [article] ) # QuerySets can be used too. self.assertEqual( get_list_or_404(Article.objects.all(), title__icontains="Run"), [article] ) Loading
tests/modeltests/get_object_or_404/models.py +0 −73 Original line number Diff line number Diff line Loading @@ -32,76 +32,3 @@ class Article(models.Model): def __unicode__(self): return self.title __test__ = {'API_TESTS':""" # Create some Authors. >>> a = Author.objects.create(name="Brave Sir Robin") >>> a.save() >>> a2 = Author.objects.create(name="Patsy") >>> a2.save() # No Articles yet, so we should get a Http404 error. >>> get_object_or_404(Article, title="Foo") Traceback (most recent call last): ... Http404: No Article matches the given query. # Create an Article. >>> article = Article.objects.create(title="Run away!") >>> article.authors = [a, a2] >>> article.save() # get_object_or_404 can be passed a Model to query. >>> get_object_or_404(Article, title__contains="Run") <Article: Run away!> # We can also use the Article manager through an Author object. >>> get_object_or_404(a.article_set, title__contains="Run") <Article: Run away!> # No articles containing "Camelot". This should raise a Http404 error. >>> get_object_or_404(a.article_set, title__contains="Camelot") Traceback (most recent call last): ... Http404: No Article matches the given query. # Custom managers can be used too. >>> get_object_or_404(Article.by_a_sir, title="Run away!") <Article: Run away!> # QuerySets can be used too. >>> get_object_or_404(Article.objects.all(), title__contains="Run") <Article: Run away!> # Just as when using a get() lookup, you will get an error if more than one # object is returned. >>> get_object_or_404(Author.objects.all()) Traceback (most recent call last): ... MultipleObjectsReturned: get() returned more than one Author -- it returned ...! Lookup parameters were {} # Using an EmptyQuerySet raises a Http404 error. >>> get_object_or_404(Article.objects.none(), title__contains="Run") Traceback (most recent call last): ... Http404: No Article matches the given query. # get_list_or_404 can be used to get lists of objects >>> get_list_or_404(a.article_set, title__icontains='Run') [<Article: Run away!>] # Http404 is returned if the list is empty. >>> get_list_or_404(a.article_set, title__icontains='Shrubbery') Traceback (most recent call last): ... Http404: No Article matches the given query. # Custom managers can be used too. >>> get_list_or_404(Article.by_a_sir, title__icontains="Run") [<Article: Run away!>] # QuerySets can be used too. >>> get_list_or_404(Article.objects.all(), title__icontains="Run") [<Article: Run away!>] """}
tests/modeltests/get_object_or_404/tests.py 0 → 100644 +80 −0 Original line number Diff line number Diff line from django.http import Http404 from django.shortcuts import get_object_or_404, get_list_or_404 from django.test import TestCase from models import Author, Article class GetObjectOr404Tests(TestCase): def test_get_object_or_404(self): a1 = Author.objects.create(name="Brave Sir Robin") a2 = Author.objects.create(name="Patsy") # No Articles yet, so we should get a Http404 error. self.assertRaises(Http404, get_object_or_404, Article, title="Foo") article = Article.objects.create(title="Run away!") article.authors = [a1, a2] # get_object_or_404 can be passed a Model to query. self.assertEqual( get_object_or_404(Article, title__contains="Run"), article ) # We can also use the Article manager through an Author object. self.assertEqual( get_object_or_404(a1.article_set, title__contains="Run"), article ) # No articles containing "Camelot". This should raise a Http404 error. self.assertRaises(Http404, get_object_or_404, a1.article_set, title__contains="Camelot" ) # Custom managers can be used too. self.assertEqual( get_object_or_404(Article.by_a_sir, title="Run away!"), article ) # QuerySets can be used too. self.assertEqual( get_object_or_404(Article.objects.all(), title__contains="Run"), article ) # Just as when using a get() lookup, you will get an error if more than # one object is returned. self.assertRaises(Author.MultipleObjectsReturned, get_object_or_404, Author.objects.all() ) # Using an EmptyQuerySet raises a Http404 error. self.assertRaises(Http404, get_object_or_404, Article.objects.none(), title__contains="Run" ) # get_list_or_404 can be used to get lists of objects self.assertEqual( get_list_or_404(a1.article_set, title__icontains="Run"), [article] ) # Http404 is returned if the list is empty. self.assertRaises(Http404, get_list_or_404, a1.article_set, title__icontains="Shrubbery" ) # Custom managers can be used too. self.assertEqual( get_list_or_404(Article.by_a_sir, title__icontains="Run"), [article] ) # QuerySets can be used too. self.assertEqual( get_list_or_404(Article.objects.all(), title__icontains="Run"), [article] )