summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul McMillan <Paul@McMillan.ws>2010-08-24 01:03:51 +0000
committerPaul McMillan <Paul@McMillan.ws>2010-08-24 01:03:51 +0000
commitfe09017f70f2687f972b8a4358247fd4be8090c1 (patch)
treee994f3ab96a37d6e75b698f24d3223af2bda6aaa
parent6f5899c281ae3259ec9061fd03eebe827cdac4da (diff)
downloaddjango-soc2010/test-refactor.tar.gz
[soc2010/test-refactor] converted custom_managers_regressarchive/soc2010/test-refactorsoc2010/test-refactor
git-svn-id: http://code.djangoproject.com/svn/django/branches/soc2010/test-refactor@13635 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--tests/regressiontests/custom_managers_regress/models.py42
-rw-r--r--tests/regressiontests/custom_managers_regress/tests.py47
2 files changed, 47 insertions, 42 deletions
diff --git a/tests/regressiontests/custom_managers_regress/models.py b/tests/regressiontests/custom_managers_regress/models.py
index 898730ea9a..747972b441 100644
--- a/tests/regressiontests/custom_managers_regress/models.py
+++ b/tests/regressiontests/custom_managers_regress/models.py
@@ -38,45 +38,3 @@ class OneToOneRestrictedModel(models.Model):
def __unicode__(self):
return self.name
-
-__test__ = {"tests": """
-Even though the default manager filters out some records, we must still be able
-to save (particularly, save by updating existing records) those filtered
-instances. This is a regression test for #8990, #9527
->>> related = RelatedModel.objects.create(name="xyzzy")
->>> obj = RestrictedModel.objects.create(name="hidden", related=related)
->>> obj.name = "still hidden"
->>> obj.save()
-
-# If the hidden object wasn't seen during the save process, there would now be
-# two objects in the database.
->>> RestrictedModel.plain_manager.count()
-1
-
-Deleting related objects should also not be distracted by a restricted manager
-on the related object. This is a regression test for #2698.
->>> RestrictedModel.plain_manager.all().delete()
->>> for name, public in (('one', True), ('two', False), ('three', False)):
-... _ = RestrictedModel.objects.create(name=name, is_public=public, related=related)
-
-# Reload the RelatedModel instance, just to avoid any instance artifacts.
->>> obj = RelatedModel.objects.get(name="xyzzy")
->>> obj.delete()
-
-# All of the RestrictedModel instances should have been deleted, since they
-# *all* pointed to the RelatedModel. If the default manager is used, only the
-# public one will be deleted.
->>> RestrictedModel.plain_manager.all()
-[]
-
-# The same test case as the last one, but for one-to-one models, which are
-# implemented slightly different internally, so it's a different code path.
->>> obj = RelatedModel.objects.create(name="xyzzy")
->>> _ = OneToOneRestrictedModel.objects.create(name="foo", is_public=False, related=obj)
->>> obj = RelatedModel.objects.get(name="xyzzy")
->>> obj.delete()
->>> OneToOneRestrictedModel.plain_manager.all()
-[]
-
-"""
-}
diff --git a/tests/regressiontests/custom_managers_regress/tests.py b/tests/regressiontests/custom_managers_regress/tests.py
new file mode 100644
index 0000000000..6dd668a13d
--- /dev/null
+++ b/tests/regressiontests/custom_managers_regress/tests.py
@@ -0,0 +1,47 @@
+from django.test import TestCase
+
+from models import RelatedModel, RestrictedModel, OneToOneRestrictedModel
+
+class CustomManagersRegressTestCase(TestCase):
+ def test_filtered_default_manager(self):
+ """Even though the default manager filters out some records,
+ we must still be able to save (particularly, save by updating
+ existing records) those filtered instances. This is a
+ regression test for #8990, #9527"""
+ related = RelatedModel.objects.create(name="xyzzy")
+ obj = RestrictedModel.objects.create(name="hidden", related=related)
+ obj.name = "still hidden"
+ obj.save()
+
+ # If the hidden object wasn't seen during the save process,
+ # there would now be two objects in the database.
+ self.assertEqual(RestrictedModel.plain_manager.count(), 1)
+
+ def test_delete_related_on_filtered_manager(self):
+ """Deleting related objects should also not be distracted by a
+ restricted manager on the related object. This is a regression
+ test for #2698."""
+ related = RelatedModel.objects.create(name="xyzzy")
+
+ for name, public in (('one', True), ('two', False), ('three', False)):
+ RestrictedModel.objects.create(name=name, is_public=public, related=related)
+
+ obj = RelatedModel.objects.get(name="xyzzy")
+ obj.delete()
+
+ # All of the RestrictedModel instances should have been
+ # deleted, since they *all* pointed to the RelatedModel. If
+ # the default manager is used, only the public one will be
+ # deleted.
+ self.assertEqual(len(RestrictedModel.plain_manager.all()), 0)
+
+ def test_delete_one_to_one_manager(self):
+ # The same test case as the last one, but for one-to-one
+ # models, which are implemented slightly different internally,
+ # so it's a different code path.
+ obj = RelatedModel.objects.create(name="xyzzy")
+ OneToOneRestrictedModel.objects.create(name="foo", is_public=False, related=obj)
+ obj = RelatedModel.objects.get(name="xyzzy")
+ obj.delete()
+ self.assertEqual(len(OneToOneRestrictedModel.plain_manager.all()), 0)
+