test_game_servers.TestGameServers.test_eq()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 15
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 10
nop 1
dl 0
loc 15
rs 9.9
c 0
b 0
f 0
1
#!/usr/bin/python
2
# -*- coding: utf-8 -*-
3
import unittest
4
5
from tw_serverinfo import GameServers, MasterServers
6
from tw_serverinfo.models.game_server import GameServer
7
8
9
class TestGameServers(unittest.TestCase):
10
11
    def setUp(self):
12
        """Constructor for the Unit Test
13
14
        :return:
15
        """
16
        master_servers_module = MasterServers()
17
        self.game_servers_module = GameServers()
18
        self.game_servers = master_servers_module.game_servers
19
20
    def test_fill_server_info(self):
21
        """Test the fill_server_info function to retrieve and parse data from the the game servers
22
        if the server responds
23
24
        :return:
25
        """
26
        self.game_servers_module.fill_server_info(self.game_servers)
27
        for game_server in self.game_servers:  # type: GameServer
28
            if game_server.response:
29
                self.assertTrue(game_server.server_type != '')
30
                self.assertTrue(game_server.name != '')
31
                self.assertTrue(game_server.max_players > 0)
32
                self.assertTrue(game_server.max_clients > 0)
33
                self.assertTrue(game_server.token != b'')
34
                self.assertTrue(game_server.game_type != '')
35
                self.assertTrue(game_server.map_name != '')
36
                self.assertIsInstance(game_server.map_crc, int)
37
                self.assertIsInstance(game_server.map_size, int)
38
39
    def test_repr(self):
40
        """Test if all attributes in the repr function can get called properly
41
42
        :return:
43
        """
44
        for game_server in self.game_servers:
45
            self.assertIsInstance(game_server.__repr__(), str)
46
47
    def test_eq(self):
48
        """Check if equality check works. GameServer objects with the same ip and same port should
49
        return True even if another attribute is set
50
51
        :return:
52
        """
53
        g1 = GameServer(ip='127.0.0.1', port=8300)
54
        g2 = GameServer(ip='127.0.0.1', port=8300)
55
        g2.response = True
56
        g3 = GameServer(ip='127.0.0.2', port=8300)
57
        g4 = GameServer(ip='127.0.0.1', port=8301)
58
        self.assertEqual(g1, g2)
59
        self.assertNotEqual(g1, g3)
60
        self.assertNotEqual(g2, g3)
61
        self.assertNotEqual(g3, g4)
62
63
64
if __name__ == '__main__':
65
    suite = unittest.TestLoader().loadTestsFromTestCase(TestGameServers)
66
    unittest.TextTestRunner(verbosity=2).run(suite)
67