예제 #1
0
 def setUp(self):
     MohwTestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = MohwParser(self.conf)
예제 #2
0
 def setUp(self):
     MohwTestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = MohwParser(self.conf)
     self.parser.startup()
     # patch parser queueEvent method so we can make assertions on it later on
     self.queueEvent_patcher = patch.object(self.parser, 'queueEvent')
     self.queueEvent_mock = self.queueEvent_patcher.start()
예제 #3
0
 def test_decodeServerinfo(self):
     self.assertDictEqual(
         {
             'serverName': 'BigBrotherBot #1 MOHW',
             'numPlayers': '0',
             'maxPlayers': '20',
             'gamemode': 'TeamDeathMatch',
             'level': 'MP_10',
             'roundsPlayed': '0',
             'roundsTotal': '1',
             'numTeams': '2',
             'team1score': '0',
             'team2score': '0',
             'targetScore': '75',
             'onlineState': '',
             'isRanked': 'true',
             'hasPunkbuster': 'true',
             'hasPassword': '******',
             'serverUptime': '86755',
             'roundTime': '84003',
             'gameIpAndPort': '',
             'punkBusterVersion': '',
             'joinQueueEnabled': '',
             'region': 'EU',
             'closestPingSite': 'i3d-ams',
             'country': 'GB',
         },
         MohwParser.decodeServerinfo([
             'BigBrotherBot #1 MOHW', '0', '20', 'TeamDeathMatch', 'MP_10',
             '0', '1', '2', '0', '0', '75', '', 'true', 'true', 'false',
             '86755', '84003', '', '', '', 'EU', 'i3d-ams', 'GB'
         ]))
예제 #4
0
 def test_decodeServerinfo(self):
     self.assertDictEqual({
         'serverName': 'BigBrotherBot #1 MOHW',
         'numPlayers': '0',
         'maxPlayers': '20',
         'gamemode': 'TeamDeathMatch',
         'level': 'MP_10',
         'roundsPlayed': '0',
         'roundsTotal': '1',
         'numTeams': '2',
         'team1score': '0',
         'team2score': '0',
         'targetScore': '75',
         'onlineState': '',
         'isRanked': 'true',
         'hasPunkbuster': 'true',
         'hasPassword': '******',
         'serverUptime': '86755',
         'roundTime': '84003',
         'gameIpAndPort': '',
         'punkBusterVersion': '',
         'joinQueueEnabled': '',
         'region': 'EU',
         'closestPingSite': 'i3d-ams',
         'country': 'GB',
     }, MohwParser.decodeServerinfo(
         ['BigBrotherBot #1 MOHW', '0', '20', 'TeamDeathMatch', 'MP_10', '0', '1', '2', '0', '0', '75', '', 'true',
          'true', 'false', '86755', '84003', '', '', '', 'EU', 'i3d-ams', 'GB']
     ))
예제 #5
0
 def setUp(self):
     MohwTestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = MohwParser(self.conf)
예제 #6
0
class Test_events(MohwTestCase):
    """
    class holding tests that assert the correct B3 was fired given a particular input or action
    """
    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)
        self.parser.startup()
        # patch parser queueEvent method so we can make assertions on it later on
        self.queueEvent_patcher = patch.object(self.parser, 'queueEvent')
        self.queueEvent_mock = self.queueEvent_patcher.start()

    def tearDown(self):
        MohwTestCase.tearDown(self)
        self.queueEvent_patcher.stop()

    def assert_event_was_fired(self, expected_event):
        """
        Assert that last event fired is of the given type and return it
        :param expected_event: expected event as an string, i.e. :  "EVT_GAME_ROUND_END"
        :return: fired event or will raise AssertError when appropriate
        """
        self.assertTrue(self.queueEvent_mock.called, "no event was fired")
        event = self.queueEvent_mock.call_args[0][0]
        self.assertEqual(self.parser.getEventID(expected_event), event.type)
        return event

    def test_cmd_rotateMap_generate_EVT_GAME_ROUND_END(self):
        # GIVEN
        when(self.parser).write(('mapList.getMapIndices', )).thenReturn([0, 1])
        when(self.parser).getFullMapRotationList().thenReturn(
            NewMapListBlock([
                '4', 'CustomPL', '3', 'MP_03', 'CombatMission', '1', 'MP_05',
                'BombSquad', '1', 'MP_10', 'Sport', '4', 'MP_013',
                'SectorControl', '4'
            ]))
        # WHEN
        self.parser.rotateMap()
        # THEN
        event = self.assert_event_was_fired("EVT_GAME_ROUND_END")
        self.assertEqual('Event<EVT_GAME_ROUND_END>(None, None, None)',
                         str(event))

    def test_player_onChat_generate_EVT_CLIENT_SAY(self):
        # GIVEN
        joe = FakeClient(console=self.parser, name="Joe", guid="Joe")
        when(self.parser).getClient("Joe").thenReturn(joe)
        # WHEN
        self.parser.routeFrostbitePacket(
            ['player.onChat', 'Joe', 'test all', 'all'])
        # THEN
        event = self.assert_event_was_fired("EVT_CLIENT_SAY")
        self.assertEqual('test all', event.data)
        self.assertEqual(joe, event.client)
