コード例 #1
0
    def test_follow_m2m(self):
        related = AutoFixture(SimpleModel).create()[0]
        self.assertEqual(SimpleModel.objects.count(), 1)

        filler = AutoFixture(M2MModel, follow_m2m=(2, 10))
        for obj in filler.create(10):
            self.assertEqual(list(obj.m2m.all()), [related])
コード例 #2
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_generate_only_some_foreignkeys(self):
     filler = AutoFixture(
         RelatedModel,
         generate_fk=('related',))
     for obj in filler.create(100):
         self.assertEqual(obj.related.__class__, BasicModel)
         self.assertEqual(obj.limitedfk, None)
コード例 #3
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_constraints(self):
     filler = AutoFixture(
         BasicModel,
         overwrite_defaults=False)
     for obj in filler.create(100):
         self.assertTrue(len(obj.chars) > 0)
         self.assertEqual(type(obj.chars), unicode)
         self.assertTrue(len(obj.shortchars) <= 2)
         self.assertEqual(type(obj.shortchars), unicode)
         self.assertTrue(type(obj.blankchars), unicode)
         self.assertEqualOr(type(obj.nullchars), unicode, None)
         self.assertEqual(type(obj.slugfield), unicode)
         self.assertEqual(type(obj.defaultint), int)
         self.assertEqual(obj.defaultint, 1)
         self.assertEqual(type(obj.intfield), int)
         self.assertEqual(type(obj.sintfield), int)
         self.assertEqual(type(obj.pintfield), int)
         self.assertEqual(type(obj.psintfield), int)
         self.assertEqual(type(obj.datefield), date)
         self.assertEqual(type(obj.datetimefield), datetime)
         self.assertEqual(type(obj.defaultdatetime), datetime)
         self.assertEqual(obj.defaultdatetime, y2k())
         self.assertEqual(type(obj.decimalfield), Decimal)
         self.assertTrue('@' in obj.emailfield)
         self.assertTrue('.' in obj.emailfield)
         self.assertTrue(' ' not in obj.emailfield)
         self.assertTrue(obj.ipaddressfield.count('.'), 3)
         self.assertTrue(len(obj.ipaddressfield) >= 7)
     self.assertEqual(BasicModel.objects.count(), 100)
コード例 #4
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_generate_foreignkeys(self):
     filler = AutoFixture(
         RelatedModel,
         generate_fk=True)
     for obj in filler.create(100):
         self.assertEqual(obj.related.__class__, BasicModel)
         self.assertEqual(obj.limitedfk.name, 'foo')
コード例 #5
0
 def test_generate_m2m_with_intermediary_model(self):
     filler = AutoFixture(M2MModelThrough, generate_m2m=(1, 5))
     all_m2m = set()
     for obj in filler.create(10):
         self.assertTrue(1 <= obj.m2m.count() <= 5)
         all_m2m.update(obj.m2m.all())
     self.assertEqual(SimpleModel.objects.count(), len(all_m2m))
コード例 #6
0
 def test_generate_only_some_foreignkeys(self):
     filler = AutoFixture(
         RelatedModel,
         generate_fk=('related',))
     for obj in filler.create(100):
         self.assertEqual(obj.related.__class__, BasicModel)
         self.assertEqual(obj.limitedfk, None)
コード例 #7
0
 def test_generate_foreignkeys(self):
     filler = AutoFixture(
         RelatedModel,
         generate_fk=True)
     for obj in filler.create(100):
         self.assertEqual(obj.related.__class__, BasicModel)
         self.assertEqual(obj.limitedfk.name, 'foo')
