convert to unicode_literals
[htsworkflow.git] / samples / samples_factory.py
1 from __future__ import unicode_literals
2
3 import datetime
4
5 import factory
6 from factory.django import DjangoModelFactory
7 from factory.fuzzy import FuzzyChoice, FuzzyText, FuzzyInteger
8 from . import models
9
10 class AffiliationFactory(DjangoModelFactory):
11     class Meta:
12         model = models.Affiliation
13
14     name = FuzzyText(prefix='affiliation ')
15     contact = 'contact name'
16     email = factory.LazyAttribute(lambda obj: '%s@example.com' % obj.name)
17
18     @factory.post_generation
19     def users(self, create, extracted, **kwargs):
20         if not create:
21             return
22
23         if extracted:
24             for user in extracted:
25                 self.users.add(user)
26
27 class AntibodyFactory(DjangoModelFactory):
28     class Meta:
29         model = models.Antibody
30         django_get_or_create = ('antigene',)
31
32     antigene = 'antigene'
33     nickname = 'short name'
34     catalog = 'catalog #'
35     antibodies = 'antibody'
36     source = 'source'
37     biology = 'some biological description'
38     notes = 'some notes'
39
40
41 class CelllineFactory(DjangoModelFactory):
42     class Meta:
43         model = models.Cellline
44
45     cellline_name = 'Test'
46     nickname = 'Test'
47     notes = 'Notes'
48
49
50 class ConditionFactory(DjangoModelFactory):
51     class Meta:
52         model = models.Condition
53
54     condition_name = 'condition name'
55     nicname = 'nickname'
56     notes = 'notes'
57
58 class ExperimentTypeFactory(DjangoModelFactory):
59     class Meta:
60         model = models.ExperimentType
61         django_get_or_create = ('name',)
62
63     name = 'experiment type name'
64
65 class HTSUserFactory(DjangoModelFactory):
66     class Meta:
67         model = models.HTSUser
68         django_get_or_create = ('username',)
69
70     username = 'username'
71     email = factory.LazyAttribute(lambda obj: '%s@example.org' % obj.username)
72     is_staff = False
73     is_superuser = False
74
75 #class Tag
76
77 class SpeciesFactory(DjangoModelFactory):
78     class Meta:
79         model = models.Species
80
81     scientific_name = FuzzyText(prefix='scientific name ')
82     common_name = FuzzyText(prefix='common name ')
83
84 class LibraryTypeFactory(DjangoModelFactory):
85     class Meta:
86         model = models.LibraryType
87
88     is_paired_end = FuzzyChoice([True, False])
89     can_multiplex = FuzzyChoice([True, False])
90     name = FuzzyText(prefix='library type ')
91
92 class MultiplexIndexFactory(DjangoModelFactory):
93     class Meta:
94         model = models.MultiplexIndex
95
96     adapter_type = factory.SubFactory(LibraryTypeFactory)
97     multiplex_id = factory.LazyAttribute(lambda o: 'N{}'.format(o.sequence))
98     sequence = FuzzyText(length=5, chars='AGCT')
99
100 class LibraryFactory(DjangoModelFactory):
101     class Meta:
102         model = models.Library
103
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()
109     gel_cut_size = 400
110     made_for = 'scientist unit 2007'
111     made_by = 'microfluidics bot 7321'
112     stopping_point = '2A'
113     undiluted_concentration = '5.01'
114     hidden = False
115     library_type = factory.SubFactory(LibraryTypeFactory)