summaryrefslogtreecommitdiff
path: root/tests/test_django.py
diff options
context:
space:
mode:
authorRaphaël Barrois <raphael.barrois@polytechnique.org>2015-05-31 10:47:28 +0100
committerRaphaël Barrois <raphael.barrois@polytechnique.org>2015-05-31 10:47:28 +0100
commit0b5270eab393fad20faa7a6a9720af18c97b1773 (patch)
treede32d3300256be1bfc8626361970efa32b133ce5 /tests/test_django.py
parente9851a7d51afffea2a5679934ad6284c0835cfa2 (diff)
downloadfactory-boy-0b5270eab393fad20faa7a6a9720af18c97b1773.tar
factory-boy-0b5270eab393fad20faa7a6a9720af18c97b1773.tar.gz
Properly handle custom Django managers (Closes #201).
The actual behavior of Django with custom managers and inherited abstract models is rather complex, so this had to be adapted to the actual Django source code.
Diffstat (limited to 'tests/test_django.py')
-rw-r--r--tests/test_django.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/tests/test_django.py b/tests/test_django.py
index bde8efe..b8e7ccb 100644
--- a/tests/test_django.py
+++ b/tests/test_django.py
@@ -755,10 +755,21 @@ class PreventSignalsTestCase(unittest.TestCase):
self.assertSignalsReactivated()
-class DjangoCustomManagerTestCase(django_test.TestCase):
+@unittest.skipIf(django is None, "Django not installed.")
+class DjangoCustomManagerTestCase(unittest.TestCase):
def test_extra_args(self):
+ # Our CustomManager will remove the 'arg=' argument.
model = WithCustomManagerFactory(arg='foo')
+ def test_with_manager_on_abstract(self):
+ class ObjFactory(factory.django.DjangoModelFactory):
+ class Meta:
+ model = models.FromAbstractWithCustomManager
+
+ # Our CustomManager will remove the 'arg=' argument,
+ # invalid for the actual model.
+ ObjFactory.create(arg='invalid')
+
if __name__ == '__main__': # pragma: no cover
unittest.main()