コード例 #8
0
 def test_constraints(self):
     filler = AutoFixture(BasicModel, overwrite_defaults=False)
     for obj in filler.create(100):
         self.assertTrue(len(obj.chars) > 0)
         self.assertEqual(type(obj.chars), str_)
         self.assertTrue(len(obj.shortchars) <= 2)
         self.assertEqual(type(obj.shortchars), str_)
         self.assertTrue(type(obj.blankchars), str_)
         self.assertEqualOr(type(obj.nullchars), str_, None)
         self.assertEqual(type(obj.slugfield), str_)
         self.assertEqual(type(obj.defaultint), int)
         self.assertEqual(obj.defaultint, 1)
         self.assertEqual(type(obj.intfield), int)
         self.assertEqual(type(obj.sintfield), int)
         self.assertEqual(type(obj.pintfield), int)
         self.assertEqual(type(obj.psintfield), int)
         self.assertEqual(type(obj.datefield), date)
         self.assertEqual(type(obj.datetimefield), datetime)
         self.assertEqual(type(obj.defaultdatetime), datetime)
         self.assertEqual(obj.defaultdatetime, y2k())
         self.assertEqual(type(obj.decimalfield), Decimal)
         self.assertTrue('@' in obj.emailfield)
         self.assertTrue('.' in obj.emailfield)
         self.assertTrue(' ' not in obj.emailfield)
         self.assertTrue(obj.ipaddressfield.count('.'), 3)
         self.assertTrue(len(obj.ipaddressfield) >= 7)
     self.assertEqual(BasicModel.objects.count(), 100)
コード例 #9
0
def create(model, count, *args, **kwargs):
    '''
    Create *count* instances of *model* using the either an appropiate
    autofixture that was :ref:`registry <registered>` or fall back to the
    default:class:`AutoFixture` class. *model* can be a model class or its
    string representation (e.g. ``"app.ModelClass"``).

    All positional and keyword arguments are passed to the autofixture
    constructor. It is demonstrated in the example below which will create ten
    superusers::

        import autofixture
        admins = autofixture.create('auth.User', 10, field_values={'is_superuser': True})

    .. note:: See :ref:`AutoFixture` for more information.

    :func:`create` will return a list of the created objects.
    '''
    from django.db import models
    if isinstance(model, string_types):
        model = models.get_model(*model.split('.', 1))
    if model in REGISTRY:
        autofixture = REGISTRY[model](model, *args, **kwargs)
    else:
        autofixture = AutoFixture(model, *args, **kwargs)
    return autofixture.create(count)
コード例 #10
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_unique_together(self):
     filler = AutoFixture(UniqueTogetherTestModel)
     count1 = len(filler.model._meta.
         get_field_by_name('choice1')[0].choices)
     count2 = len(filler.model._meta.
         get_field_by_name('choice2')[0].choices)
     for obj in filler.create(count1 * count2):
         pass
コード例 #11
0
 def test_deep_generate_foreignkeys(self):
     filler = AutoFixture(
         DeepLinkModel2,
         generate_fk=True)
     for obj in filler.create(10):
         self.assertEqual(obj.related.__class__, DeepLinkModel1)
         self.assertEqual(obj.related.related.__class__, SimpleModel)
         self.assertEqual(obj.related.related2.__class__, SimpleModel)
コード例 #12
0
ファイル: base.py プロジェクト: aschriner/django-autofixture
 def test_field_values_overwrite_defaults(self):
     fixture = AutoFixture(
         BasicModel,
         field_values={
             'defaultint': 42,
         })
     obj = fixture.create(1)[0]
     self.assertEqual(obj.defaultint, 42)
コード例 #13
0
 def test_deep_generate_foreignkeys2(self):
     filler = AutoFixture(DeepLinkModel2,
                          follow_fk=False,
                          generate_fk=('related', 'related__related'))
     for obj in filler.create(10):
         self.assertEqual(obj.related.__class__, DeepLinkModel1)
         self.assertEqual(obj.related.related.__class__, SimpleModel)
         self.assertEqual(obj.related.related2, None)