예제 #7
0
 def setUp(self):
     MohwTestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = MohwParser(self.conf)
     self.parser.startup()
     # patch parser queueEvent method so we can make assertions on it later on
     self.queueEvent_patcher = patch.object(self.parser, 'queueEvent')
     self.queueEvent_mock = self.queueEvent_patcher.start()
예제 #8
0
class Test_events(MohwTestCase):
    """
    class holding tests that assert the correct B3 was fired given a particular input or action
    """

    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)
        self.parser.startup()
        # patch parser queueEvent method so we can make assertions on it later on
        self.queueEvent_patcher = patch.object(self.parser, 'queueEvent')
        self.queueEvent_mock = self.queueEvent_patcher.start()

    def tearDown(self):
        MohwTestCase.tearDown(self)
        self.queueEvent_patcher.stop()

    def assert_event_was_fired(self, expected_event):
        """
        Assert that last event fired is of the given type and return it
        :param expected_event: expected event as an string, i.e. :  "EVT_GAME_ROUND_END"
        :return: fired event or will raise AssertError when appropriate
        """
        self.assertTrue(self.queueEvent_mock.called, "no event was fired")
        event = self.queueEvent_mock.call_args[0][0]
        self.assertEqual(self.parser.getEventID(expected_event), event.type)
        return event

    def test_cmd_rotateMap_generate_EVT_GAME_ROUND_END(self):
        # GIVEN
        when(self.parser).write(('mapList.getMapIndices', )).thenReturn([0, 1])
        when(self.parser).getFullMapRotationList().thenReturn(
            NewMapListBlock(['4', 'CustomPL', '3', 'MP_03', 'CombatMission', '1', 'MP_05', 'BombSquad', '1', 'MP_10',
                             'Sport', '4', 'MP_013', 'SectorControl', '4']))
        # WHEN
        self.parser.rotateMap()
        # THEN
        event = self.assert_event_was_fired("EVT_GAME_ROUND_END")
        self.assertEqual('Event<EVT_GAME_ROUND_END>(None, None, None)', str(event))

    def test_player_onChat_generate_EVT_CLIENT_SAY(self):
        # GIVEN
        joe = FakeClient(console=self.parser, name="Joe", guid="Joe")
        when(self.parser).getClient("Joe").thenReturn(joe)
        # WHEN
        self.parser.routeFrostbitePacket(['player.onChat', 'Joe', 'test all', 'all'])
        # THEN
        event = self.assert_event_was_fired("EVT_CLIENT_SAY")
        self.assertEqual('test all', event.data)
        self.assertEqual(joe, event.client)
예제 #9
0
 def setUp(self):
     with logging_disabled():
         self.conf = CfgConfigParser()
         self.parser = MohwParser(self.conf)
