1 from __future__ import unicode_literals
5 from factory import LazyAttribute, Sequence, SubFactory, post_generation
6 from factory.django import DjangoModelFactory
7 from factory.fuzzy import FuzzyChoice, FuzzyText
11 class AffiliationFactory(DjangoModelFactory):
13 model = models.Affiliation
15 name = FuzzyText(prefix='affiliation ')
16 contact = 'contact name'
17 email = LazyAttribute(lambda obj: '%s@example.com' % obj.name)
20 def users(self, create, extracted, **kwargs):
25 for user in extracted:
28 class AntibodyFactory(DjangoModelFactory):
30 model = models.Antibody
31 django_get_or_create = ('antigene',)
34 nickname = 'short name'
36 antibodies = 'antibody'
38 biology = 'some biological description'
42 class CelllineFactory(DjangoModelFactory):
44 model = models.Cellline
46 cellline_name = 'Test'
51 class ConditionFactory(DjangoModelFactory):
53 model = models.Condition
55 condition_name = 'condition name'
59 class ExperimentTypeFactory(DjangoModelFactory):
61 model = models.ExperimentType
62 django_get_or_create = ('name',)
64 name = 'experiment type name'
66 class HTSUserFactory(DjangoModelFactory):
68 model = models.HTSUser
69 django_get_or_create = ('username',)
72 email = LazyAttribute(lambda obj: '%s@example.org' % obj.username)
78 class SpeciesFactory(DjangoModelFactory):
80 model = models.Species
82 scientific_name = FuzzyText(prefix='scientific name ')
83 common_name = FuzzyText(prefix='common name ')
85 class LibraryTypeFactory(DjangoModelFactory):
87 model = models.LibraryType
89 is_paired_end = FuzzyChoice([True, False])
90 can_multiplex = FuzzyChoice([True, False])
91 name = FuzzyText(prefix='library type ')
93 class MultiplexIndexFactory(DjangoModelFactory):
95 model = models.MultiplexIndex
97 adapter_type = SubFactory(LibraryTypeFactory)
98 multiplex_id = LazyAttribute(lambda o: 'N{}'.format(o.sequence))
99 sequence = FuzzyText(length=5, chars='AGCT')
101 class LibraryFactory(DjangoModelFactory):
103 model = models.Library
105 id = Sequence(lambda n: str(10000 + n))
106 library_name = LazyAttribute(lambda o: 'Library %s' % (o.id))
107 library_species = SubFactory(SpeciesFactory)
108 experiment_type = SubFactory(ExperimentTypeFactory)
109 creation_date = datetime.datetime.now()
111 made_for = 'scientist unit 2007'
112 made_by = 'microfluidics bot 7321'
113 stopping_point = '2A'
114 undiluted_concentration = '5.01'
116 library_type = SubFactory(LibraryTypeFactory)
119 class AccessionAgencyFactory(DjangoModelFactory):
121 model = models.AccessionAgency
123 name = FuzzyText(prefix="agency ")
124 homepage = FuzzyText(prefix="http://", suffix=".example.com")
125 library_template = LazyAttribute(lambda o: "%s/library/{}" % (o.homepage,))
128 class LibraryAccessionFactory(DjangoModelFactory):
130 model = models.LibraryAccession
132 accession = FuzzyText(prefix="ACC")
133 agency = SubFactory(AccessionAgencyFactory)
134 created = datetime.datetime.now()