コード例 #14
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_deep_generate_foreignkeys(self):
     filler = AutoFixture(
         DeepLinkModel2,
         generate_fk=True)
     for obj in filler.create(10):
         self.assertEqual(obj.related.__class__, DeepLinkModel1)
         self.assertEqual(obj.related.related.__class__, SimpleModel)
         self.assertEqual(obj.related.related2.__class__, SimpleModel)
コード例 #15
0
 def test_unique_together(self):
     filler = AutoFixture(UniqueTogetherTestModel)
     count1 = len(
         filler.model._meta.get_field_by_name('choice1')[0].choices)
     count2 = len(
         filler.model._meta.get_field_by_name('choice2')[0].choices)
     for obj in filler.create(count1 * count2):
         pass
コード例 #16
0
 def test_field_values_overwrite_defaults(self):
     fixture = AutoFixture(
         BasicModel,
         field_values={
             'defaultint': 42,
         })
     obj = fixture.create(1)[0]
     self.assertEqual(obj.defaultint, 42)
コード例 #17
0
 def test_generate_fk_to_self(self):
     ''' When a model with a reference to itself is encountered, If NULL is allowed
         don't generate a new instance of itself as a foreign key, so as not to reach
         pythons recursion limit
     '''
     filler = AutoFixture(SelfReferencingModel, generate_fk=True)
     model = filler.create_one()
     self.assertEqual(model.parent_self, None)
     self.assertEqual(SelfReferencingModel.objects.count(), 1)
コード例 #18
0
ファイル: test_base.py プロジェクト: qtdzz/django-autofixture
    def test_follow_fk_for_o2o_primary_key(self):
        # OneToOneField on primary key should follow if it is not table inheritance
        filler = AutoFixture(O2OPrimaryKeyModel, follow_fk=True)

        simple = SimpleModel.objects.create()
        obj = filler.create()[0]
        self.assertEqual(obj.o2o, simple)

        self.assertRaises(CreateInstanceError, filler.create)
コード例 #19
0
ファイル: base.py プロジェクト: aschriner/django-autofixture
    def test_generate_fk_to_self_follow(self):
        filler = AutoFixture(SelfReferencingModel, follow_fk=True)
        first = filler.create_one()
        self.assertEqual(SelfReferencingModel.objects.count(), 1)

        filler = AutoFixture(SelfReferencingModel, follow_fk=True)
        second = filler.create_one()
        self.assertEqual(SelfReferencingModel.objects.count(), 2)
        self.assertEqual(second.parent_self, first)
コード例 #20
0
ファイル: test_base.py プロジェクト: qtdzz/django-autofixture
    def test_generate_fk_for_o2o_primary_key(self):
        # OneToOneField on primary key should follow if it is not table inheritance
        filler = AutoFixture(O2OPrimaryKeyModel, generate_fk=True)

        all_o2o = set()
        for obj in filler.create(10):
            all_o2o.add(obj.o2o)

        self.assertEqual(set(SimpleModel.objects.all()), all_o2o)
コード例 #21
0
    def test_follow_fk_for_o2o_primary_key(self):
        # OneToOneField on primary key should follow if it is not table inheritance
        filler = AutoFixture(O2OPrimaryKeyModel, follow_fk=True)

        simple = SimpleModel.objects.create()
        obj = filler.create()[0]
        self.assertEqual(obj.o2o, simple)

        self.assertRaises(CreateInstanceError, filler.create)
コード例 #22
0
    def test_follow_fk_for_o2o(self):
        # OneToOneField is the same as a ForeignKey with unique=True
        filler = AutoFixture(O2OModel, follow_fk=True)

        simple = SimpleModel.objects.create()
        obj = filler.create()[0]
        self.assertEqual(obj.o2o, simple)

        self.assertRaises(CreateInstanceError, filler.create)
