4 from factory.django import DjangoModelFactory
5 from factory.fuzzy import FuzzyChoice, FuzzyText, FuzzyInteger
8 class AffiliationFactory(DjangoModelFactory):
10 model = models.Affiliation
12 name = FuzzyText(prefix='affiliation ')
13 contact = 'contact name'
14 email = factory.LazyAttribute(lambda obj: '%s@example.com' % obj.name)
16 @factory.post_generation
17 def users(self, create, extracted, **kwargs):
22 for user in extracted:
25 class AntibodyFactory(DjangoModelFactory):
27 model = models.Antibody
28 django_get_or_create = ('antigene',)
31 nickname = 'short name'
33 antibodies = 'antibody'
35 biology = 'some biological description'
39 class CelllineFactory(DjangoModelFactory):
41 model = models.Cellline
43 cellline_name = 'Test'
48 class ConditionFactory(DjangoModelFactory):
50 model = models.Condition
52 condition_name = 'condition name'
56 class ExperimentTypeFactory(DjangoModelFactory):
58 model = models.ExperimentType
59 django_get_or_create = ('name',)
61 name = 'experiment type name'
63 class HTSUserFactory(DjangoModelFactory):
65 model = models.HTSUser
66 django_get_or_create = ('username',)
69 email = factory.LazyAttribute(lambda obj: '%s@example.org' % obj.username)
75 class SpeciesFactory(DjangoModelFactory):
77 model = models.Species
79 scientific_name = 'test sapiens'
80 common_name = 'test human'
82 class LibraryTypeFactory(DjangoModelFactory):
84 model = models.LibraryType
86 is_paired_end = FuzzyChoice([True, False])
87 can_multiplex = FuzzyChoice([True, False])
88 name = FuzzyText(prefix='library type ')
90 class MultiplexIndexFactory(DjangoModelFactory):
92 model = models.MultiplexIndex
94 adapter_type = factory.SubFactory(LibraryTypeFactory)
95 multiplex_id = factory.LazyAttribute(lambda o: 'N{}'.format(o.sequence))
96 sequence = FuzzyText(length=5, chars='AGCT')
98 class LibraryFactory(DjangoModelFactory):
100 model = models.Library
102 id = factory.Sequence(lambda n: str(10000 + n))
103 library_name = factory.LazyAttribute(lambda o: 'Library %s' % (o.id))
104 library_species = factory.SubFactory(SpeciesFactory)
105 experiment_type = factory.SubFactory(ExperimentTypeFactory)
106 creation_date = datetime.datetime.now()
108 made_for = 'scientist unit 2007'
109 made_by = 'microfluidics bot 7321'
110 stopping_point = '2A'
111 undiluted_concentration = '5.01'
113 library_type = factory.SubFactory(LibraryTypeFactory)