Ejemplo n.º 1
0
    def start(self):
        # Initialize data store
        DatastoreController().set_driver(self.config.get('datastore'))

        Logger.set_loglevel(self.config.get('log.level'))

        for plugin in self.config.get('coreplugins'):
            Logger.info("Loading core plugin '%s'" % plugin)
            self.plugincontroller.load_plugin(plugin, 'core')

        for plugin in self.config.get('plugins'):
            Logger.info("Loading plugin '%s'" % plugin)
            self.plugincontroller.load_plugin(plugin)

        if len(self.config.get('ircnets')) == 0:
            raise Exception("There has to be at least one ircnet to connect to")

        for net in self.config.get('ircnets'):
            irc = IRCController(self.eventcontroller)
            irc.set_configuration(net)

            Logger.info("Connecting to %s..." % irc.get_ircnet_name())
            irc.connect()

            self.ircnetscontroller.add_ircnet(irc.get_ircnet_name(), irc)
Ejemplo n.º 2
0
class TestIRCController(unittest.TestCase):
    def setUp(self):
        self._event_controller = FakeEventController()

        self._irc = IRCController(self._event_controller, clientclass = IRCNetworkClientMock)

        # Setup IRCController
        fakeserver = Server("foo", 6667)
        self._irc.add_server(fakeserver)

        self._irc._ircnet   = "FakeIRCNet"
        self._irc._nick     = "Nick"
        self._irc._name     = "Name"
        self._irc._ident    = "Ident"

        # "connect"
        self._irc.connect()

        # Make sure the buffer is clear
        self._irc.flush_output()
        self._irc._connection.clear()

    def tearDown(self):
        self._irc.disconnect()

    def testMessageOrdering(self):
        # Send some messages and wait for them to be sent to
        # our stubbed socket
        self._irc.privmsg("Foo", "C")
        self._irc.privmsg("Foo", "A")
        self._irc.privmsg("Foo", "B")
        self._irc.flush_output()

        expected = [
            'PRIVMSG Foo :C\r\n',
            'PRIVMSG Foo :A\r\n',
            'PRIVMSG Foo :B\r\n',
        ]

        self.assertEqual(self._irc._connection.get_data(), expected)

    def testMessagePriorities(self):
        self._irc.privmsg("Foo", "B")
        self._irc.quit("Quit now")
        self._irc.privmsg("Foo", "A")
        self._irc.flush_output()

        expected = [
            'QUIT :Quit now\r\n',
            'PRIVMSG Foo :B\r\n',
            'PRIVMSG Foo :A\r\n',
        ]

        self.assertEqual(self._irc._connection.get_data(), expected)