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()
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_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()
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()
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()
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()
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()
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()
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)
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)
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!')
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!')
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)
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)
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)