コード例 #23
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_deep_generate_foreignkeys2(self):
     filler = AutoFixture(
         DeepLinkModel2,
         follow_fk=False,
         generate_fk=('related', 'related__related'))
     for obj in filler.create(10):
         self.assertEqual(obj.related.__class__, DeepLinkModel1)
         self.assertEqual(obj.related.related.__class__, SimpleModel)
         self.assertEqual(obj.related.related2, None)
コード例 #24
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_generate_m2m_with_intermediary_model(self):
     filler = AutoFixture(
         M2MModelThrough,
         generate_m2m=(1, 5))
     all_m2m = set()
     for obj in filler.create(10):
         self.assertTrue(1 <= obj.m2m.count() <= 5)
         all_m2m.update(obj.m2m.all())
     self.assertEqual(SimpleModel.objects.count(), len(all_m2m))
コード例 #25
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
    def test_follow_m2m(self):
        related = AutoFixture(SimpleModel).create()[0]
        self.assertEqual(SimpleModel.objects.count(), 1)

        filler = AutoFixture(
            M2MModel,
            follow_m2m=(2, 10))
        for obj in filler.create(10):
            self.assertEqual(list(obj.m2m.all()), [related])
コード例 #26
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
    def test_follow_fk_for_o2o(self):
        # OneToOneField is the same as a ForeignKey with unique=True
        filler = AutoFixture(O2OModel, follow_fk=True)

        simple = SimpleModel.objects.create()
        obj = filler.create()[0]
        self.assertEqual(obj.o2o, simple)

        self.assertRaises(CreateInstanceError, filler.create)
コード例 #27
0
    def test_generate_fk_for_o2o_primary_key(self):
        # OneToOneField on primary key should follow if it is not table inheritance
        filler = AutoFixture(O2OPrimaryKeyModel, generate_fk=True)

        all_o2o = set()
        for obj in filler.create(10):
            all_o2o.add(obj.o2o)

        self.assertEqual(set(SimpleModel.objects.all()), all_o2o)
コード例 #28
0
    def test_generate_fk_for_o2o(self):
        # OneToOneField is the same as a ForeignKey with unique=True
        filler = AutoFixture(O2OModel, generate_fk=True)

        all_o2o = set()
        for obj in filler.create(10):
            all_o2o.add(obj.o2o)

        self.assertEqual(set(SimpleModel.objects.all()), all_o2o)
コード例 #29
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
    def test_generate_fk_for_o2o(self):
        # OneToOneField is the same as a ForeignKey with unique=True
        filler = AutoFixture(O2OModel, generate_fk=True)

        all_o2o = set()
        for obj in filler.create(10):
            all_o2o.add(obj.o2o)

        self.assertEqual(set(SimpleModel.objects.all()), all_o2o)
コード例 #30
0
ファイル: base.py プロジェクト: aschriner/django-autofixture
 def test_generate_fk_to_self(self):
     ''' When a model with a reference to itself is encountered, If NULL is allowed
         don't generate a new instance of itself as a foreign key, so as not to reach
         pythons recursion limit
     '''
     filler = AutoFixture(SelfReferencingModel, generate_fk=True)
     model = filler.create_one()
     self.assertEqual(model.parent_self, None)
     self.assertEqual(SelfReferencingModel.objects.count(), 1)
コード例 #31
0
 def test_unique_together_constraint_nulls(self):
     fixture = AutoFixture(UniqueTogetherNullFieldModel,
                           field_values={
                               'field_one': generators.NoneGenerator(),
                               'field_two': generators.NoneGenerator()
                           })
     self.assertIn(constraints.unique_together_constraint,
                   fixture.constraints)
     fixture.create_one()
     fixture.create_one()
コード例 #32
0
    def test_registered_fixture_is_used_for_fk(self):
        class BasicModelFixture(AutoFixture):
            field_values = {'chars': 'Hello World!'}

        autofixture.register(BasicModel, BasicModelFixture)

        fixture = AutoFixture(RelatedModel, generate_fk=['related'])
        obj = fixture.create_one()
        self.assertTrue(obj)
        self.assertEqual(obj.related.chars, 'Hello World!')
