From 2e5046bda818771f474a1514465f71bd62be9dcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Barrois?= Date: Wed, 25 Sep 2013 10:58:12 +0200 Subject: Fix Django sequences with abstract base models. --- tests/test_django.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tests/test_django.py') diff --git a/tests/test_django.py b/tests/test_django.py index b27562c..7cebf8d 100644 --- a/tests/test_django.py +++ b/tests/test_django.py @@ -64,6 +64,8 @@ else: # pragma: no cover models = Fake() models.StandardModel = Fake + models.AbstractBase = Fake + models.ConcreteSon = Fake models.NonIntegerPk = Fake models.WithFile = Fake models.WithImage = Fake @@ -106,6 +108,17 @@ class NonIntegerPkFactory(factory.django.DjangoModelFactory): bar = '' +class AbstractBaseFactory(factory.django.DjangoModelFactory): + FACTORY_FOR = models.AbstractBase + ABSTRACT_FACTORY = True + + foo = factory.Sequence(lambda n: "foo%d" % n) + + +class ConcreteSonFactory(AbstractBaseFactory): + FACTORY_FOR = models.ConcreteSon + + class WithFileFactory(factory.django.DjangoModelFactory): FACTORY_FOR = models.WithFile @@ -223,6 +236,14 @@ class DjangoNonIntegerPkTestCase(django_test.TestCase): self.assertEqual('foo1', nonint2.pk) +@unittest.skipIf(django is None, "Django not installed.") +class DjangoAbstractBaseSequenceTestCase(django_test.TestCase): + def test_auto_sequence(self): + with factory.debug(): + obj = ConcreteSonFactory() + self.assertEqual(1, obj.pk) + + @unittest.skipIf(django is None, "Django not installed.") class DjangoFileFieldTestCase(unittest.TestCase): -- cgit v1.2.3