1 from __future__ import unicode_literals
6 from factory.django import DjangoModelFactory
7 from factory.fuzzy import FuzzyChoice, FuzzyText, FuzzyInteger
10 class AffiliationFactory(DjangoModelFactory):
12 model = models.Affiliation
14 name = FuzzyText(prefix='affiliation ')
15 contact = 'contact name'
16 email = factory.LazyAttribute(lambda obj: '%s@example.com' % obj.name)
18 @factory.post_generation
19 def users(self, create, extracted, **kwargs):
24 for user in extracted:
27 class AntibodyFactory(DjangoModelFactory):
29 model = models.Antibody
30 django_get_or_create = ('antigene',)
33 nickname = 'short name'
35 antibodies = 'antibody'
37 biology = 'some biological description'
41 class CelllineFactory(DjangoModelFactory):
43 model = models.Cellline
45 cellline_name = 'Test'
50 class ConditionFactory(DjangoModelFactory):
52 model = models.Condition
54 condition_name = 'condition name'
58 class ExperimentTypeFactory(DjangoModelFactory):
60 model = models.ExperimentType
61 django_get_or_create = ('name',)
63 name = 'experiment type name'
65 class HTSUserFactory(DjangoModelFactory):
67 model = models.HTSUser
68 django_get_or_create = ('username',)
71 email = factory.LazyAttribute(lambda obj: '%s@example.org' % obj.username)
77 class SpeciesFactory(DjangoModelFactory):
79 model = models.Species
81 scientific_name = FuzzyText(prefix='scientific name ')
82 common_name = FuzzyText(prefix='common name ')
84 class LibraryTypeFactory(DjangoModelFactory):
86 model = models.LibraryType
88 is_paired_end = FuzzyChoice([True, False])
89 can_multiplex = FuzzyChoice([True, False])
90 name = FuzzyText(prefix='library type ')
92 class MultiplexIndexFactory(DjangoModelFactory):
94 model = models.MultiplexIndex
96 adapter_type = factory.SubFactory(LibraryTypeFactory)
97 multiplex_id = factory.LazyAttribute(lambda o: 'N{}'.format(o.sequence))
98 sequence = FuzzyText(length=5, chars='AGCT')
100 class LibraryFactory(DjangoModelFactory):
102 model = models.Library
104 id = factory.Sequence(lambda n: str(10000 + n))
105 library_name = factory.LazyAttribute(lambda o: 'Library %s' % (o.id))
106 library_species = factory.SubFactory(SpeciesFactory)
107 experiment_type = factory.SubFactory(ExperimentTypeFactory)
108 creation_date = datetime.datetime.now()
110 made_for = 'scientist unit 2007'
111 made_by = 'microfluidics bot 7321'
112 stopping_point = '2A'
113 undiluted_concentration = '5.01'
115 library_type = factory.SubFactory(LibraryTypeFactory)