コード例 #33
0
    def test_follow_m2m(self):
        AutoFixture(SimpleModel).create(10)
        AutoFixture(OtherSimpleModel).create(10)

        self.call('autofixture_tests.M2MModel:25',
                  follow_m2m='m2m:3:3,secondm2m:0:10')

        for obj in M2MModel.objects.all():
            self.assertEqual(obj.m2m.count(), 3)
            self.assertTrue(0 <= obj.secondm2m.count() <= 10)
コード例 #34
0
ファイル: test_base.py プロジェクト: Czejen/django-populatedb
 def test_unique_constraint_null(self):
     fixture = AutoFixture(
         UniqueNullFieldModel,
         field_values={
             'name': generators.NoneGenerator()
         }
     )
     self.assertIn(constraints.unique_constraint, fixture.constraints)
     fixture.create_one()
     fixture.create_one()
コード例 #35
0
ファイル: base.py プロジェクト: aschriner/django-autofixture
    def test_registered_fixture_is_used_for_fk(self):
        class BasicModelFixture(AutoFixture):
            field_values={'chars': 'Hello World!'}

        autofixture.register(BasicModel, BasicModelFixture)

        fixture = AutoFixture(RelatedModel, generate_fk=['related'])
        obj = fixture.create_one()
        self.assertTrue(obj)
        self.assertEqual(obj.related.chars, 'Hello World!')
コード例 #36
0
 def test_generate_m2m(self):
     filler = AutoFixture(M2MModel, none_p=0, generate_m2m=(1, 5))
     all_m2m = set()
     all_secondm2m = set()
     for obj in filler.create(10):
         self.assertTrue(1 <= obj.m2m.count() <= 5)
         self.assertTrue(1 <= obj.secondm2m.count() <= 5)
         all_m2m.update(obj.m2m.all())
         all_secondm2m.update(obj.secondm2m.all())
     self.assertEqual(SimpleModel.objects.count(), len(all_m2m))
     self.assertEqual(OtherSimpleModel.objects.count(), len(all_secondm2m))
コード例 #37
0
    def test_follow_only_some_foreignkeys(self):
        related = AutoFixture(BasicModel).create()[0]
        self.assertEqual(BasicModel.objects.count(), 1)

        simple = SimpleModel.objects.create(name='foo')
        simple2 = SimpleModel.objects.create(name='bar')

        filler = AutoFixture(RelatedModel, follow_fk=('related', ))
        for obj in filler.create(100):
            self.assertEqual(obj.related, related)
            self.assertEqual(obj.limitedfk, None)
コード例 #38
0
    def test_follow_m2m(self):
        AutoFixture(SimpleModel).create(10)
        AutoFixture(OtherSimpleModel).create(10)

        models = ('autofixture_test.M2MModel:25', )
        self.options['follow_m2m'] = 'm2m:3:3,secondm2m:0:10'
        self.command.handle(*models, **self.options)

        for obj in M2MModel.objects.all():
            self.assertEqual(obj.m2m.count(), 3)
            self.assertTrue(0 <= obj.secondm2m.count() <= 10)
コード例 #39
0
    def test_generate_m2m_with_custom_autofixture(self):
        filler = AutoFixture(RelationWithCustomAutofixtureModel,
                             generate_fk=True,
                             generate_m2m=(1, 1))
        instance = filler.create_one()
        self.assertEqual(instance.users.count(), 1)
        user = instance.users.get()

        # Detect that the UserFixture was used.
        self.assertTrue(' ' not in user.username)
        self.assertTrue(' ' not in user.first_name)
        self.assertTrue(' ' not in user.last_name)
