965faa92765f04f89c75614b6cf040a206a6347b
[htsworkflow.git] / experiments / test / test_cluster_station.py
1 from __future__ import absolute_import, print_function
2
3 from django.test import TestCase
4 from ..models import ClusterStation, cluster_station_default
5 from ..experiments_factory import ClusterStationFactory
6
7 class ClusterStationTestCase(TestCase):
8     def test_default(self):
9         """test when there are no default cluster stations
10         """
11         c = ClusterStationFactory(isdefault=False)
12         c.isdefault = False
13         c.save()
14
15         total = ClusterStation.objects.filter(isdefault=True).count()
16         self.assertEqual(total, 0)
17
18
19     def test_update_default(self):
20         """make sure there is only one default cluster station
21         """
22         old_default = ClusterStationFactory()
23         self.assertEqual(old_default.isdefault, True)
24         old_default.save()
25
26         new_default = ClusterStationFactory()
27         self.assertEqual(new_default.isdefault, True)
28         new_default.save()
29
30         c = cluster_station_default()
31         self.assertEqual(c.isdefault, True)
32         self.assertNotEqual(old_default, new_default)
33         self.assertEqual(new_default, c)
34
35         total = ClusterStation.objects.filter(isdefault=True).count()
36         self.assertEqual(total, 1)
37
38     def test_update_other(self):
39         old_default = ClusterStationFactory()
40         old_default.save()
41         total = ClusterStation.objects.filter(isdefault=True).count()
42         self.assertEqual(total, 1)
43
44         c = ClusterStation.objects.get(pk=old_default.id)
45         c.name = "Primary Key 1"
46         c.save()
47
48         total = ClusterStation.objects.filter(isdefault=True).count()
49         self.assertEqual(total, 1)
50
51         new_default = cluster_station_default()
52         self.assertEqual(old_default, new_default)
53
54
55 def suite():
56     from unittest import TestSuite, defaultTestLoader
57     suite = TestSuite()
58     suite.addTests(defaultTestLoader.loadTestsFromTestCase(ClusterStationTestCase))
59     return suite
60
61 if __name__ == "__main__":
62     from unittest import main
63     main(defaultTest="suite")