def setUp(self): self.sleep_patcher = patch("time.sleep") self.sleep_mock = self.sleep_patcher.start() # create a FakeConsole parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString(r"""<configuration/>""") with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = { } # work around known bug in the Admin plugin which makes the _command property shared between all instances 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.console.screen = Mock() self.console.time = time.time self.console.upTime = Mock(return_value=3) self.console.cron.stop()
def setUp(self): # create a FakeConsole parser parser_ini_conf = CfgConfigParser() parser_ini_conf.loadFromString(r'''''') self.parser_main_conf = MainConfig(parser_ini_conf) with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_main_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) # create our plugin instance self.p = SpreePlugin(self.console, CfgConfigParser()) with logging_disabled(): from b3.fake import FakeClient self.mike = FakeClient(console=self.console, name="Mike", guid="MIKEGUID", groupBits=1) self.bill = FakeClient(console=self.console, name="Bill", guid="BILLGUID", groupBits=1)
def setUp(self): with logging_disabled(): # create a Iourt41 parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString("""<configuration><settings name="server"><set name="game_log"></set></settings></configuration>""") self.console = Iourt42Parser(self.parser_conf) self.console.startup() # load the admin plugin if B3version(b3_version) >= B3version("1.10dev"): admin_plugin_conf_file = '@b3/conf/plugin_admin.ini' else: admin_plugin_conf_file = '@b3/conf/plugin_admin.xml' with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, admin_plugin_conf_file) 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) # prepare a few players from b3.fake import FakeClient self.joe = FakeClient(self.console, name="Joe", exactName="Joe", guid="zaerezarezar", groupBits=1, team=TEAM_UNKNOWN, teamId=0, squad=0) self.simon = FakeClient(self.console, name="Simon", exactName="Simon", guid="qsdfdsqfdsqf", groupBits=0, team=TEAM_UNKNOWN, teamId=0, squad=0) self.reg = FakeClient(self.console, name="Reg", exactName="Reg", guid="qsdfdsqfdsqf33", groupBits=4, team=TEAM_UNKNOWN, teamId=0, squad=0) self.moderator = FakeClient(self.console, name="Moderator", exactName="Moderator", guid="sdf455ezr", groupBits=8, team=TEAM_UNKNOWN, teamId=0, squad=0) self.admin = FakeClient(self.console, name="Level-40-Admin", exactName="Level-40-Admin", guid="875sasda", groupBits=16, team=TEAM_UNKNOWN, teamId=0, squad=0) self.superadmin = FakeClient(self.console, name="God", exactName="God", guid="f4qfer654r", groupBits=128, team=TEAM_UNKNOWN, teamId=0, squad=0)
def setUp(self): self.parser_conf = MainConfig(CfgConfigParser(allow_no_value=True)) self.parser_conf.loadFromString(dedent(r"""""")) self.console = FakeConsole(self.parser_conf) self.console.gameName = 'f00' self.console.startup() with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin.onLoadConfig() self.adminPlugin.onStartup() self.evt_queue = [] # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) with logging_disabled(): from b3.fake import FakeClient # prepare a few players self.mike = FakeClient(self.console, name="Mike", exactName="Mike", guid="MIKEGUID", groupBits=16, ip='1.1.1.1') self.paul = FakeClient(self.console, name="Paul", exactName="Paul", guid="PAULGUID", groupBits=1, ip='2.2.2.2') self.john = FakeClient(self.console, name="John", exactName="John", guid="JOHNGUID", groupBits=0, ip='3.3.3.3') self.mary = FakeClient(self.console, name="Mary", exactName="Mary", guid="MARYGUID", groupBits=0, ip='4.4.4.4') self.conf = CfgConfigParser() self.p = IpbanPlugin(self.console, self.conf) # return some mock data when(self.p).getBanIps().thenReturn(['2.2.2.2', '6.6.6.6', '7.7.7.7']) when(self.p).getTempBanIps().thenReturn(['3.3.3.3', '8.8.8.8', '9.9.9.9'])
def setUp(self): # create a FakeConsole parser parser_ini_conf = CfgConfigParser() parser_ini_conf.loadFromString(r'''''') self.parser_main_conf = MainConfig(parser_ini_conf) with logging_disabled(): from tests.fake import FakeConsole self.console = FakeConsole(self.parser_main_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) # create our plugin instance self.p = SpreePlugin(self.console, CfgConfigParser()) with logging_disabled(): from tests.fake import FakeClient self.mike = FakeClient(console=self.console, name="Mike", guid="MIKEGUID", groupBits=1) self.bill = FakeClient(console=self.console, name="Bill", guid="BILLGUID", groupBits=1)
def setUp(self): with logging_disabled(): # create a Iourt41 parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString("""<configuration><settings name="server"><set name="game_log"></set></settings></configuration>""") self.console = Iourt41Parser(self.parser_conf) self.console.startup() # load the admin plugin if B3version(b3_version) >= B3version("1.10dev"): admin_plugin_conf_file = '@b3/conf/plugin_admin.ini' else: admin_plugin_conf_file = '@b3/conf/plugin_admin.xml' with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, admin_plugin_conf_file) self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) # when starting the PoweradminurtPlugin expects the game server to provide a few cvar values when(self.console).getCvar('timelimit').thenReturn(Cvar('timelimit', value=20)) when(self.console).getCvar('g_maxGameClients').thenReturn(Cvar('g_maxGameClients', value=16)) when(self.console).getCvar('sv_maxclients').thenReturn(Cvar('sv_maxclients', value=16)) when(self.console).getCvar('sv_privateClients').thenReturn(Cvar('sv_privateClients', value=0)) when(self.console).getCvar('g_allowvote').thenReturn(Cvar('g_allowvote', value=0)) # prepare a few players self.joe = FakeClient(self.console, name="Joe", exactName="Joe", guid="zaerezarezar", groupBits=1, team=TEAM_UNKNOWN, teamId=0, squad=0) self.simon = FakeClient(self.console, name="Simon", exactName="Simon", guid="qsdfdsqfdsqf", groupBits=0, team=TEAM_UNKNOWN, teamId=0, squad=0) self.reg = FakeClient(self.console, name="Reg", exactName="Reg", guid="qsdfdsqfdsqf33", groupBits=4, team=TEAM_UNKNOWN, teamId=0, squad=0) self.moderator = FakeClient(self.console, name="Moderator", exactName="Moderator", guid="sdf455ezr", groupBits=8, team=TEAM_UNKNOWN, teamId=0, squad=0) self.admin = FakeClient(self.console, name="Level-40-Admin", exactName="Level-40-Admin", guid="875sasda", groupBits=16, team=TEAM_UNKNOWN, teamId=0, squad=0) self.superadmin = FakeClient(self.console, name="God", exactName="God", guid="f4qfer654r", groupBits=128, team=TEAM_UNKNOWN, teamId=0, squad=0)
def setUp(self): """ran before each test""" self.conf = XmlConfigParser() self.conf.loadFromString(""" <configuration> </configuration> """) with logging_disabled(): self.parser = Arma3Parser(self.conf) self.parser.output = Mock() # mock Rcon self.evt_queue = [] def queue_event(evt): self.evt_queue.append(evt) self.queueEvent_patcher = patch.object(self.parser, "queueEvent", wraps=queue_event) self.queueEvent_mock = self.queueEvent_patcher.start() self.write_patcher = patch.object(self.parser, "write") self.write_mock = self.write_patcher.start() with logging_disabled(): self.parser.startup()
def setUp(self): # create a FakeConsole parser parser_ini_conf = CfgConfigParser() parser_ini_conf.loadFromString(r'''''') self.parser_main_conf = MainConfig(parser_ini_conf) with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_main_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) # simulate geolocation plugin registering events self.console.createEvent('EVT_CLIENT_GEOLOCATION_SUCCESS', 'Event client geolocation success') self.console.screen = Mock() self.console.time = time.time self.console.upTime = Mock(return_value=1000) self.console.cron.stop() self.conf = CfgConfigParser() self.conf.loadFromString(dedent(r""" [settings] announce: yes [messages] client_connect: ^7$name ^3from ^7$city ^3(^7$country^3) connected cmd_locate: ^7$name ^3is connected from ^7$city ^3(^7$country^3) cmd_locate_failed: ^7Could not locate ^1$name cmd_distance: ^7$name ^3is ^7$distance ^3km away from you cmd_distance_self: ^7Sorry, I'm not that smart...meh! cmd_distance_failed: ^7Could not compute distance with ^1$name cmd_isp: ^7$name ^3is using ^7$isp ^3as isp cmd_isp_failed: ^7Could not determine ^1$name ^7isp [commands] locate: user distance: user isp: mod """)) self.p = LocationPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() with logging_disabled(): from b3.fake import FakeClient self.mike = FakeClient(console=self.console, name="Mike", guid="MIKEGUID", groupBits=1) self.bill = FakeClient(console=self.console, name="Bill", guid="BILLGUID", groupBits=16) self.mike.location = LOCATION_MIKE self.bill.location = LOCATION_BILL
def setUp(self): # create a Iourt42 parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString(dedent(r""" <configuration> <settings name="server"> <set name="game_log"></set> </settings> </configuration> """)) 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('g_maxGameClients', value='/fake/basepath')) when(self.console).getCvar('fs_homepath').thenReturn(Cvar('sv_maxclients', 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() self.admin_plugin_conf = CfgConfigParser() self.admin_plugin_conf.loadFromString(dedent(r""" [warn] pm_global: yes alert_kick_num: 3 instant_kick_num: 5 tempban_num: 6 tempban_duration: 1d max_duration: 1d message: ^1WARNING^7 [^3$warnings^7]: $reason warn_delay: 15 reason: ^7too many warnings: $reason duration_divider: 30 alert: ^1ALERT^7: $name^7 auto-kick from warnings if not cleared [^3$warnings^7] $reason warn_command_abusers: no""")) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, self.admin_plugin_conf) 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) with logging_disabled(): from b3.fake import FakeClient # create some clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", team=TEAM_RED, groupBits=1) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", team=TEAM_BLUE, groupBits=1) self.mark = FakeClient(console=self.console, name="Mark", guid="markguid", team=TEAM_BLUE, groupBits=128) self.conf = CfgConfigParser() self.p = SpawnkillPlugin(self.console, self.conf)
def setUp(self): B3TestCase.setUp(self) logging.getLogger('output').setLevel(logging.DEBUG) with logging_disabled(): self.console.startup() self.conf = CfgConfigParser() self.p = ChatloggerPlugin(self.console, self.conf) ## prepare the mysql test database db = MySQLdb.connect(host=MYSQL_TEST_HOST, user=MYSQL_TEST_USER, passwd=MYSQL_TEST_PASSWORD) db.query("DROP DATABASE IF EXISTS %s" % MYSQL_TEST_DB) db.query("CREATE DATABASE %s CHARACTER SET utf8;" % MYSQL_TEST_DB) self.console.storage = DatabaseStorage( 'mysql://%s:%s@%s/%s' % (MYSQL_TEST_USER, MYSQL_TEST_PASSWORD, MYSQL_TEST_HOST, MYSQL_TEST_DB), self.console) self.console.storage.executeSql("@b3/sql/b3.sql") self.console.storage.executeSql(CHATLOGGER_SQL_FILE) when(self.console.config).get('b3', 'time_zone').thenReturn('GMT') self.p.setup_fileLogger = Mock() self.conf.loadFromString( dedent(""" [general] save_to_database: Yes save_to_file: no [file] logfile: @conf/chat.log rotation_rate: D [purge] max_age: 0 hour: 0 min: 0 """)) with logging_disabled(): self.p.onLoadConfig() self.p.onStartup() self.joe = FakeClient(self.console, name="Joe", guid="joe_guid", team=TEAM_RED) self.simon = FakeClient(self.console, name="Simon", guid="simon_guid", team=TEAM_BLUE) self.joe.connects(1) self.simon.connects(3) self.assertEqual(0, self.count_chatlog_lines()) self.assertEqual(0, self.count_cmdlog_lines())
def setUp(self): self.parser_conf = MainConfig(CfgConfigParser(allow_no_value=True)) self.parser_conf.loadFromString(dedent(r"""""")) self.console = FakeConsole(self.parser_conf) self.console.gameName = 'f00' self.console.startup() with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin.onLoadConfig() self.adminPlugin.onStartup() self.evt_queue = [] # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) with logging_disabled(): from b3.fake import FakeClient # prepare a few players self.mike = FakeClient(self.console, name="Mike", exactName="Mike", guid="MIKEGUID", groupBits=16, ip='1.1.1.1') self.paul = FakeClient(self.console, name="Paul", exactName="Paul", guid="PAULGUID", groupBits=1, ip='2.2.2.2') self.john = FakeClient(self.console, name="John", exactName="John", guid="JOHNGUID", groupBits=0, ip='3.3.3.3') self.mary = FakeClient(self.console, name="Mary", exactName="Mary", guid="MARYGUID", groupBits=0, ip='4.4.4.4') self.conf = CfgConfigParser() self.p = IpbanPlugin(self.console, self.conf) # return some mock data when(self.p).getBanIps().thenReturn(['2.2.2.2', '6.6.6.6', '7.7.7.7']) when(self.p).getTempBanIps().thenReturn( ['3.3.3.3', '8.8.8.8', '9.9.9.9'])
def setUp(self): # create a FakeConsole parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString(r"""<configuration/>""") with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} 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(""" [settings] min_level: mod min_level_global_manage: admin max_nicks: 3 interval: 30 """)) self.p = NickregPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() with logging_disabled(): from b3.fake import FakeClient self.senioradmin = FakeClient(console=self.console, name="SeniorAdmin", guid="SENIORADMIN", groupBits=64) self.admin = FakeClient(console=self.console, name="Admin", guid="ADMIN", groupBits=16) self.guest = FakeClient(console=self.console, name="Guest", guid="GUEST", groupBits=0) self.admin.connects("1") self.guest.connects("2") self.senioradmin.connects("3")
def setUp(self): B3TestCase.setUp(self) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') when(self.console).getPlugin("admin").thenReturn(self.adminPlugin) self.adminPlugin.onLoadConfig() self.adminPlugin.onStartup() self.conf = CfgConfigParser() self.p = WelcomePlugin(self.console, self.conf) self.joe = FakeClient(self.console, name="Joe", guid="joeguid", groupBits=1, team=b3.TEAM_RED) self.mike = FakeClient(self.console, name="Mike", guid="mikeguid", groupBits=1, team=b3.TEAM_RED) self.bill = FakeClient(self.console, name="Bill", guid="billguid", groupBits=1, team=b3.TEAM_RED) self.superadmin = FakeClient(self.console, name="SuperAdmin", guid="superadminguid", groupBits=128, team=b3.TEAM_RED)
def setUp(self): CallvoteTestCase.setUp(self) with logging_disabled(): from b3.fake import FakeClient # create some clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", team=TEAM_RED, groupBits=128) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", team=TEAM_BLUE, groupBits=16) self.mark = FakeClient(console=self.console, name="Mark", guid="markguid", team=TEAM_RED, groupBits=2) self.sara = FakeClient(console=self.console, name="Sara", guid="saraguid", team=TEAM_SPEC, groupBits=1) self.conf = CfgConfigParser() self.p = CallvotePlugin(self.console, self.conf)
def setUp(self): super(Test_autoassign, self).setUp() self.conf = CfgConfigParser() self.conf.loadFromString(""" [preferences] no_autoassign_level: 20 autoassign: On team_swap_threshold: 2 """) with logging_disabled(): self.p = Poweradminbf4Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() self.assertTrue(self.p._autoassign) self.assertEqual(20, self.p._no_autoassign_level) def my_write(data): if data[0] == 'admin.movePlayer': self.console.routeFrostbitePacket( ['player.onTeamChange', data[1], data[2], data[3]]) return ['OK'] else: return Mock() self.write_patcher = patch.object(self.console, "write", side_effect=my_write) self.write_mock = self.write_patcher.start()
def setUp(self): # create a FakeConsole parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString(r"""<configuration/>""") with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin)
def setUp(self): """ This method is called before each test. It is meant to set up the SUT (System Under Test) in a manner that will ease the testing of its features. """ with logging_disabled(): # The B3TestCase class provides us a working B3 environment that does not require any database connexion. # The B3 console is then accessible with self.console B3TestCase.setUp(self) # set additional B3 console stuff that will be used by the XLRstats plugin self.console.gameName = "MyGame" self.parser_conf.add_section('b3') self.parser_conf.set('b3', 'time_zone', 'GMT') # we make our own AdminPlugin and make sure it is the one return in any case self.adminPlugin = AdminPlugin(self.console, DEFAULT_ADMIN_CONFIG_FILE) when(self.console).getPlugin("admin").thenReturn(self.adminPlugin) self.adminPlugin.onLoadConfig() self.adminPlugin.onStartup() # We need a config for the Xlrstats plugin self.conf = CfgConfigParser() # It is an empty config but we can fill it up later # Now we create an instance of the SUT (System Under Test) which is the XlrstatsPlugin self.p = XlrstatsPlugin(self.console, self.conf) when(self.console).getPlugin("xlrstats").thenReturn(self.p) # create a client object to represent the game server with patch("b3.clients.Clients.authorizeClients"): # we patch authorizeClients or it will spawn a thread # with a 5 second timer self.console.clients.newClient(-1, name="WORLD", guid="WORLD", hide=True)
def setUp(self): super(Test_autoassign, self).setUp() self.conf = CfgConfigParser() self.conf.loadFromString(""" [preferences] no_autoassign_level: 20 autoassign: On team_swap_threshold: 2 """) with logging_disabled(): self.p = Poweradminbf3Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() self.assertTrue(self.p._autoassign) self.assertEqual(20, self.p._no_autoassign_level) def my_write(data): if data[0] == 'admin.movePlayer': self.console.routeFrostbitePacket(['player.onTeamChange', data[1], data[2], data[3]]) return ['OK'] else: return Mock() self.write_patcher = patch.object(self.console, "write", side_effect=my_write) self.write_mock = self.write_patcher.start()
def setUp(self): CalladminTestCase.setUp(self) self.conf = CfgConfigParser() self.conf.loadFromString(dedent(r""" [teamspeak] ip: 127.0.0.1 port: 10011 serverid: 1 username: fakeusername password: fakepassword msg_groupid: -1 [settings] treshold: 3600 useirc: no [commands] calladmin: user """)) self.p = CalladminPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() with logging_disabled(): from b3.fake import FakeClient self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", groupBits=1) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", groupBits=16)
def setUp(self): B3TestCase.setUp(self) with logging_disabled(): admin_conf = CfgConfigParser() admin_plugin = AdminPlugin(self.console, admin_conf) admin_plugin.onLoadConfig() admin_plugin.onStartup() when(self.console).getPlugin('admin').thenReturn(admin_plugin) conf = CfgConfigParser() conf.loadFromString(dedent(r""" [commands] mapstats-stats: 0 testscore-ts: 0 topstats-top: 0 topxp: 0 [settings] startPoints: 100 resetscore: no resetxp: no show_awards: no show_awards_xp: no """)) self.p = StatsPlugin(self.console, conf) self.p.onLoadConfig() self.p.onStartup() self.joe = FakeClient(self.console, name="Joe", guid="joeguid", groupBits=1, team=TEAM_RED) self.mike = FakeClient(self.console, name="Mike", guid="mikeguid", groupBits=1, team=TEAM_RED) self.joe.connects(1) self.mike.connects(2)
def setUp(self): # create a FakeConsole parser parser_ini_conf = CfgConfigParser() parser_ini_conf.loadFromString(r'''''') self.parser_main_conf = MainConfig(parser_ini_conf) with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_main_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin when(self.console).getPlugin('admin').thenReturn(self.adminPlugin) # simulate geolocation plugin registering events self.console.createEvent('EVT_CLIENT_GEOLOCATION_SUCCESS', 'Event client geolocation success') self.console.screen = Mock() self.console.time = time.time self.console.upTime = Mock(return_value=1000) self.console.cron.stop() # create our plugin instance self.p = CountryfilterPlugin(self.console, CfgConfigParser()) with logging_disabled(): from b3.fake import FakeClient self.mike = FakeClient(console=self.console, name="Mike", guid="MIKEGUID", ip='1.2.3.4', groupBits=0) self.bill = FakeClient(console=self.console, name="Bill", guid="BILLGUID", ip='2.3.4.5', groupBits=0) self.mike.location = LOCATION_MIKE self.bill.location = LOCATION_BILL
def setUp(self): Bf3TestCase.setUp(self) self.conf = CfgConfigParser() with logging_disabled(): self.p = Poweradminbf3Plugin(self.console, self.conf) when(self.console).write(('vars.roundStartPlayerCount',)).thenReturn(['0']) self.scrambleTeams_mock = self.p._scrambler.scrambleTeams = Mock(name="scrambleTeams", wraps=self.p._scrambler.scrambleTeams) self.scrambleTeams_mock.reset_mock()
def setUp(self): B3TestCase.setUp(self) logging.getLogger('output').setLevel(logging.DEBUG) with logging_disabled(): self.console.startup() self.conf = CfgConfigParser() self.p = ChatloggerPlugin(self.console, self.conf) ## prepare the mysql test database db = MySQLdb.connect(host=MYSQL_TEST_HOST, user=MYSQL_TEST_USER, passwd=MYSQL_TEST_PASSWORD) db.query("DROP DATABASE IF EXISTS %s" % MYSQL_TEST_DB) db.query("CREATE DATABASE %s CHARACTER SET utf8;" % MYSQL_TEST_DB) self.console.storage = DatabaseStorage( 'mysql://%s:%s@%s/%s' % (MYSQL_TEST_USER, MYSQL_TEST_PASSWORD, MYSQL_TEST_HOST, MYSQL_TEST_DB), self.console) self.console.storage.executeSql("@b3/sql/b3.sql") self.console.storage.executeSql(CHATLOGGER_SQL_FILE) when(self.console.config).get('b3', 'time_zone').thenReturn('GMT') self.p.setup_fileLogger = Mock() self.conf.loadFromString(dedent(""" [general] save_to_database: Yes save_to_file: no [file] logfile: @conf/chat.log rotation_rate: D [purge] max_age: 0 hour: 0 min: 0 """)) with logging_disabled(): self.p.onLoadConfig() self.p.onStartup() self.joe = FakeClient(self.console, name="Joe", guid="joe_guid", team=TEAM_RED) self.simon = FakeClient(self.console, name="Simon", guid="simon_guid", team=TEAM_BLUE) self.joe.connects(1) self.simon.connects(3) self.assertEqual(0, self.count_chatlog_lines()) self.assertEqual(0, self.count_cmdlog_lines())
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 setUp(self): ChatloggerTestCase.setUp(self) with logging_disabled(): self.console.startup() self.conf = CfgConfigParser() self.p = ChatloggerPlugin(self.console, self.conf) when(self.console.config).get('b3', 'time_zone').thenReturn('GMT') self.conf.loadFromString( dedent(""" [general] save_to_database: no save_to_file: yes [file] logfile: @conf/chat.log rotation_rate: D [purge] max_age: 0 hour: 0 min: 0 """)) self.temp_conf_folder = mkdtemp(suffix="b3_conf") when(b3).getConfPath(decode=ANY, conf=None).thenReturn(self.temp_conf_folder) with logging_disabled(): self.p.onLoadConfig() self.p.onStartup() self.chat_log_file = os.path.join(self.temp_conf_folder, 'chat.log') with logging_disabled(): self.joe = FakeClient(self.console, name="Joe", guid="joe_guid", team=TEAM_RED) self.simon = FakeClient(self.console, name="Simon", guid="simon_guid", team=TEAM_BLUE) self.joe.connects(1) self.simon.connects(3)
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) with logging_disabled(): from b3.fake import FakeClient # create some clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", team=TEAM_RED, groupBits=128) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", team=TEAM_BLUE, groupBits=16) self.mark = FakeClient(console=self.console, name="Mark", guid="markguid", team=TEAM_RED, groupBits=2) self.sara = FakeClient(console=self.console, name="Sara", guid="saraguid", team=TEAM_SPEC, groupBits=1) self.conf = CfgConfigParser() self.p = CallvotePlugin(self.console, self.conf)
def setUp(self): ChatloggerTestCase.setUp(self) with logging_disabled(): self.console.startup() self.conf = CfgConfigParser() self.p = ChatloggerPlugin(self.console, self.conf) when(self.console.config).get('b3', 'time_zone').thenReturn('GMT') self.p.setup_fileLogger = Mock()
def setUp(self): Bf4TestCase.setUp(self) self.conf = CfgConfigParser() with logging_disabled(): self.p = Poweradminbf4Plugin(self.console, self.conf) when(self.console).write( ('vars.roundStartPlayerCount', )).thenReturn(['0']) self.scrambleTeams_mock = self.p._scrambler.scrambleTeams = Mock( name="scrambleTeams", wraps=self.p._scrambler.scrambleTeams) self.scrambleTeams_mock.reset_mock()
def setUp(self): with logging_disabled(): CustomcommandsTestCase.setUp(self) self.conf = CfgConfigParser() self.p = CustomcommandsPlugin(self.console, self.conf) self.guest = FakeClient(console=self.console, name="Guest", guid="GuestGUID", pbid="GuestPBID", group_bits=0) self.player1 = FakeClient(console=self.console, name="player1", guid="player1GUID", pbid="player1PBID", group_bits=1) self.player1.connects(cid="CID1") self.player2 = FakeClient(console=self.console, name="player2", guid="player2GUID", pbid="player2PBID", group_bits=1) self.player2.connects(cid="CID2") self.guest.connects(cid="guestCID")
def setUp(self): Bf4TestCase.setUp(self) self.conf = CfgConfigParser() self.conf.loadFromString("""[commands] endround: 20 """) with logging_disabled(): self.p = Poweradminbf4Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() self.superadmin.connects('superadmin')
def setUp(self): Bf4TestCase.setUp(self) self.conf = CfgConfigParser() self.conf.loadFromString("""[commands] vipload: 20 """) with logging_disabled(): self.p = Poweradminbf4Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() self.moderator.connects("moderator")
def setUp(self): testcase_lock.acquire() self.addCleanup(cleanUp) flush_console_streams() # create a FakeConsole parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString(r"""<configuration/>""") with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') 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.console.screen = Mock() self.console.time = time.time self.console.upTime = Mock(return_value=3)
def setUp(self): UrtauthTestCase.setUp(self) with logging_disabled(): from b3.fake import FakeClient # create some clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", groupBits=1) self.mark = FakeClient(console=self.console, name="Mark", guid="markguid", groupBits=1, pbid='markguid') self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", groupBits=2) self.npc = FakeClient(console=self.console, name="NPC", guid="NPCGUID", groupBits=0, bot=True)
def setUp(self): super(Test_cmd_idle, self).setUp() self.conf = CfgConfigParser() self.conf.loadFromString("""[commands] idle: 40 """) with logging_disabled(): self.p = Poweradminbf4Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() self.p.error = Mock(wraps=self.p.error) logging.getLogger('output').setLevel(logging.DEBUG)
def setUp(self): super(Test_cmd_idle, self).setUp() self.conf = CfgConfigParser() self.conf.loadFromString("""[commands] idle: 40 """) with logging_disabled(): self.p = Poweradminbf3Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() self.p.error = Mock(wraps=self.p.error) logging.getLogger('output').setLevel(logging.DEBUG)
def setUp(self): JumperTestCase.setUp(self) with logging_disabled(): from b3.fake import FakeClient # create some clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", team=TEAM_FREE, groupBits=1) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", team=TEAM_FREE, groupBits=1) self.mike.connects("1") self.bill.connects("2") # force fake mapname self.console.game.mapName = 'ut42_bstjumps_u2'
def setUp(self): TranslatorTestCase.setUp(self) self.conf = CfgConfigParser() self.conf.loadFromString( dedent( r""" [settings] default_source_language: it default_target_language: en display_translator_name: no translator_name: ^7[^1T^7] min_sentence_length: 6 microsoft_client_id: fakeclientid microsoft_client_secret: fakeclientsecret [commands] translate: reg translast: reg transauto: reg translang: reg """ ) ) self.p = TranslatorPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() with logging_disabled(): from b3.fake import FakeClient # create 2 fake clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", groupBits=2) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", groupBits=2) # connect the clients self.mike.connects("1") self.bill.connects("2") # define some translations for !translate command when(self.p).translate("it", "en", "Messaggio di prova").thenReturn("Test message") when(self.p).translate("en", "fr", "Test message").thenReturn("Message de test") when(self.p).translate("de", "es", "Test Meldungs").thenReturn("Mensaje de prueba") when(self.p).translate("nl", "de", "Test Bericht").thenReturn("Test Meldungs") when(self.p).translate("fr", "en", "Message de test").thenReturn("Test message") when(self.p).translate("it", "es", "Messaggio di prova").thenReturn("Mensaje de prueba") # define some translations for !transauto and !translast command when(self.p).translate("", "en", "Messaggio di prova").thenReturn("Test message") when(self.p).translate("", "fr", "Messaggio di prova").thenReturn("Message de test")
def setUp(self): # create a BF3 parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString("""<configuration />""") with logging_disabled(): self.console = Bf3Parser(self.parser_conf) # alter a few settings to speed up the tests self.console.sayqueue_get_timeout = 0 self.console._message_delay = 0 with logging_disabled(): self.console.startup() # load the admin plugin with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin.onStartup() # make sure the admin plugin obtained by other plugins is our admin plugin def getPlugin(name): if name == 'admin': return self.adminPlugin else: return self.console.getPlugin(name) self.console.getPlugin = getPlugin self.console.patch_b3_admin_plugin() # prepare a few players with logging_disabled(): from b3.fake import FakeClient self.joe = FakeClient(self.console, name="Joe", exactName="Joe", guid="zaerezarezar", groupBits=1, team=TEAM_UNKNOWN, teamId=0, squad=0) self.simon = FakeClient(self.console, name="Simon", exactName="Simon", guid="qsdfdsqfdsqf", groupBits=0, team=TEAM_UNKNOWN, teamId=0, squad=0) self.reg = FakeClient(self.console, name="Reg", exactName="Reg", guid="qsdfdsqfdsqf33", groupBits=4, team=TEAM_UNKNOWN, teamId=0, squad=0) self.moderator = FakeClient(self.console, name="Moderator", exactName="Moderator", guid="sdf455ezr", groupBits=8, team=TEAM_UNKNOWN, teamId=0, squad=0) self.admin = FakeClient(self.console, name="Level-40-Admin", exactName="Level-40-Admin", guid="875sasda", groupBits=16, team=TEAM_UNKNOWN, teamId=0, squad=0) self.superadmin = FakeClient(self.console, name="God", exactName="God", guid="f4qfer654r", groupBits=128, team=TEAM_UNKNOWN, teamId=0, squad=0)
def setUp(self): # create a FakeConsole parser self.parser_conf = XmlConfigParser() self.parser_conf.loadFromString(r"""<configuration/>""") with logging_disabled(): from b3.fake import FakeConsole self.console = FakeConsole(self.parser_conf) with logging_disabled(): self.adminPlugin = AdminPlugin(self.console, '@b3/conf/plugin_admin.ini') self.adminPlugin._commands = {} 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(""" [settings] min_level: mod min_level_global_manage: admin max_nicks: 3 interval: 30 """)) self.p = NickregPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() with logging_disabled(): from b3.fake import FakeClient self.senioradmin = FakeClient(console=self.console, name="SeniorAdmin", guid="SENIORADMIN", groupBits=64) self.admin = FakeClient(console=self.console, name="Admin", guid="ADMIN", groupBits=16) self.guest = FakeClient(console=self.console, name="Guest", guid="GUEST", groupBits=0) self.admin.connects("1") self.guest.connects("2") self.senioradmin.connects("3")
def setUp(self): CustomcommandsTestCase.setUp(self) self.conf = CfgConfigParser() self.p = CustomcommandsPlugin(self.console, self.conf) with logging_disabled(): from b3.fake import FakeClient self.guest = FakeClient(console=self.console, name="Guest", guid="GuestGUID", pbid="GuestPBID", group_bits=0) self.user = FakeClient(console=self.console, name="User", guid="UserGUID", pbid="UserPBID", group_bits=1) self.regular = FakeClient(console=self.console, name="Regular", guid="RegularGUID", pbid="RegularPBID", group_bits=2) self.mod = FakeClient(console=self.console, name="Moderator", guid="ModeratorGUID", pbid="ModeratorPBID", group_bits=8) self.admin = FakeClient(console=self.console, name="Admin", guid="AdminGUID", pbid="AdminPBID", group_bits=16) self.fulladmin = FakeClient(console=self.console, name="FullAdmin", guid="FullAdminGUID", pbid="FullAdminPBID", group_bits=32) self.senioradmin = FakeClient(console=self.console, name="SeniorAdmin", guid="SeniorAdminGUID", pbid="SeniorAdminPBID", group_bits=64) self.superadmin = FakeClient(console=self.console, name="SuperAdmin", guid="SuperAdminGUID", pbid="SuperAdminPBID", group_bits=128)
def setUp(self): B3TestCase.setUp(self) logging.getLogger('output').setLevel(logging.DEBUG) with logging_disabled(): self.console.startup() self.conf = CfgConfigParser() self.p = ChatloggerPlugin(self.console, self.conf) when(self.console.config).get('b3', 'time_zone').thenReturn('GMT') self.conf.loadFromString(dedent(""" [general] save_to_database: no save_to_file: yes [file] logfile: @conf/chat.log rotation_rate: D [purge] max_age: 0 hour: 0 min: 0 """)) self.temp_conf_folder = mkdtemp(suffix="b3_conf") when(b3).getConfPath().thenReturn(self.temp_conf_folder) with logging_disabled(): self.p.onLoadConfig() self.p.onStartup() self.chat_log_file = os.path.join(self.temp_conf_folder, 'chat.log') with logging_disabled(): self.joe = FakeClient(self.console, name="Joe", guid="joe_guid", team=TEAM_RED) self.simon = FakeClient(self.console, name="Simon", guid="simon_guid", team=TEAM_BLUE) self.joe.connects(1) self.simon.connects(3)
def setUp(self): TranslatorTestCase.setUp(self) self.conf = CfgConfigParser() self.conf.loadFromString(dedent(r""" [settings] default_source_language: it default_target_language: en display_translator_name: no translator_name: ^7[^1T^7] min_sentence_length: 6 microsoft_client_id: fakeclientid microsoft_client_secret: fakeclientsecret [commands] translate: reg translast: reg transauto: reg translang: reg """)) self.p = TranslatorPlugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() with logging_disabled(): from b3.fake import FakeClient # create 2 fake clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", groupBits=2) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", groupBits=2) # connect the clients self.mike.connects("1") self.bill.connects("2") # define some translations for !translate command when(self.p).translate('it', 'en', 'Messaggio di prova').thenReturn('Test message') when(self.p).translate('en', 'fr', 'Test message').thenReturn('Message de test') when(self.p).translate('de', 'es', 'Test Meldungs').thenReturn('Mensaje de prueba') when(self.p).translate('nl', 'de', 'Test Bericht').thenReturn('Test Meldungs') when(self.p).translate('fr', 'en', 'Message de test').thenReturn('Test message') when(self.p).translate('it', 'es', 'Messaggio di prova').thenReturn('Mensaje de prueba') # define some translations for !transauto and !translast command when(self.p).translate('', 'en', 'Messaggio di prova').thenReturn('Test message') when(self.p).translate('', 'fr', 'Messaggio di prova').thenReturn('Message de test')
def _assert_scrambleTeams_has_calls_on_level_started( self, scramble_mode, gamemode_blacklist, next_gamemode, next_round_number, expected_calls): # Given self.conf.loadFromString(""" [scrambler] mode: %s strategy: random gamemodes_blacklist: %s""" % (scramble_mode, '|'.join(gamemode_blacklist))) with logging_disabled(): self.p.onLoadConfig() self.p.onStartup() # Make sure context is self.assertEqual(gamemode_blacklist, self.p._autoscramble_gamemode_blacklist) if scramble_mode == 'round': self.assertTrue(self.p._autoscramble_rounds) self.assertFalse(self.p._autoscramble_maps) elif scramble_mode == 'map': self.assertFalse(self.p._autoscramble_rounds) self.assertTrue(self.p._autoscramble_maps) elif scramble_mode == 'off': self.assertFalse(self.p._autoscramble_rounds) self.assertFalse(self.p._autoscramble_maps) else: self.fail("unsupported scramble mode : " + scramble_mode) # When self.joe.connects('joe') when(self.console).write(('serverInfo', )).thenReturn([ 'i3D.net - BigBrotherBot #3 (DE)', '1', '16', next_gamemode, 'MP_007', str(next_round_number), '2', '4', '0', '0', '0', '0', '50', '', 'false', 'true', 'false', '790596', '1484', '', '', '', 'EU', 'AMS', 'DE', 'false' ]) self.console.routeFrostbitePacket([ 'server.onLevelLoaded', 'MP_007', next_gamemode, str(next_round_number), '2' ]) when(self.console).getClient('joe').thenReturn(self.joe) self.console.routeFrostbitePacket(['player.onSpawn', 'joe', '1']) # Then self.scrambleTeams_mock.assert_has_calls(expected_calls)
def setUp(self): JumperTestCase.setUp(self) with logging_disabled(): from b3.fake import FakeClient # create some clients self.mike = FakeClient(console=self.console, name="Mike", guid="mikeguid", team=TEAM_FREE, groupBits=128) self.bill = FakeClient(console=self.console, name="Bill", guid="billguid", team=TEAM_FREE, groupBits=1) self.mark = FakeClient(console=self.console, name="Mark", guid="markguid", team=TEAM_FREE, groupBits=1) self.mike.connects("1") self.bill.connects("2") self.mark.connects("3") self.console.game.mapName = 'ut42_bstjumps_u2' self.console.parseLine('''ClientJumpRunStarted: 1 - way: 1''') self.console.parseLine('''ClientJumpRunStopped: 1 - way: 1 - time: 537000''') self.console.parseLine('''ClientJumpRunStarted: 2 - way: 1''') self.console.parseLine('''ClientJumpRunStopped: 2 - way: 1 - time: 349000''') self.console.parseLine('''ClientJumpRunStarted: 3 - way: 1''') self.console.parseLine('''ClientJumpRunStopped: 3 - way: 1 - time: 122000''') self.console.parseLine('''ClientJumpRunStarted: 1 - way: 2''') self.console.parseLine('''ClientJumpRunStopped: 1 - way: 2 - time: 84000''') self.console.parseLine('''ClientJumpRunStarted: 2 - way: 2''') self.console.parseLine('''ClientJumpRunStopped: 2 - way: 2 - time: 91000''') self.console.parseLine('''ClientJumpRunStarted: 3 - way: 2''') self.console.parseLine('''ClientJumpRunStopped: 3 - way: 2 - time: 177000''') self.console.game.mapName = 'ut42_jupiter' self.console.parseLine('''ClientJumpRunStarted: 1 - way: 1''') self.console.parseLine('''ClientJumpRunStopped: 1 - way: 1 - time: 123000''') self.console.parseLine('''ClientJumpRunStarted: 2 - way: 1''') self.console.parseLine('''ClientJumpRunStopped: 2 - way: 1 - time: 543000''') self.console.parseLine('''ClientJumpRunStarted: 1 - way: 2''') self.console.parseLine('''ClientJumpRunStopped: 1 - way: 2 - time: 79000''') when(self.console).getMaps().thenReturn(['ut4_abbey', 'ut4_abbeyctf', 'ut4_algiers', 'ut4_ambush', 'ut4_austria', 'ut42_bstjumps_u2', 'ut4_bohemia', 'ut4_casa', 'ut4_cascade', 'ut4_commune', 'ut4_company', 'ut4_crossing', 'ut4_docks', 'ut4_dressingroom', 'ut4_eagle', 'ut4_elgin', 'ut4_firingrange', 'ut4_ghosttown_rc4', 'ut4_harbortown', 'ut4_herring', 'ut4_horror', 'ut42_jupiter', 'ut4_kingdom', 'ut4_kingpin', 'ut4_mandolin', 'ut4_mars_b1', 'ut4_maya', 'ut4_oildepot', 'ut4_prague', 'ut4_prague_v2', 'ut4_raiders', 'ut4_ramelle', 'ut4_ricochet', 'ut4_riyadh', 'ut4_sanc', 'ut4_snoppis', 'ut4_suburbs', 'ut4_subway', 'ut4_swim', 'ut4_thingley', 'ut4_tombs', 'ut4_toxic', 'ut4_tunis', 'ut4_turnpike', 'ut4_uptown'])
def setUp(self): B3TestCase.setUp(self) with logging_disabled(): admin_conf = CfgConfigParser() admin_plugin = AdminPlugin(self.console, admin_conf) admin_plugin.onLoadConfig() admin_plugin.onStartup() when(self.console).getPlugin('admin').thenReturn(admin_plugin) conf = CfgConfigParser() conf.loadFromString( dedent(r""" [commands] mapstats-stats: 0 testscore-ts: 0 topstats-top: 0 topxp: 0 [settings] startPoints: 100 resetscore: no resetxp: no show_awards: no show_awards_xp: no """)) self.p = StatsPlugin(self.console, conf) self.p.onLoadConfig() self.p.onStartup() self.joe = FakeClient(self.console, name="Joe", guid="joeguid", groupBits=1, team=TEAM_RED) self.mike = FakeClient(self.console, name="Mike", guid="mikeguid", groupBits=1, team=TEAM_RED) self.joe.connects(1) self.mike.connects(2)
def setUpClass(cls): # less logging logging.getLogger('output').setLevel(logging.ERROR) with logging_disabled(): from b3.parsers.frostbite2.abstractParser import AbstractParser from b3.fake import FakeConsole AbstractParser.__bases__ = (FakeConsole, ) # Now parser inheritance hierarchy is : # Bf3Parser -> AbstractParser -> FakeConsole -> Parser # add method changes_team(newTeam, newSquad=None) to FakeClient def changes_team(self, newTeam, newSquad=None): self.console.OnPlayerTeamchange( None, data=[self.cid, newTeam, newSquad if newSquad else self.squad]) from b3.fake import FakeClient FakeClient.changes_team = changes_team
def setUp(self): super(Test_cmd_changeteam, self).setUp() self.conf = CfgConfigParser() self.conf.loadFromString(""" [commands] changeteam: mod """) with logging_disabled(): self.p = Poweradminbf4Plugin(self.console, self.conf) self.p.onLoadConfig() self.p.onStartup() def my_write(data): if data[0] == 'admin.movePlayer': self.console.routeFrostbitePacket(['player.onTeamChange', data[1], data[2], data[3]]) return ['OK'] else: return Mock() self.write_patcher = patch.object(self.console, "write", side_effect=my_write) self.write_mock = self.write_patcher.start()