예제 #10
0
class Test_config(MohwTestCase):

    def setUp(self):
        with logging_disabled():
            self.conf = CfgConfigParser()
            self.parser = MohwParser(self.conf)

    def assert_big_b3_private_responses(self, expected, config):
        self.parser._big_b3_private_responses = None
        self.conf.loadFromString(config)
        self.parser.load_conf_big_b3_private_responses()
        self.assertEqual(expected, self.parser._big_b3_private_responses)

    def test_big_b3_private_responses_on(self):
        self.assert_big_b3_private_responses(True, dedent("""
            [mohw]
            big_b3_private_responses: on"""))
        self.assert_big_b3_private_responses(False, dedent("""
            [mohw]
            big_b3_private_responses: off"""))
        self.assert_big_b3_private_responses(False, dedent("""
            [mohw]
            big_b3_private_responses: f00"""))
        self.assert_big_b3_private_responses(False, dedent("""
            [mohw]
            big_b3_private_responses:"""))

    def assert_big_msg_duration(self, expected, config):
        self.parser._big_msg_duration = None
        self.conf.loadFromString(config)
        self.parser.load_conf_big_msg_duration()
        self.assertEqual(expected, self.parser._big_msg_duration)

    def test_big_msg_duration(self):
        default_value = 4
        self.assert_big_msg_duration(0, dedent("""
            [mohw]
            big_msg_duration: 0"""))
        self.assert_big_msg_duration(5, dedent("""
            [mohw]
            big_msg_duration: 5"""))
        self.assert_big_msg_duration(default_value, dedent("""
            [mohw]
            big_msg_duration: 5.6"""))
        self.assert_big_msg_duration(30, dedent("""
            [mohw]
            big_msg_duration: 30"""))
        self.assert_big_msg_duration(default_value, dedent("""
            [mohw]
            big_msg_duration: f00"""))
        self.assert_big_msg_duration(default_value, dedent("""
            [mohw]
            big_msg_duration:"""))

    def assert_big_msg_repeat(self, expected, config):
        self.parser._big_msg_repeat = None
        self.conf.loadFromString(config)
        self.parser.load_conf_big_b3_private_responses()
        self.parser.load_conf_big_msg_repeat()
        self.assertEqual(expected, self.parser._big_msg_repeat)

    def test_big_msg_repeat(self):
        default_value = 'pm'
        self.assert_big_msg_repeat('all', dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat: all"""))
        self.assert_big_msg_repeat('off', dedent("""
            [mohw]
            big_msg_repeat: off"""))
        self.assert_big_msg_repeat(default_value, dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat: pm"""))
        self.assert_big_msg_repeat(default_value, dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat:"""))
        self.assert_big_msg_repeat('off', dedent("""
            [mohw]
            big_msg_repeat: OFF"""))
        self.assert_big_msg_repeat(default_value, dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat: junk"""))
예제 #11
0
class Test_maps(MohwTestCase):
    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)

    def test_each_map_has_at_least_one_gamemode(self):
        for map_id in MAP_NAME_BY_ID:
            self.assertIn(map_id, GAME_MODES_BY_MAP_ID)
            self.assertGreater(len(GAME_MODES_BY_MAP_ID[map_id]), 0)

    def test_each_gamemode_is_valid(self):
        game_modes_found = set()
        map(game_modes_found.update, GAME_MODES_BY_MAP_ID.values())
        self.assertSetEqual(set(GAME_MODES_NAMES.keys()), game_modes_found)
        for game_mode in game_modes_found:
            self.assertIn(game_mode, GAME_MODES_NAMES)

    def test_getEasyName(self):
        self.assertEqual('Somalia Stronghold',
                         self.parser.getEasyName('MP_03'))
        self.assertEqual('Novi Grad Warzone', self.parser.getEasyName('MP_05'))
        self.assertEqual('Sarajevo Stadium', self.parser.getEasyName('MP_10'))
        self.assertEqual('Basilan Aftermath', self.parser.getEasyName('MP_12'))
        self.assertEqual('Hara Dunes', self.parser.getEasyName('MP_13'))
        self.assertEqual('Al Fara Cliffside', self.parser.getEasyName('MP_16'))
        self.assertEqual('Shogore Valley', self.parser.getEasyName('MP_18'))
        self.assertEqual('Tungunan Jungle', self.parser.getEasyName('MP_19'))
        self.assertEqual('Darra Gun Market', self.parser.getEasyName('MP_20'))
        self.assertEqual('Chitrail Compound', self.parser.getEasyName('MP_21'))
        self.assertEqual('f00', self.parser.getEasyName('f00'))

    def test_getHardName(self):
        self.assertEqual('MP_03',
                         self.parser.getHardName('Somalia Stronghold'))
        self.assertEqual('MP_05', self.parser.getHardName('Novi Grad Warzone'))
        self.assertEqual('MP_10', self.parser.getHardName('Sarajevo Stadium'))
        self.assertEqual('MP_12', self.parser.getHardName('Basilan Aftermath'))
        self.assertEqual('MP_13', self.parser.getHardName('Hara Dunes'))
        self.assertEqual('MP_16', self.parser.getHardName('Al Fara Cliffside'))
        self.assertEqual('MP_18', self.parser.getHardName('Shogore Valley'))
        self.assertEqual('MP_19', self.parser.getHardName('Tungunan Jungle'))
        self.assertEqual('MP_20', self.parser.getHardName('Darra Gun Market'))
        self.assertEqual('MP_21', self.parser.getHardName('Chitrail Compound'))
        self.assertEqual('f00', self.parser.getHardName('f00'))
