1e344b3b86293d52d16fca625fad6f0402e69a31
[htsworkflow.git] / experiments / experiments_factory.py
1 import datetime
2
3 import factory
4 from factory.django import DjangoModelFactory
5 from factory.fuzzy import FuzzyText
6 from . import models
7 from samples.samples_factory import LibraryFactory
8
9
10 class ClusterStationFactory(DjangoModelFactory):
11     class Meta:
12         model = models.ClusterStation
13
14     name = factory.Sequence(lambda x: 'cluster station %d' % (x,))
15     isdefault = True
16
17
18 class SequencerFactory(DjangoModelFactory):
19     class Meta:
20         model = models.Sequencer
21
22     name = factory.Sequence(lambda x: 'sequencer %d' % (x,))
23     instrument_name = factory.Sequence(lambda x: 'instrument name %d' % (x,))
24     serial_number = factory.Sequence(lambda x: 'squencer serial number %d' % (x,))
25     model = 'HiSeq 1'
26     active = True
27     isdefault = True
28     comment = 'example sequencer'
29
30
31 class FlowCellFactory(DjangoModelFactory):
32     class Meta:
33         model = models.FlowCell
34
35     flowcell_id = FuzzyText(length=6, suffix='AAXX')
36     run_date = datetime.datetime.now()
37     advanced_run = False
38     paired_end = True
39     read_length = 100
40     control_lane = 0
41     cluster_station = factory.SubFactory(ClusterStationFactory)
42     sequencer = factory.SubFactory(SequencerFactory)
43     notes = 'flowcell notes'
44
45
46 class LaneFactory(DjangoModelFactory):
47     class Meta:
48         model = models.Lane
49
50     flowcell = factory.SubFactory(FlowCellFactory)
51     lane_number = 1
52     library = factory.SubFactory(LibraryFactory)
53     pM = 1.2
54     cluster_estimate = 12345
55     status = 2
56     comment = 'lane comment'
57
58
59 class DataRunFactory(DjangoModelFactory):
60     class Meta:
61         model = models.DataRun
62
63     flowcell = factory.SubFactory(FlowCellFactory)
64     runfolder_name = '102030_UAW-EAS22_1234AAAAXX'
65     result_dir = runfolder_name + '/Unaligned'
66     run_start_time = datetime.datetime.now()
67     cycle_start = 1
68     cycle_stop = 101
69     run_status = 2
70     image_software = 'RTA'
71     image_version = '1.1'
72     basecall_software = 'RTA'
73     basecall_version = '2.2'
74     alignment_software = 'eland'
75     alignment_version = '2.2'
76     comment = 'comment'
77
78
79 class FileTypeFactory(DjangoModelFactory):
80     class Meta:
81         model = models.FileType
82
83     name = 'file type'
84     mimetype = 'application/file'
85     regex = '.file$'
86