1
|
|
|
#!/usr/bin/python |
2
|
|
|
# -*- coding: utf-8 -*- |
3
|
|
|
import unittest |
4
|
|
|
|
5
|
|
|
from tw_serverinfo import MasterServers |
6
|
|
|
from tw_serverinfo.models.master_server import MasterServer |
7
|
|
|
|
8
|
|
|
|
9
|
|
|
class TestMasterServers(unittest.TestCase): |
10
|
|
|
|
11
|
|
|
def setUp(self): |
12
|
|
|
"""Constructor for the Unit Test |
13
|
|
|
|
14
|
|
|
:return: |
15
|
|
|
""" |
16
|
|
|
self.master_servers_module = MasterServers() |
17
|
|
|
|
18
|
|
|
def test_master_servers_plain(self): |
19
|
|
|
"""Test the function to retrieve the master servers without requesting information from it yet |
20
|
|
|
|
21
|
|
|
:return: |
22
|
|
|
""" |
23
|
|
|
self.assertEqual(len(self.master_servers_module._master_servers), 0) |
24
|
|
|
self.master_servers_module.get_master_servers() |
25
|
|
|
self.assertEqual(len(self.master_servers_module._master_servers), |
26
|
|
|
len(self.master_servers_module.master_servers_cfg)) |
27
|
|
|
|
28
|
|
|
def test_repr(self): |
29
|
|
|
"""Test if all attributes in the repr function can get called properly |
30
|
|
|
|
31
|
|
|
:return: |
32
|
|
|
""" |
33
|
|
|
for master_server in self.master_servers_module.master_servers: |
34
|
|
|
self.assertIsInstance(master_server.__repr__(), str) |
35
|
|
|
|
36
|
|
|
def test_eq(self): |
37
|
|
|
"""Check if equality check works. MasterServer objects with the same ip and same port should |
38
|
|
|
return True even if another attribute is set |
39
|
|
|
|
40
|
|
|
:return: |
41
|
|
|
""" |
42
|
|
|
g1 = MasterServer(ip='127.0.0.1', port=8300) |
43
|
|
|
g2 = MasterServer(ip='127.0.0.1', port=8300, hostname='master.localhost') |
44
|
|
|
g3 = MasterServer(ip='127.0.0.2', port=8300, hostname='master.localhost') |
45
|
|
|
g4 = MasterServer(ip='127.0.0.1', port=8303) |
46
|
|
|
self.assertEqual(g1, g2) |
47
|
|
|
self.assertNotEqual(g1, g3) |
48
|
|
|
self.assertNotEqual(g1, g4) |
49
|
|
|
|
50
|
|
|
def test_master_servers_property(self): |
51
|
|
|
"""Test the function to retrieve and parse data from the master server |
52
|
|
|
|
53
|
|
|
:return: |
54
|
|
|
""" |
55
|
|
|
# assert that we actually got a dictionary |
56
|
|
|
self.assertIsInstance(self.master_servers_module.master_servers, list) |
57
|
|
|
# check length |
58
|
|
|
self.assertEqual(len(self.master_servers_module.master_servers_cfg), |
59
|
|
|
len(self.master_servers_module.master_servers)) |
60
|
|
|
|
61
|
|
|
|
62
|
|
|
if __name__ == '__main__': |
63
|
|
|
suite = unittest.TestLoader().loadTestsFromTestCase(TestMasterServers) |
64
|
|
|
unittest.TextTestRunner(verbosity=2).run(suite) |
65
|
|
|
|