예제 #12
0
class Test_getGamemodeSoundingLike(MohwTestCase):
    """
    make sure that getGamemodeSoundingLike returns expected results
    """

    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)

    def test_CombatMission(self):
        self.assertEqual('CombatMission', self.parser.getGamemodeSoundingLike('MP_03', 'CombatMission'))
        self.assertEqual('CombatMission', self.parser.getGamemodeSoundingLike('MP_03', 'Combat Mission'))
        self.assertEqual('CombatMission', self.parser.getGamemodeSoundingLike('MP_03', 'Combt Mission'))
        self.assertEqual('CombatMission', self.parser.getGamemodeSoundingLike('MP_03', 'Mission'))
        self.assertEqual('CombatMission', self.parser.getGamemodeSoundingLike('MP_03', 'combat'))
        self.assertEqual('CombatMission', self.parser.getGamemodeSoundingLike('MP_03', 'cm'))

    def test_Sport(self):
        self.assertEqual('Sport', self.parser.getGamemodeSoundingLike('MP_03', 'Sport'))
        self.assertEqual('Sport', self.parser.getGamemodeSoundingLike('MP_03', 'Home Run'))
        self.assertEqual('Sport', self.parser.getGamemodeSoundingLike('MP_03', 'Home'))
        self.assertEqual('Sport', self.parser.getGamemodeSoundingLike('MP_03', 'run'))
        self.assertEqual('Sport', self.parser.getGamemodeSoundingLike('MP_03', 'homerun'))
        self.assertEqual('Sport', self.parser.getGamemodeSoundingLike('MP_03', 'hr'))

    def test_SectorControl(self):
        self.assertEqual('SectorControl', self.parser.getGamemodeSoundingLike('MP_03', 'SectorControl'))
        self.assertEqual('SectorControl', self.parser.getGamemodeSoundingLike('MP_03', 'Sector Control'))
        self.assertEqual('SectorControl', self.parser.getGamemodeSoundingLike('MP_03', 'Sector'))
        self.assertEqual('SectorControl', self.parser.getGamemodeSoundingLike('MP_03', 'control'))
        self.assertEqual('SectorControl', self.parser.getGamemodeSoundingLike('MP_03', 'sc'))

    def test_TeamDeathMatch(self):
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'TeamDeathMatch'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'Team DeathMatch'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'Team Death Match'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'Death Match'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'team'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'death'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'Match'))
        self.assertEqual('TeamDeathMatch', self.parser.getGamemodeSoundingLike('MP_03', 'tdm'))

    def test_BombSquad(self):
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'BombSquad'))
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'Hot Spot'))
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'Hotspot'))
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'hot'))
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'spot'))
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'Bomb'))
        self.assertEqual('BombSquad', self.parser.getGamemodeSoundingLike('MP_03', 'hs'))

    def test_suggestions(self):
        # unrecognizable input, falling back on available gamemodes for current map
        self.assertEqual(['Team Death Match', 'Combat Mission', 'Home Run'],
                         self.parser.getGamemodeSoundingLike('MP_12', ''))
