def setUp(self): # create a Iourt42 parser parser_conf = XmlConfigParser() parser_conf.loadFromString(dedent(r""" <configuration> <settings name="server"> <set name="game_log"></set> </settings> </configuration> """)) self.parser_conf = MainConfig(parser_conf) self.console = Iourt42Parser(self.parser_conf) # initialize some fixed cvars which will be used by both the plugin and the iourt42 parser when(self.console).getCvar('auth').thenReturn(Cvar('auth', value='0')) when(self.console).getCvar('fs_basepath').thenReturn(Cvar('fs_basepath', value='/fake/basepath')) when(self.console).getCvar('fs_homepath').thenReturn(Cvar('fs_homepath', value='/fake/homepath')) when(self.console).getCvar('fs_game').thenReturn(Cvar('fs_game', value='q3ut4')) when(self.console).getCvar('gamename').thenReturn(Cvar('gamename', value='q3urt42')) # start the parser self.console.startup() with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin.onLoadConfig() self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) self.conf = CfgConfigParser() self.conf.loadFromString(dedent(r""" [settings] demorecord: no skipstandardmaps: yes minleveldelete: senioradmin [commands] delrecord: guest maprecord: guest mapinfo: guest record: guest setway: senioradmin topruns: guest map: fulladmin maps: user setnextmap: admin """)) self.p = JumperPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() # load fixed json data (do not contact urtjumpers api for testing) when(self.p).getMapsDataFromApi().thenReturn(json.loads(MAPDATA_JSON))
def test_cmd_client_record_single_argument(self): # GIVEN self.console.game.mapName = 'ut42_bstjumps_u2' # WHEN self.mike.clearMessageHistory() self.mike.says('!record bill') # THEN self.assertListEqual(['listing records for Bill (@%s) on ut42_bstjumps_u2:' % self.bill.id, '[1] 0:05:49.000 since %s' % JumperPlugin.getDateString(self.console.time()), '[2] 0:01:31.000 since %s' % JumperPlugin.getDateString(self.console.time())], self.mike.message_history)
def test_cmd_client_record_no_arguments(self): # GIVEN self.console.game.mapName = 'ut42_bstjumps_u2' # WHEN self.mike.clearMessageHistory() self.mike.says('!record') # THEN self.assertListEqual(['listing records for Mike (@%s) on ut42_bstjumps_u2:' % self.mike.id, '[1] 0:08:57.000 since %s' % JumperPlugin.getDateString(self.console.time()), '[2] 0:01:24.000 since %s' % JumperPlugin.getDateString(self.console.time())], self.mike.message_history)
def test_cmd_client_record_double_arguments(self): # GIVEN self.console.game.mapName = 'ut42_bstjumps_u2' # WHEN self.mike.clearMessageHistory() self.mike.says('!record bill jupiter') # THEN self.assertListEqual(['[1] 0:09:03.000 since %s' % JumperPlugin.getDateString(self.console.time())], self.mike.message_history)