Skip to content

Commit b55113c

Browse files
author
Clement Denoix
committed
feat(tests) Use a factory engine for the tests
1 parent cb26f3f commit b55113c

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ pypandoc
55
wheel
66
tox
77
twine
8+
factory_boy

tests/factories.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import factory
2+
3+
from .models import (
4+
Example,
5+
User,
6+
Website
7+
)
8+
9+
10+
class ExampleFactory(factory.django.DjangoModelFactory):
11+
uid = factory.Sequence(lambda n: n)
12+
name = factory.Sequence(lambda n: 'Example name-{}'.format(n))
13+
address = factory.Sequence(lambda n: 'Example address-{}'.format(n))
14+
lat = factory.Faker('latitude')
15+
lng = factory.Faker('longitude')
16+
17+
class Meta:
18+
model = Example
19+
20+
21+
class UserFactory(factory.django.DjangoModelFactory):
22+
name = factory.Sequence(lambda n: 'User name-{}'.format(n))
23+
username = factory.Sequence(lambda n: 'User username-{}'.format(n))
24+
25+
_lat = factory.Faker('latitude')
26+
_lng = factory.Faker('longitude')
27+
28+
class Meta:
29+
model = User
30+
31+
32+
class WebsiteFactory(factory.django.DjangoModelFactory):
33+
name = factory.Sequence(lambda n: 'Website name-{}'.format(n))
34+
url = factory.Faker('url')
35+
36+
class Meta:
37+
model = Website

tox.ini

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ skip_missing_interpreters = True
1212
[testenv]
1313
deps =
1414
six
15+
factory_boy
1516
django17: Django>=1.7,<1.8
1617
django18: Django>=1.8,<1.9
1718
django19: Django>=1.9,<1.10

0 commit comments

Comments
 (0)