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()
예제 #2
0
    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)
예제 #3
0
    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)
 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()
예제 #5
0
 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()
예제 #6
0
 def test_unique_constraint_null(self):
     fixture = AutoFixture(
         UniqueNullFieldModel,
         field_values={
             'name': generators.NoneGenerator()
         }
     )
     self.assertIn(constraints.unique_constraint, fixture.constraints)
     fixture.create_one()
     with self.assertRaises(CreateInstanceError):
         fixture.create_one()
예제 #7
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()
예제 #8
0
 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()
예제 #9
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()
 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()
예제 #11
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)
예제 #12
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)
예제 #13
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!')
예제 #14
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!')
예제 #15
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)
    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)
예제 #17
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)
예제 #18
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)