예제 #13
0
class Test_getMapsSoundingLike(MohwTestCase):
    """
    make sure that getMapsSoundingLike returns expected results
    """

    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)

    def test_MP_03(self):
        self.assertEqual('MP_03', self.parser.getMapsSoundingLike('somalia stronghold'))
        self.assertEqual('MP_03', self.parser.getMapsSoundingLike('somaliastronghold'))
        self.assertEqual('MP_03', self.parser.getMapsSoundingLike('somalia'))
        self.assertEqual('MP_03', self.parser.getMapsSoundingLike('stronghold'))

    def test_MP_05(self):
        self.assertEqual('MP_05', self.parser.getMapsSoundingLike('novi grad warzone'))
        self.assertEqual('MP_05', self.parser.getMapsSoundingLike('novigradwarzone'))
        self.assertEqual('MP_05', self.parser.getMapsSoundingLike('novi'))
        self.assertEqual('MP_05', self.parser.getMapsSoundingLike('WARZONE'))

    def test_MP_10(self):
        self.assertEqual('MP_10', self.parser.getMapsSoundingLike('sarajevo stadium'))
        self.assertEqual('MP_10', self.parser.getMapsSoundingLike('sarajevostadium'))
        self.assertEqual('MP_10', self.parser.getMapsSoundingLike('sarajevo'))
        self.assertEqual('MP_10', self.parser.getMapsSoundingLike('stadium'))

    def test_MP_12(self):
        self.assertEqual('MP_12', self.parser.getMapsSoundingLike('basilan aftermath'))
        self.assertEqual('MP_12', self.parser.getMapsSoundingLike('basilanaftermath'))
        self.assertEqual('MP_12', self.parser.getMapsSoundingLike('basilan'))
        self.assertEqual('MP_12', self.parser.getMapsSoundingLike('aftermath'))

    def test_MP_13(self):
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('hara dunes'))
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('haradunes'))
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('hara'))
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('dunes'))

    def test_MP_16(self):
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('al fara cliffside'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('alfaracliffside'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('alfara'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('faracliffside'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('fara'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('cliffside'))

    def test_MP_18(self):
        self.assertEqual('MP_18', self.parser.getMapsSoundingLike('shogore valley'))
        self.assertEqual('MP_18', self.parser.getMapsSoundingLike('shogorevalley'))
        self.assertEqual('MP_18', self.parser.getMapsSoundingLike('shogore'))
        self.assertEqual('MP_18', self.parser.getMapsSoundingLike('valley'))

    def test_MP_19(self):
        self.assertEqual('MP_19', self.parser.getMapsSoundingLike('tungunan jungle'))
        self.assertEqual('MP_19', self.parser.getMapsSoundingLike('tungunanjungle'))
        self.assertEqual('MP_19', self.parser.getMapsSoundingLike('tungunan'))
        self.assertEqual('MP_19', self.parser.getMapsSoundingLike('jungle'))

    def test_MP_20(self):
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('darra gun market'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('darragunmarket'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('darra'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('darragun'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('market'))

    def test_MP_21(self):
        self.assertEqual('MP_21', self.parser.getMapsSoundingLike('chitrail compound'))
        self.assertEqual('MP_21', self.parser.getMapsSoundingLike('chitrailcompound'))
        self.assertEqual('MP_21', self.parser.getMapsSoundingLike('chitrail'))
        self.assertEqual('MP_21', self.parser.getMapsSoundingLike('compound'))

    def test_suggestions(self):
        self.assertEqual(['shogore valley', 'sarajevo stadium', 'tungunan jungle'], self.parser.getMapsSoundingLike(''))
예제 #14
0
class Test_maps(MohwTestCase):

    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)

    def test_each_map_has_at_least_one_gamemode(self):
        for map_id in MAP_NAME_BY_ID:
            self.assertIn(map_id, GAME_MODES_BY_MAP_ID)
            self.assertGreater(len(GAME_MODES_BY_MAP_ID[map_id]), 0)

    def test_each_gamemode_is_valid(self):
        game_modes_found = set()
        map(game_modes_found.update, GAME_MODES_BY_MAP_ID.values())
        self.assertSetEqual(set(GAME_MODES_NAMES.keys()), game_modes_found)
        for game_mode in game_modes_found:
            self.assertIn(game_mode, GAME_MODES_NAMES)

    def test_getEasyName(self):
        self.assertEqual('Somalia Stronghold', self.parser.getEasyName('MP_03'))
        self.assertEqual('Novi Grad Warzone', self.parser.getEasyName('MP_05'))
        self.assertEqual('Sarajevo Stadium', self.parser.getEasyName('MP_10'))
        self.assertEqual('Basilan Aftermath', self.parser.getEasyName('MP_12'))
        self.assertEqual('Hara Dunes', self.parser.getEasyName('MP_13'))
        self.assertEqual('Al Fara Cliffside', self.parser.getEasyName('MP_16'))
        self.assertEqual('Shogore Valley', self.parser.getEasyName('MP_18'))
        self.assertEqual('Tungunan Jungle', self.parser.getEasyName('MP_19'))
        self.assertEqual('Darra Gun Market', self.parser.getEasyName('MP_20'))
        self.assertEqual('Chitrail Compound', self.parser.getEasyName('MP_21'))
        self.assertEqual('f00', self.parser.getEasyName('f00'))

    def test_getHardName(self):
        self.assertEqual('MP_03', self.parser.getHardName('Somalia Stronghold'))
        self.assertEqual('MP_05', self.parser.getHardName('Novi Grad Warzone'))
        self.assertEqual('MP_10', self.parser.getHardName('Sarajevo Stadium'))
        self.assertEqual('MP_12', self.parser.getHardName('Basilan Aftermath'))
        self.assertEqual('MP_13', self.parser.getHardName('Hara Dunes'))
        self.assertEqual('MP_16', self.parser.getHardName('Al Fara Cliffside'))
        self.assertEqual('MP_18', self.parser.getHardName('Shogore Valley'))
        self.assertEqual('MP_19', self.parser.getHardName('Tungunan Jungle'))
        self.assertEqual('MP_20', self.parser.getHardName('Darra Gun Market'))
        self.assertEqual('MP_21', self.parser.getHardName('Chitrail Compound'))
        self.assertEqual('f00', self.parser.getHardName('f00'))
예제 #15
0
class Test_getMapsSoundingLike(MohwTestCase):
    """
    make sure that getMapsSoundingLike returns expected results
    """
    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)

    def test_MP_03(self):
        self.assertEqual('MP_03',
                         self.parser.getMapsSoundingLike('somalia stronghold'))
        self.assertEqual('MP_03',
                         self.parser.getMapsSoundingLike('somaliastronghold'))
        self.assertEqual('MP_03', self.parser.getMapsSoundingLike('somalia'))
        self.assertEqual('MP_03',
                         self.parser.getMapsSoundingLike('stronghold'))

    def test_MP_05(self):
        self.assertEqual('MP_05',
                         self.parser.getMapsSoundingLike('novi grad warzone'))
        self.assertEqual('MP_05',
                         self.parser.getMapsSoundingLike('novigradwarzone'))
        self.assertEqual('MP_05', self.parser.getMapsSoundingLike('novi'))
        self.assertEqual('MP_05', self.parser.getMapsSoundingLike('WARZONE'))

    def test_MP_10(self):
        self.assertEqual('MP_10',
                         self.parser.getMapsSoundingLike('sarajevo stadium'))
        self.assertEqual('MP_10',
                         self.parser.getMapsSoundingLike('sarajevostadium'))
        self.assertEqual('MP_10', self.parser.getMapsSoundingLike('sarajevo'))
        self.assertEqual('MP_10', self.parser.getMapsSoundingLike('stadium'))

    def test_MP_12(self):
        self.assertEqual('MP_12',
                         self.parser.getMapsSoundingLike('basilan aftermath'))
        self.assertEqual('MP_12',
                         self.parser.getMapsSoundingLike('basilanaftermath'))
        self.assertEqual('MP_12', self.parser.getMapsSoundingLike('basilan'))
        self.assertEqual('MP_12', self.parser.getMapsSoundingLike('aftermath'))

    def test_MP_13(self):
        self.assertEqual('MP_13',
                         self.parser.getMapsSoundingLike('hara dunes'))
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('haradunes'))
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('hara'))
        self.assertEqual('MP_13', self.parser.getMapsSoundingLike('dunes'))

    def test_MP_16(self):
        self.assertEqual('MP_16',
                         self.parser.getMapsSoundingLike('al fara cliffside'))
        self.assertEqual('MP_16',
                         self.parser.getMapsSoundingLike('alfaracliffside'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('alfara'))
        self.assertEqual('MP_16',
                         self.parser.getMapsSoundingLike('faracliffside'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('fara'))
        self.assertEqual('MP_16', self.parser.getMapsSoundingLike('cliffside'))

    def test_MP_18(self):
        self.assertEqual('MP_18',
                         self.parser.getMapsSoundingLike('shogore valley'))
        self.assertEqual('MP_18',
                         self.parser.getMapsSoundingLike('shogorevalley'))
        self.assertEqual('MP_18', self.parser.getMapsSoundingLike('shogore'))
        self.assertEqual('MP_18', self.parser.getMapsSoundingLike('valley'))

    def test_MP_19(self):
        self.assertEqual('MP_19',
                         self.parser.getMapsSoundingLike('tungunan jungle'))
        self.assertEqual('MP_19',
                         self.parser.getMapsSoundingLike('tungunanjungle'))
        self.assertEqual('MP_19', self.parser.getMapsSoundingLike('tungunan'))
        self.assertEqual('MP_19', self.parser.getMapsSoundingLike('jungle'))

    def test_MP_20(self):
        self.assertEqual('MP_20',
                         self.parser.getMapsSoundingLike('darra gun market'))
        self.assertEqual('MP_20',
                         self.parser.getMapsSoundingLike('darragunmarket'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('darra'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('darragun'))
        self.assertEqual('MP_20', self.parser.getMapsSoundingLike('market'))

    def test_MP_21(self):
        self.assertEqual('MP_21',
                         self.parser.getMapsSoundingLike('chitrail compound'))
        self.assertEqual('MP_21',
                         self.parser.getMapsSoundingLike('chitrailcompound'))
        self.assertEqual('MP_21', self.parser.getMapsSoundingLike('chitrail'))
        self.assertEqual('MP_21', self.parser.getMapsSoundingLike('compound'))

    def test_suggestions(self):
        self.assertEqual(
            ['shogore valley', 'sarajevo stadium', 'tungunan jungle'],
            self.parser.getMapsSoundingLike(''))
예제 #16
0
class Test_getGamemodeSoundingLike(MohwTestCase):
    """
    make sure that getGamemodeSoundingLike returns expected results
    """
    def setUp(self):
        MohwTestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = MohwParser(self.conf)

    def test_CombatMission(self):
        self.assertEqual(
            'CombatMission',
            self.parser.getGamemodeSoundingLike('MP_03', 'CombatMission'))
        self.assertEqual(
            'CombatMission',
            self.parser.getGamemodeSoundingLike('MP_03', 'Combat Mission'))
        self.assertEqual(
            'CombatMission',
            self.parser.getGamemodeSoundingLike('MP_03', 'Combt Mission'))
        self.assertEqual(
            'CombatMission',
            self.parser.getGamemodeSoundingLike('MP_03', 'Mission'))
        self.assertEqual(
            'CombatMission',
            self.parser.getGamemodeSoundingLike('MP_03', 'combat'))
        self.assertEqual('CombatMission',
                         self.parser.getGamemodeSoundingLike('MP_03', 'cm'))

    def test_Sport(self):
        self.assertEqual('Sport',
                         self.parser.getGamemodeSoundingLike('MP_03', 'Sport'))
        self.assertEqual(
            'Sport', self.parser.getGamemodeSoundingLike('MP_03', 'Home Run'))
        self.assertEqual('Sport',
                         self.parser.getGamemodeSoundingLike('MP_03', 'Home'))
        self.assertEqual('Sport',
                         self.parser.getGamemodeSoundingLike('MP_03', 'run'))
        self.assertEqual(
            'Sport', self.parser.getGamemodeSoundingLike('MP_03', 'homerun'))
        self.assertEqual('Sport',
                         self.parser.getGamemodeSoundingLike('MP_03', 'hr'))

    def test_SectorControl(self):
        self.assertEqual(
            'SectorControl',
            self.parser.getGamemodeSoundingLike('MP_03', 'SectorControl'))
        self.assertEqual(
            'SectorControl',
            self.parser.getGamemodeSoundingLike('MP_03', 'Sector Control'))
        self.assertEqual(
            'SectorControl',
            self.parser.getGamemodeSoundingLike('MP_03', 'Sector'))
        self.assertEqual(
            'SectorControl',
            self.parser.getGamemodeSoundingLike('MP_03', 'control'))
        self.assertEqual('SectorControl',
                         self.parser.getGamemodeSoundingLike('MP_03', 'sc'))

    def test_TeamDeathMatch(self):
        self.assertEqual(
            'TeamDeathMatch',
            self.parser.getGamemodeSoundingLike('MP_03', 'TeamDeathMatch'))
        self.assertEqual(
            'TeamDeathMatch',
            self.parser.getGamemodeSoundingLike('MP_03', 'Team DeathMatch'))
        self.assertEqual(
            'TeamDeathMatch',
            self.parser.getGamemodeSoundingLike('MP_03', 'Team Death Match'))
        self.assertEqual(
            'TeamDeathMatch',
            self.parser.getGamemodeSoundingLike('MP_03', 'Death Match'))
        self.assertEqual('TeamDeathMatch',
                         self.parser.getGamemodeSoundingLike('MP_03', 'team'))
        self.assertEqual('TeamDeathMatch',
                         self.parser.getGamemodeSoundingLike('MP_03', 'death'))
        self.assertEqual('TeamDeathMatch',
                         self.parser.getGamemodeSoundingLike('MP_03', 'Match'))
        self.assertEqual('TeamDeathMatch',
                         self.parser.getGamemodeSoundingLike('MP_03', 'tdm'))

    def test_BombSquad(self):
        self.assertEqual(
            'BombSquad',
            self.parser.getGamemodeSoundingLike('MP_03', 'BombSquad'))
        self.assertEqual(
            'BombSquad',
            self.parser.getGamemodeSoundingLike('MP_03', 'Hot Spot'))
        self.assertEqual(
            'BombSquad',
            self.parser.getGamemodeSoundingLike('MP_03', 'Hotspot'))
        self.assertEqual('BombSquad',
                         self.parser.getGamemodeSoundingLike('MP_03', 'hot'))
        self.assertEqual('BombSquad',
                         self.parser.getGamemodeSoundingLike('MP_03', 'spot'))
        self.assertEqual('BombSquad',
                         self.parser.getGamemodeSoundingLike('MP_03', 'Bomb'))
        self.assertEqual('BombSquad',
                         self.parser.getGamemodeSoundingLike('MP_03', 'hs'))

    def test_suggestions(self):
        # unrecognizable input, falling back on available gamemodes for current map
        self.assertEqual(['Team Death Match', 'Combat Mission', 'Home Run'],
                         self.parser.getGamemodeSoundingLike('MP_12', ''))
예제 #17
0
 def setUp(self):
     with logging_disabled():
         self.conf = CfgConfigParser()
         self.parser = MohwParser(self.conf)
예제 #18
0
class Test_config(MohwTestCase):
    def setUp(self):
        with logging_disabled():
            self.conf = CfgConfigParser()
            self.parser = MohwParser(self.conf)

    def assert_big_b3_private_responses(self, expected, config):
        self.parser._big_b3_private_responses = None
        self.conf.loadFromString(config)
        self.parser.load_conf_big_b3_private_responses()
        self.assertEqual(expected, self.parser._big_b3_private_responses)

    def test_big_b3_private_responses_on(self):
        self.assert_big_b3_private_responses(
            True,
            dedent("""
            [mohw]
            big_b3_private_responses: on"""))
        self.assert_big_b3_private_responses(
            False,
            dedent("""
            [mohw]
            big_b3_private_responses: off"""))
        self.assert_big_b3_private_responses(
            False,
            dedent("""
            [mohw]
            big_b3_private_responses: f00"""))
        self.assert_big_b3_private_responses(
            False,
            dedent("""
            [mohw]
            big_b3_private_responses:"""))

    def assert_big_msg_duration(self, expected, config):
        self.parser._big_msg_duration = None
        self.conf.loadFromString(config)
        self.parser.load_conf_big_msg_duration()
        self.assertEqual(expected, self.parser._big_msg_duration)

    def test_big_msg_duration(self):
        default_value = 4
        self.assert_big_msg_duration(
            0, dedent("""
            [mohw]
            big_msg_duration: 0"""))
        self.assert_big_msg_duration(
            5, dedent("""
            [mohw]
            big_msg_duration: 5"""))
        self.assert_big_msg_duration(
            default_value,
            dedent("""
            [mohw]
            big_msg_duration: 5.6"""))
        self.assert_big_msg_duration(
            30,
            dedent("""
            [mohw]
            big_msg_duration: 30"""))
        self.assert_big_msg_duration(
            default_value,
            dedent("""
            [mohw]
            big_msg_duration: f00"""))
        self.assert_big_msg_duration(
            default_value,
            dedent("""
            [mohw]
            big_msg_duration:"""))

    def assert_big_msg_repeat(self, expected, config):
        self.parser._big_msg_repeat = None
        self.conf.loadFromString(config)
        self.parser.load_conf_big_b3_private_responses()
        self.parser.load_conf_big_msg_repeat()
        self.assertEqual(expected, self.parser._big_msg_repeat)

    def test_big_msg_repeat(self):
        default_value = 'pm'
        self.assert_big_msg_repeat(
            'all',
            dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat: all"""))
        self.assert_big_msg_repeat(
            'off',
            dedent("""
            [mohw]
            big_msg_repeat: off"""))
        self.assert_big_msg_repeat(
            default_value,
            dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat: pm"""))
        self.assert_big_msg_repeat(
            default_value,
            dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat:"""))
        self.assert_big_msg_repeat(
            'off',
            dedent("""
            [mohw]
            big_msg_repeat: OFF"""))
        self.assert_big_msg_repeat(
            default_value,
            dedent("""
            [mohw]
            big_b3_private_responses: on
            big_msg_repeat: junk"""))