コード例 #40
0
ファイル: test_base.py プロジェクト: qtdzz/django-autofixture
    def test_generate_m2m_with_custom_autofixture(self):
        filler = AutoFixture(RelationWithCustomAutofixtureModel,
            generate_fk=True,
            generate_m2m=(1, 1))
        instance = filler.create_one()
        self.assertEqual(instance.users.count(), 1)
        user = instance.users.get()

        # Detect that the UserFixture was used.
        self.assertTrue(' ' not in user.username)
        self.assertTrue(' ' not in user.first_name)
        self.assertTrue(' ' not in user.last_name)
コード例 #41
0
    def test_follow_only_some_m2m(self):
        related = AutoFixture(SimpleModel).create()[0]
        self.assertEqual(SimpleModel.objects.count(), 1)
        other_related = AutoFixture(OtherSimpleModel).create()[0]
        self.assertEqual(OtherSimpleModel.objects.count(), 1)

        filler = AutoFixture(M2MModel, none_p=0, follow_m2m={
            'm2m': (2, 10),
        })
        for obj in filler.create(10):
            self.assertEqual(list(obj.m2m.all()), [related])
            self.assertEqual(list(obj.secondm2m.all()), [])
コード例 #42
0
ファイル: test_base.py プロジェクト: qtdzz/django-autofixture
 def test_unique_together_constraint_nulls(self):
     fixture = AutoFixture(
         UniqueTogetherNullFieldModel,
         field_values={
             'field_one': generators.NoneGenerator(),
             'field_two': generators.NoneGenerator()
         }
     )
     self.assertIn(constraints.unique_together_constraint,
                   fixture.constraints)
     fixture.create_one()
     fixture.create_one()
コード例 #43
0
ファイル: test_base.py プロジェクト: qtdzz/django-autofixture
 def test_unique_constraint_null(self):
     fixture = AutoFixture(
         UniqueNullFieldModel,
         field_values={
             'name': generators.NoneGenerator()
         }
     )
     self.assertIn(constraints.unique_constraint, fixture.constraints)
     fixture.create_one()
     # Creating another entry with a null value should not raise an
     # exception as a unique column can contain multiple null values
     fixture.create_one()
コード例 #44
0
ファイル: test_unit.py プロジェクト: the-deep/server
    def initialize_data_and_basic_test(self, csv_data):
        file = NamedTemporaryFile('w', dir=settings.MEDIA_ROOT, delete=False)

        self.files.append(file.name)

        for x in csv_data.split('\n'):
            file.write('{}\n'.format(x))
        file.close()
        # create a book
        csvfile = AutoFixture(
            File,
            field_values={
                'file': file.name
            }
        ).create_one()
        book = AutoFixture(
            Book,
            field_values={
                'file': csvfile,
                'project': self.project,
            }
        ).create_one()
        csv.extract(book)
        assert Field.objects.count() == 5

        fieldnames = {}
        for field in Field.objects.all():
            fieldnames[field.title] = True
            assert field.type == Field.STRING, "Initial type is string"
        assert 'id' in fieldnames, 'id should be a fieldname'
        assert 'age' in fieldnames, 'age should be a fieldname'
        assert 'name' in fieldnames, 'name should be a field name'
        assert 'date' in fieldnames, 'date should be a field name'
        assert 'place' in fieldnames, 'place should be a field name'

        # check structure of data in sheet
        for sheet in book.sheet_set.all():
            fields = sheet.field_set.all()
            size = len(fields[0].data)
            assert all([len(x.data) == size for x in fields]), \
                "All columns should have same size"

            for field in fields:
                v = field.data
                assert isinstance(v, list)
                for x in v:
                    assert 'value' in x
                    assert 'empty' in x
                    assert isinstance(x['empty'], bool)
                    assert 'invalid' in x
                    assert isinstance(x['invalid'], bool)
        return book
コード例 #45
0
    def test_registered_fixture_is_used_for_m2m(self):
        class SimpleModelFixture(AutoFixture):
            field_values = {'name': 'Jon Doe'}

        autofixture.register(SimpleModel, SimpleModelFixture)

        fixture = AutoFixture(M2MModel, generate_m2m={'m2m': (5, 5)})
        obj = fixture.create_one()
        self.assertTrue(obj)

        self.assertEqual(obj.m2m.count(), 5)
        self.assertEqual(list(obj.m2m.values_list('name', flat=True)),
                         ['Jon Doe'] * 5)
コード例 #46
0
ファイル: test_base.py プロジェクト: qtdzz/django-autofixture
 def test_unique_together_constraint_one_field_null(self):
     fixture = AutoFixture(
         UniqueTogetherNullFieldModel,
         field_values={
             'field_one': generators.NoneGenerator(),
             'field_two': generators.StaticGenerator('test_string')
         }
     )
     self.assertIn(constraints.unique_together_constraint,
                   fixture.constraints)
     with self.assertRaises(CreateInstanceError):
         fixture.create_one()
         fixture.create_one()
コード例 #47
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
    def test_follow_only_some_foreignkeys(self):
        related = AutoFixture(BasicModel).create()[0]
        self.assertEqual(BasicModel.objects.count(), 1)

        simple = SimpleModel.objects.create(name='foo')
        simple2 = SimpleModel.objects.create(name='bar')

        filler = AutoFixture(
            RelatedModel,
            follow_fk=('related',))
        for obj in filler.create(100):
            self.assertEqual(obj.related, related)
            self.assertEqual(obj.limitedfk, None)
コード例 #48
0
 def test_unique_together_constraint_one_field_null(self):
     fixture = AutoFixture(UniqueTogetherNullFieldModel,
                           field_values={
                               'field_one':
                               generators.NoneGenerator(),
                               'field_two':
                               generators.StaticGenerator('test_string')
                           })
     self.assertIn(constraints.unique_together_constraint,
                   fixture.constraints)
     with self.assertRaises(CreateInstanceError):
         fixture.create_one()
         fixture.create_one()
コード例 #49
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_generate_m2m(self):
     filler = AutoFixture(
         M2MModel,
         none_p=0,
         generate_m2m=(1, 5))
     all_m2m = set()
     all_secondm2m = set()
     for obj in filler.create(10):
         self.assertTrue(1 <= obj.m2m.count() <= 5)
         self.assertTrue(1 <= obj.secondm2m.count() <= 5)
         all_m2m.update(obj.m2m.all())
         all_secondm2m.update(obj.secondm2m.all())
     self.assertEqual(SimpleModel.objects.count(), len(all_m2m))
     self.assertEqual(OtherSimpleModel.objects.count(), len(all_secondm2m))
コード例 #50
0
 def test_field_values(self):
     int_value = 1
     char_values = (u'a', u'b')
     filler = AutoFixture(
         BasicModel,
         field_values={
             'intfield': 1,
             'chars': generators.ChoicesGenerator(values=char_values),
             'shortchars': lambda: u'ab',
         })
     for obj in filler.create(100):
         self.assertEqual(obj.intfield, int_value)
         self.assertTrue(obj.chars in char_values)
         self.assertEqual(obj.shortchars, u'ab')
コード例 #51
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_field_values(self):
     int_value = 1
     char_values = (u'a', u'b')
     filler = AutoFixture(
         BasicModel,
         field_values={
             'intfield': 1,
             'chars': generators.ChoicesGenerator(values=char_values),
             'shortchars': lambda: u'ab',
         })
     for obj in filler.create(100):
         self.assertEqual(obj.intfield, int_value)
         self.assertTrue(obj.chars in char_values)
         self.assertEqual(obj.shortchars, u'ab')
