Tweaked the EmailFactory to return an email address not longer than the Email.address field.
- Legacy-Id: 13738
This commit is contained in:
parent
db96292229
commit
0d120fb46a
|
@ -94,14 +94,30 @@ class AliasFactory(factory.DjangoModelFactory):
|
||||||
|
|
||||||
name = factory.Faker('name')
|
name = factory.Faker('name')
|
||||||
|
|
||||||
|
def fake_email_address(n):
|
||||||
|
address_field = [ f for f in Email._meta.fields if f.name == 'address'][0]
|
||||||
|
count = 0
|
||||||
|
while True:
|
||||||
|
address = '%s.%s_%d@%s' % (
|
||||||
|
slugify(unidecode(fake.first_name())),
|
||||||
|
slugify(unidecode(fake.last_name())),
|
||||||
|
n, fake.domain_name()
|
||||||
|
)
|
||||||
|
count += 1
|
||||||
|
if len(address) <= address_field.max_length:
|
||||||
|
break
|
||||||
|
if count >= 10:
|
||||||
|
raise RuntimeError("Failed generating a fake email address to fit in Email.address(max_length=%s)"%address_field.max_lenth)
|
||||||
|
return address
|
||||||
|
|
||||||
class EmailFactory(factory.DjangoModelFactory):
|
class EmailFactory(factory.DjangoModelFactory):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Email
|
model = Email
|
||||||
django_get_or_create = ('address',)
|
django_get_or_create = ('address',)
|
||||||
|
|
||||||
address = factory.Sequence(lambda n:'%s.%s_%d@%s' % ( slugify(unidecode(fake.first_name())),
|
address = factory.Sequence(fake_email_address)
|
||||||
slugify(unidecode(fake.last_name())), n, fake.domain_name()))
|
|
||||||
person = factory.SubFactory(PersonFactory)
|
person = factory.SubFactory(PersonFactory)
|
||||||
|
|
||||||
active = True
|
active = True
|
||||||
primary = False
|
primary = False
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue