1#!/usr/bin/env python2
2import unittest
3from common.unittests import ConfigTest
4from common.dcfile import *
5
6class TestConfigDBSS(ConfigTest):
7    def test_dbss_good(self):
8        config = """\
9            messagedirector:
10                bind: 127.0.0.1:57123
11
12            general:
13                dc_files:
14                    - %r
15
16            roles:
17                - type: dbss
18                  database: 1200
19                  ranges:
20                      - min: 9000
21                        max: 9999
22            """ % test_dc
23        self.assertEquals(self.checkConfig(config), 'Valid')
24
25    def test_dbss_invalid_attr(self):
26        config = """\
27            messagedirector:
28                bind: 127.0.0.1:57123
29
30            roles:
31                - type: dbss
32                  pewpew: "q.q"
33            """
34        self.assertEquals(self.checkConfig(config), 'Invalid')
35
36    def test_dbss_invalid_database(self):
37        config = """\
38            messagedirector:
39                bind: 127.0.0.1:57123
40
41            roles:
42                - type: dbss
43                  database: 0
44                  ranges:
45                      - min: 9000
46                        max: 9999
47            """
48        self.assertEquals(self.checkConfig(config), 'Invalid')
49
50    def test_dbss_reserved_database(self):
51        config = """\
52            messagedirector:
53                bind: 127.0.0.1:57123
54
55            roles:
56                - type: dbss
57                  database: 200
58                  ranges:
59                      - min: 9000
60                        max: 9999
61            """
62        self.assertEquals(self.checkConfig(config), 'Invalid')
63
64    def test_dbss_invalid_range(self):
65        config = """\
66            messagedirector:
67                bind: 127.0.0.1:57123
68
69            roles:
70                - type: dbss
71                  database: 1200
72                  ranges:
73                      - min: 0
74                        max: 9999
75            """
76        self.assertEquals(self.checkConfig(config), 'Invalid')
77
78        config = """\
79            messagedirector:
80                bind: 127.0.0.1:57123
81
82            roles:
83                - type: dbss
84                  database: 1200
85                  ranges:
86                      - min: 9000
87                        max: 0
88            """
89        self.assertEquals(self.checkConfig(config), 'Invalid')
90
91    def test_dbss_reserved_range(self):
92        config = """\
93            messagedirector:
94                bind: 127.0.0.1:57123
95
96            roles:
97                - type: dbss
98                  database: 1200
99                  ranges:
100                      - min: 201
101                        max: 9999
102            """
103        self.assertEquals(self.checkConfig(config), 'Invalid')
104
105        config = """\
106            messagedirector:
107                bind: 127.0.0.1:57123
108
109            roles:
110                - type: dbss
111                  database: 1200
112                  ranges:
113                      - min: 9000
114                        max: 206
115            """
116        self.assertEquals(self.checkConfig(config), 'Invalid')
117
118if __name__ == '__main__':
119    unittest.main()
120