コード例 #52
0
ファイル: base.py プロジェクト: aschriner/django-autofixture
    def test_registered_fixture_is_used_for_m2m(self):
        class SimpleModelFixture(AutoFixture):
            field_values={'name': 'Jon Doe'}

        autofixture.register(SimpleModel, SimpleModelFixture)

        fixture = AutoFixture(M2MModel, generate_m2m={'m2m': (5,5)})
        obj = fixture.create_one()
        self.assertTrue(obj)

        self.assertEqual(obj.m2m.count(), 5)
        self.assertEqual(
            list(obj.m2m.values_list('name', flat=True)),
            ['Jon Doe'] * 5)
コード例 #53
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
    def test_follow_only_some_m2m(self):
        related = AutoFixture(SimpleModel).create()[0]
        self.assertEqual(SimpleModel.objects.count(), 1)
        other_related = AutoFixture(OtherSimpleModel).create()[0]
        self.assertEqual(OtherSimpleModel.objects.count(), 1)

        filler = AutoFixture(
            M2MModel,
            none_p=0,
            follow_m2m={
                'm2m': (2, 10),
            })
        for obj in filler.create(10):
            self.assertEqual(list(obj.m2m.all()), [related])
            self.assertEqual(list(obj.secondm2m.all()), [])
コード例 #54
0
    def test_instance_selector(self):
        AutoFixture(SimpleModel).create(10)

        result = generators.InstanceSelector(SimpleModel).generate()
        self.assertEqual(result.__class__, SimpleModel)

        for i in range(10):
            result = generators.InstanceSelector(SimpleModel,
                                                 max_count=10).generate()
            self.assertTrue(0 <= len(result) <= 10)
            for obj in result:
                self.assertEqual(obj.__class__, SimpleModel)
        for i in range(10):
            result = generators.InstanceSelector(SimpleModel,
                                                 min_count=5,
                                                 max_count=10).generate()
            self.assertTrue(5 <= len(result) <= 10)
            for obj in result:
                self.assertEqual(obj.__class__, SimpleModel)
        for i in range(10):
            result = generators.InstanceSelector(SimpleModel,
                                                 min_count=20,
                                                 max_count=100).generate()
            # cannot return more instances than available
            self.assertEqual(len(result), 10)
            for obj in result:
                self.assertEqual(obj.__class__, SimpleModel)

        # works also with queryset as argument
        result = generators.InstanceSelector(
            SimpleModel.objects.all()).generate()
        self.assertEqual(result.__class__, SimpleModel)
コード例 #55
0
    def test_no_follow_m2m(self):
        AutoFixture(SimpleModel).create(1)

        models = ('autofixture_test.NullableFKModel:1', )
        self.options['no_follow_m2m'] = True
        self.command.handle(*models, **self.options)
        obj = NullableFKModel.objects.get()
        self.assertEqual(obj.m2m.count(), 0)
コード例 #56
0
 def test_process_gr(self):
     """Tests the bug when GenericRelation field being processed
     by autofixture.base.AutoFixtureBase#process_m2m
     and through table appears as None.
     """
     count = 10
     fixture = AutoFixture(GRModel)
     self.assertNotRaises(AttributeError, fixture.create,
         msg="'NoneType' object has no attribute '_meta'", args=[count])
     self.assertEqual(GRModel.objects.count(), count)
コード例 #57
0
ファイル: base.py プロジェクト: aschriner/django-autofixture
 def test_inheritence_unique_together_model(self):
     filler = AutoFixture(InheritUniqueTogetherModel)
     filler.create(10)
     self.assertEqual(InheritUniqueTogetherModel.objects.count(), 10)
コード例 #58
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_unique_field(self):
     filler = AutoFixture(UniqueTestModel)
     count = len(filler.model._meta.
         get_field_by_name('choice1')[0].choices)
     for obj in filler.create(count):
         pass
コード例 #59
0
ファイル: tests.py プロジェクト: dominno/django-autofixture
 def test_create(self):
     filler = AutoFixture(BasicModel)
     filler.create(10)
     self.assertEqual(BasicModel.objects.count(), 10)