summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul McMillan <Paul@McMillan.ws>2010-06-11 01:17:52 +0000
committerPaul McMillan <Paul@McMillan.ws>2010-06-11 01:17:52 +0000
commitcc4703d5aeaf8059feddfe699ff8e58074a36e70 (patch)
tree8c2183a7eae72e983e2640b4344c984bcc7399ee
parent4ffeb59e86940089037ec90db7ed1aec523c4414 (diff)
downloaddjango-cc4703d5aeaf8059feddfe699ff8e58074a36e70.tar.gz
[soc2010/test-refactor] Converted custom_managers doctests to unittests.
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/test-refactor@13349 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--tests/modeltests/custom_managers/fixtures/custom_managers_testdata.json48
-rw-r--r--tests/modeltests/custom_managers/models.py48
-rw-r--r--tests/modeltests/custom_managers/tests.py47
3 files changed, 95 insertions, 48 deletions
diff --git a/tests/modeltests/custom_managers/fixtures/custom_managers_testdata.json b/tests/modeltests/custom_managers/fixtures/custom_managers_testdata.json
new file mode 100644
index 0000000000..bb0f7527e8
--- /dev/null
+++ b/tests/modeltests/custom_managers/fixtures/custom_managers_testdata.json
@@ -0,0 +1,48 @@
+[
+ {
+ "pk": 1,
+ "model": "custom_managers.person",
+ "fields": {
+ "fun": true,
+ "first_name": "Bugs",
+ "last_name": "Bunny"
+ }
+ },
+ {
+ "pk": 2,
+ "model": "custom_managers.person",
+ "fields": {
+ "fun": false,
+ "first_name": "Droopy",
+ "last_name": "Dog"
+ }
+ },
+ {
+ "pk": 1,
+ "model": "custom_managers.book",
+ "fields": {
+ "authors": [],
+ "is_published": true,
+ "author": "Rodney Dangerfield",
+ "title": "How to program"
+ }
+ },
+ {
+ "pk": 1,
+ "model": "custom_managers.car",
+ "fields": {
+ "mileage": 21,
+ "top_speed": 180,
+ "name": "Corvette"
+ }
+ },
+ {
+ "pk": 2,
+ "model": "custom_managers.car",
+ "fields": {
+ "mileage": 31,
+ "top_speed": 100,
+ "name": "Neon"
+ }
+ }
+] \ No newline at end of file
diff --git a/tests/modeltests/custom_managers/models.py b/tests/modeltests/custom_managers/models.py
index 40bf77e273..1052552bb3 100644
--- a/tests/modeltests/custom_managers/models.py
+++ b/tests/modeltests/custom_managers/models.py
@@ -57,51 +57,3 @@ class Car(models.Model):
def __unicode__(self):
return self.name
-
-__test__ = {'API_TESTS':"""
->>> p1 = Person(first_name='Bugs', last_name='Bunny', fun=True)
->>> p1.save()
->>> p2 = Person(first_name='Droopy', last_name='Dog', fun=False)
->>> p2.save()
->>> Person.objects.get_fun_people()
-[<Person: Bugs Bunny>]
-
-# The RelatedManager used on the 'books' descriptor extends the default manager
->>> from modeltests.custom_managers.models import PublishedBookManager
->>> isinstance(p2.books, PublishedBookManager)
-True
-
->>> b1 = Book(title='How to program', author='Rodney Dangerfield', is_published=True)
->>> b1.save()
->>> b2 = Book(title='How to be smart', author='Albert Einstein', is_published=False)
->>> b2.save()
-
-# The default manager, "objects", doesn't exist,
-# because a custom one was provided.
->>> Book.objects
-Traceback (most recent call last):
- ...
-AttributeError: type object 'Book' has no attribute 'objects'
-
-# The RelatedManager used on the 'authors' descriptor extends the default manager
->>> from modeltests.custom_managers.models import PersonManager
->>> isinstance(b2.authors, PersonManager)
-True
-
->>> Book.published_objects.all()
-[<Book: How to program>]
-
->>> c1 = Car(name='Corvette', mileage=21, top_speed=180)
->>> c1.save()
->>> c2 = Car(name='Neon', mileage=31, top_speed=100)
->>> c2.save()
->>> Car.cars.order_by('name')
-[<Car: Corvette>, <Car: Neon>]
->>> Car.fast_cars.all()
-[<Car: Corvette>]
-
-# Each model class gets a "_default_manager" attribute, which is a reference
-# to the first manager defined in the class. In this case, it's "cars".
->>> Car._default_manager.order_by('name')
-[<Car: Corvette>, <Car: Neon>]
-"""}
diff --git a/tests/modeltests/custom_managers/tests.py b/tests/modeltests/custom_managers/tests.py
new file mode 100644
index 0000000000..c17058cd73
--- /dev/null
+++ b/tests/modeltests/custom_managers/tests.py
@@ -0,0 +1,47 @@
+from django.test import TestCase
+
+from models import PersonManager, PublishedBookManager
+from models import Person, Book, Car
+
+class CustomManagersTestCase(TestCase):
+ fixtures = ['custom_managers_testdata.json']
+
+ def test_related_manager(self):
+ self.assertQuerysetEqual(Person.objects.get_fun_people(),
+ ['<Person: Bugs Bunny>'])
+
+
+ # The RelatedManager used on the 'books' descriptor extends
+ # the default manager
+ p2 = Person.objects.get(first_name='Droopy')
+ self.assertTrue(isinstance(p2.books, PublishedBookManager))
+
+
+ # The default manager, "objects", doesn't exist, because a
+ # custom one was provided.
+ self.assertRaises(AttributeError,
+ getattr,
+ Book, 'objects')
+
+
+ # The RelatedManager used on the 'authors' descriptor extends
+ # the default manager
+ b2 = Book(title='How to be smart',
+ author='Albert Einstein',
+ is_published=False)
+ b2.save()
+
+ self.assertTrue(isinstance(b2.authors, PersonManager))
+ self.assertQuerysetEqual(Book.published_objects.all(),
+ ['<Book: How to program>'])
+
+ self.assertQuerysetEqual(Car.cars.order_by('name'),
+ ['<Car: Corvette>', '<Car: Neon>'])
+ self.assertQuerysetEqual(Car.fast_cars.all(),
+ ['<Car: Corvette>'])
+
+ # Each model class gets a "_default_manager" attribute, which
+ # is a reference to the first manager defined in the class. In
+ # this case, it's "cars".
+ self.assertQuerysetEqual(Car._default_manager.order_by('name'),
+ ['<Car: Corvette>', '<Car: Neon>'])