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))
Пример #2
0
    def init(self, xml_content, cfg_content):
        xml_parser = XmlConfigParser()
        xml_parser.loadFromString(xml_content)
        conf_xml = MainConfig(xml_parser)
        cfg_parser = CfgConfigParser(allow_no_value=True)
        cfg_parser.loadFromString(cfg_content)
        conf_cfg = MainConfig(cfg_parser)

        return conf_xml, conf_cfg
Пример #3
0
 def setUp(self):
     self.parser_conf = XmlConfigParser()
     self.parser_conf.loadFromString("""<configuration>
             <settings name="server">
                 <set name="game_log"/>
             </settings>
         </configuration>""")
     self.console = EtParser(self.parser_conf)
     self.console.write = Mock()
     self.console.PunkBuster = None  # no Punkbuster support in that game
Пример #4
0
 def test_loading_invalid_conf(self):
     config = XmlConfigParser()
     try:
         config.loadFromString(r"""<configuration """)
     except ConfigFileNotValid as e:
         self.assertEqual("'unclosed token: line 1, column 0'", str(e))
     except Exception as e:
         self.fail("unexpected exception %r" % e)
     else:
         self.fail("expecting exception")
Пример #5
0
 def setUp(self):
     B3TestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.setXml("""
         <configuration plugin="test">
             <settings name="settings">
                 <set name="output_file">@conf/status.xml</set>
             </settings>
         </configuration>
     """)
Пример #6
0
    def init_plugin(self, config_content=None):
        conf = None
        if config_content:
            conf = XmlConfigParser()
            conf.setXml(config_content)
        elif default_plugin_content:
            conf = XmlConfigParser()
            conf.setXml(default_plugin_content)
        else:
            unittest.skip("cannot get default plugin config file at %s" % default_plugin_file)

        self.p = AdvPlugin(self.console, conf)
        self.p.save = Mock()
        self.conf = self.p.config
        self.log.setLevel(logging.DEBUG)
        self.log.info("============================= Adv plugin: loading config ============================")
        self.p.onLoadConfig()
        self.log.info("============================= Adv plugin: starting  =================================")
        self.p.onStartup()
Пример #7
0
 def setUp(self):
     BFHTestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = BfhParser(self.conf)
     self.p1 = FakeClient(self.parser, name="Player1")
     self.p2 = FakeClient(self.parser, name="Player2")
Пример #8
0
 def setUp(self):
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = ConcretegameParser(self.conf)
     self.parser._big_msg_duration = '3.1'
     # setup context
     self.joe = self.parser.clients.newClient(cid='joe', name='joe', guid="bbbbbbbb5555555")
Пример #9
0
 def setUp(self):
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""<configuration></configuration>""")
     self.parser = Arma2Parser(self.conf)
     self.parser.output = Mock()
     self.parser.startup()
     self.player = self.parser.clients.newClient(cid="4",
                                                 guid="theGuid",
                                                 name="theName",
                                                 ip="11.22.33.44")
Пример #10
0
 def test_no_client_table(self, pluginCronTab_mock):
     conf = XmlConfigParser()
     conf.setXml(r"""<configuration plugin="status">
         <settings name="settings">
             <set name="interval">60</set>
             <set name="output_file">~/status.xml</set>
         </settings>
     </configuration>""")
     self.p = StatusPlugin(self.console, conf)
     self.p.onLoadConfig()
     self.assertEqual("current_clients", self.p._clientTable)
Пример #11
0
 def _assert(self, conf_data=None, expected=None):
     self.parser.config = XmlConfigParser()
     self.parser.config.loadFromString("""
         <configuration>
             <settings name="bf3">%s</settings>
         </configuration>
         """ % (('<set name="max_say_line_length">%s</set>' %
                 conf_data) if conf_data is not None else ''))
     Bf3Parser.load_conf_max_say_line_length(self.parser)
     if expected:
         self.assertEqual(expected, self.parser._settings['line_length'])
Пример #12
0
 def _test_message_delay(self, conf_data=None, expected=None):
     self.parser.config = XmlConfigParser()
     self.parser.config.loadFromString("""
         <configuration>
             <settings name="bf3">%s</settings>
         </configuration>
         """ % (('<set name="message_delay">%s</set>' %
                 conf_data) if conf_data is not None else ''))
     Bf3Parser.load_config_message_delay(self.parser)
     if expected:
         self.assertEqual(expected, self.parser._settings['message_delay'])
Пример #13
0
    def setUp(self):
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""<configuration/>""")
        self.parser = ConcretegameParser(self.conf)

        self.MESSAGE_DELAY__DEFAULT = self.parser._message_delay
        self.MESSAGE_DELAY__MIN = .5
        self.MESSAGE_DELAY__MAX = 3

        log = logging.getLogger('output')
        log.setLevel(logging.DEBUG)
