Update test_retrieve_config to work with factories
[htsworkflow.git] / experiments / test / test_sequencer.py
1 from __future__ import absolute_import, print_function
2
3 from django.test import TestCase
4 from ..models import Sequencer, sequencer_default
5 from ..experiments_factory import SequencerFactory
6
7 class SequencerTestCases(TestCase):
8     def test_default(self):
9         # starting with no default
10         s = SequencerFactory()
11         s.save()
12         self.assertTrue(s.id)
13
14         total = Sequencer.objects.filter(isdefault=True).count()
15         self.assertEqual(total, 1)
16
17         s.isdefault = False
18         s.save()
19
20         total = Sequencer.objects.filter(isdefault=True).count()
21         self.assertEqual(total, 0)
22
23         other_default = SequencerFactory()
24         other_default.save()
25         total = Sequencer.objects.filter(isdefault=True).count()
26         self.assertEqual(total, 1)
27
28
29     def test_update_default(self):
30         old_default = SequencerFactory()
31         old_default.save()
32
33         s = SequencerFactory()
34         s.save()
35
36         new_default = sequencer_default()
37
38         self.assertNotEqual(old_default, new_default)
39         self.assertEqual(new_default, s)
40
41         total = Sequencer.objects.filter(isdefault=True).count()
42         self.assertEqual(total, 1)
43
44
45     def test_update_other(self):
46         old_default = SequencerFactory()
47         old_default.save()
48         total = Sequencer.objects.filter(isdefault=True).count()
49         self.assertEqual(total, 1)
50
51         s = Sequencer.objects.get(pk=old_default.id)
52         s.name = "Primary Key 1"
53         s.save()
54
55         total = Sequencer.objects.filter(isdefault=True).count()
56         self.assertEqual(total, 1)
57
58         new_default = sequencer_default()
59         self.assertEqual(old_default, new_default)
60
61
62 def suite():
63     from unittest import TestSuite, defaultTestLoader
64     suite = TestSuite()
65     suite.addTests(defaultTestLoader.loadTestsFromTestCase(SequencerTestCase))
66     return suite
67
68 if __name__ == "__main__":
69     from unittest import main
70     main(defaultTest="suite")