Пример #14
0
    def setUp(self):
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = ConcretegameParser(self.conf)
        self.parser._big_msg_duration = '3.1'

        self.write_patcher = patch.object(AbstractParser, 'write')
        self.write_mock = self.write_patcher.start()
Пример #15
0
 def setUp(self):
     BFHTestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = BfhParser(self.conf)
     self.foobar = self.parser.clients.newClient(cid='Foobar',
                                                 name='Foobar',
                                                 guid="FoobarGuid")
Пример #16
0
 def setUp(self):
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = Bf3Parser(self.conf)
     self.parser.startup()
     # mock parser queueEvent method so we can make assertions on it later on
     self.parser.queueEvent = Mock(name="queueEvent method")
     self.joe = Mock(name="Joe", spec=Client)
Пример #17
0
    def setUp(self):
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""<configuration/>""")
        self.parser = ConcretegameParser(self.conf)

        self.MAX_SAY_LINE_LENGTH__MIN = 20
        self.MAX_SAY_LINE_LENGTH__MAX = self.parser.SAY_LINE_MAX_LENGTH
        self.MAX_SAY_LINE_LENGTH__DEFAULT = self.parser._settings[
            'line_length']

        log = logging.getLogger('output')
        log.setLevel(logging.DEBUG)
Пример #18
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()
Пример #19
0
 def setUp(self):
     self.conf = XmlConfigParser()
     self.conf.loadFromString("""
             <configuration>
             </configuration>
         """)
     self.parser = ConcretegameParser(self.conf)
     # setup context
     self.foobar = self.parser.clients.newClient(cid='Foobar', name='Foobar', guid="aaaaaaa5555555")
     self.joe = self.parser.clients.newClient(cid='joe', name='joe', guid="bbbbbbbb5555555")
     self.jack = self.parser.clients.newClient(cid='jack', name='jack', guid="ccccccccc5555555")
     self.jacky = self.parser.clients.newClient(cid='jacky', name='jacky', guid="ddddddddd5555555")
     self.p123456 = self.parser.clients.newClient(cid='123456', name='123456', guid="eeeeeee5555555")
Пример #20
0
 def init_plugin(self, config_content):
     self.conf = XmlConfigParser()
     self.conf.setXml(config_content)
     self.p = CensorPlugin(self.console, self.conf)
     self.log.setLevel(logging.DEBUG)
     self.log.info(
         "============================= Censor plugin: loading config ============================"
     )
     self.p.onLoadConfig()
     self.log.info(
         "============================= Censor plugin: starting  ================================="
     )
     self.p.onStartup()
 def test_restart_with_delay():
     conf = XmlConfigParser()
     conf.setXml("""
     <configuration>
         <restart name="at restart + 7s" delay="7s">
             <rcon>say "we just restarted 7s ago"</rcon>
         </restart>
     </configuration>
     """)
     fakeConsole.gameName = 'urt41'
     p3 = SchedulerPlugin(fakeConsole, conf)
     p3.onLoadConfig()
     p3.onStartup()
 def test_hourly():
     conf = XmlConfigParser()
     conf.setXml("""
     <configuration>
         <hourly name="hourly1" minutes="13">
             <rcon>say "^9Nightime maprotation in effect."</rcon>
             <rcon>set sv_maprotation "gametype ctf map mp_carentan gametype ctf map mp_toujane gametype ctf map mp_buhlert gametype ctf map mp_railyard gametype ctf map mp_sfrance_final gametype ctf map mp_leningrad gametype ctf map mp_farmhouse gametype ctf map mp_decoy gametype ctf map mp_carentan gametype ctf map mp_dawnville gametype ctf map mp_matmata gametype ctf map mp_breakout gametype ctf map mp_burgundy"</rcon>
         </hourly>
     </configuration>
     """)
     fakeConsole.gameName = 'urt41'
     p3 = SchedulerPlugin(fakeConsole, conf)
     p3.onLoadConfig()
     p3.onStartup()
 def test_classic_syntax():
     conf = XmlConfigParser()
     conf.setXml("""
     <configuration plugin="scheduler">
         <cron name="test0" seconds="0">
             <rcon>say "hello you"</rcon>
             <rcon>say "hello world"</rcon>
         </cron>
     </configuration>
     """)
     fakeConsole.gameName = 'urt41'
     p = SchedulerPlugin(fakeConsole, conf)
     p.onLoadConfig()
     p.onStartup()
Пример #24
0
def setUpModule():
    global default_plugin_content, default_plugin_file, ADMIN_CONFIG, ADMIN_CONFIG_FILE, timer_patcher, feedparser_patcher
    if os.path.exists(default_plugin_file):
        with open(default_plugin_file, 'r') as f:
            default_plugin_content = f.read()

    ADMIN_CONFIG = XmlConfigParser()
    ADMIN_CONFIG.load(ADMIN_CONFIG_FILE)

    timer_patcher = patch('threading.Timer')
    timer_patcher.start()

    feedparser_patcher = patch.object(feedparser, 'parse')
    feedparser_patcher.start()
Пример #25
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")
Пример #26
0
    def setUp(self):
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""<configuration></configuration>""")
        self.parser = ChivParser(self.conf)
        self.parser._client = Mock()

        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()
Пример #27
0
    def setUp(self):
        log = logging.getLogger('output')
        log.setLevel(logging.NOTSET)

        self.conf = XmlConfigParser()
        self.conf.loadFromString("""
                <configuration>
                </configuration>
            """)
        self.parser = ConcretegameParser(self.conf)

        self.event_raw_data = ["punkBuster.onMessage", 'PunkBuster Server: 14 300000aaaaaabbbbbbccccc111223300(-) 11.122.103.24:3659 OK   1 3.0 0 (W) "Snoopy"']
        regex_for_OnPBPlistItem = [x for (x, y) in self.parser._punkbusterMessageFormats if y == 'OnPBPlistItem'][0]
        self.event_match = Mock(wraps=re.match(regex_for_OnPBPlistItem, self.event_raw_data[1]))
        self.event_match.__eq__ = Test_OnPBPlayerGuid.SREMatch_equals
Пример #28
0
    def setUp(self):
        BF3TestCase.setUp(self)
        self.conf = XmlConfigParser()
        self.conf.loadFromString("<configuration/>")
        self.parser = Bf3Parser(self.conf)
        self.parser.startup()

        self.authorizeClients_patcher = patch.object(self.parser.clients, "authorizeClients")
        self.authorizeClients_patcher.start()

        self.write_patcher = patch.object(self.parser, "write")
        self.write_mock = self.write_patcher.start()

        self.event_raw_data = 'PunkBuster Server: 14 300000aaaaaabbbbbbccccc111223300(-) 11.122.103.24:3659 OK   1 3.0 0 (W) "Snoopy"'
        self.regex_for_OnPBPlistItem = [x for (x, y) in self.parser._punkbusterMessageFormats if y == 'OnPBPlistItem'][0]
Пример #29
0
    def setUp(self):
        self.status_response = None # defaults to STATUS_RESPONSE module attribute
        self.conf = XmlConfigParser()
        self.conf.loadFromString("""<configuration></configuration>""")
        self.parser = RavagedParser(self.conf)
        self.parser.output = Mock()
        self.parser.output.write = Mock()

        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.parser.startup()
Пример #30
0
 def setUp(self):
     B3TestCase.setUp(self)
     self.conf = XmlConfigParser()
     self.conf.setXml("""
         <configuration plugin="admin">
             <settings name="warn">
                 <set name="warn_delay">5</set>
             </settings>
         </configuration>
     """)
     self.p = AdminPlugin(b3.console, self.conf)
     self.mock_client = Mock(spec=Client, name="client")
     self.mock_client.maxLevel = 0
     self.mock_client.exactName = "MockClient"
     self.mock_command = Mock(spec=Command, name='cmd')