コード例 #1
0
 def testLetmein(self):
     def getAfterJoinMessages():
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'MODE')
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'WHO')
     self.irc.feedMsg(ircmsgs.join('#bitcoin-otc', prefix=self.prefix))
     getAfterJoinMessages()
     try:
         orignetwork = self.irc.network
         self.irc.network = 'freenode'
         origuser = self.prefix
         self.prefix = '[email protected]'
         self.assertError('letmein') # not authed
         self.irc.feedMsg(ircmsgs.join('#bitcoin-otc', prefix=self.prefix))
         self.irc.takeMsg()
         self.assertTrue('registeredguy' not in self.irc.state.channels['#bitcoin-otc'].voices)
         self.prefix = '[email protected]'
         self.assertError('letmein') # not enough account age
         self.irc.feedMsg(ircmsgs.join('#bitcoin-otc', prefix=self.prefix))
         self.irc.takeMsg()
         self.assertTrue('youngguy' not in self.irc.state.channels['#bitcoin-otc'].voices)
         self.prefix = '[email protected]'
         self.assertError('letmein') # negative rating
         self.irc.feedMsg(ircmsgs.join('#bitcoin-otc', prefix=self.prefix))
         self.irc.takeMsg()
         self.assertTrue('authedguy2' not in self.irc.state.channels['#bitcoin-otc'].voices)
         self.prefix = '[email protected]'
         self.assertNotError('letmein') # should be good
         self.irc.feedMsg(ircmsgs.join('#bitcoin-otc', prefix=self.prefix))
         self.irc.takeMsg()
         self.assertTrue('authedguy' in self.irc.state.channels['#bitcoin-otc'].voices)
     finally:
         self.irc.network = orignetwork
         self.prefix = origuser
コード例 #2
0
ファイル: test_irclib.py プロジェクト: krattai/AEBL
 def testJoin(self):
     st = irclib.IrcState()
     st.addMsg(self.irc, ircmsgs.join('#foo', prefix=self.irc.prefix))
     self.failUnless('#foo' in st.channels)
     self.failUnless(self.irc.nick in st.channels['#foo'].users)
     st.addMsg(self.irc, ircmsgs.join('#foo', prefix='foo!bar@baz'))
     self.failUnless('foo' in st.channels['#foo'].users)
     st2 = st.copy()
     st.addMsg(self.irc, ircmsgs.quit(prefix='foo!bar@baz'))
     self.failIf('foo' in st.channels['#foo'].users)
     self.failUnless('foo' in st2.channels['#foo'].users)
コード例 #3
0
 def testJoin(self):
     st = irclib.IrcState()
     st.addMsg(self.irc, ircmsgs.join('#foo', prefix=self.irc.prefix))
     self.failUnless('#foo' in st.channels)
     self.failUnless(self.irc.nick in st.channels['#foo'].users)
     st.addMsg(self.irc, ircmsgs.join('#foo', prefix='foo!bar@baz'))
     self.failUnless('foo' in st.channels['#foo'].users)
     st2 = st.copy()
     st.addMsg(self.irc, ircmsgs.quit(prefix='foo!bar@baz'))
     self.failIf('foo' in st.channels['#foo'].users)
     self.failUnless('foo' in st2.channels['#foo'].users)
コード例 #4
0
 def setUp(self):
     if self.__class__ in (PluginTestCase, ChannelPluginTestCase):
         return
     PluginTestCase.setUp(self)
     self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix))
     m = self.irc.takeMsg()
     self.failIf(m is None, 'No message back from joining channel.')
     self.assertEqual(m.command, 'MODE')
     m = self.irc.takeMsg()
     self.failIf(m is None, 'No message back from joining channel.')
     self.assertEqual(m.command, 'WHO')
コード例 #5
0
ファイル: test.py プロジェクト: cnelsonsic/Limnoria
 def setUp(self, nick="test", forceSetup=False):
     if not forceSetup and self.__class__ in (PluginTestCase, ChannelPluginTestCase):
         return
     PluginTestCase.setUp(self)
     self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix))
     m = self.irc.takeMsg()
     self.failIf(m is None, "No message back from joining channel.")
     self.assertEqual(m.command, "MODE")
     m = self.irc.takeMsg()
     self.failIf(m is None, "No message back from joining channel.")
     self.assertEqual(m.command, "WHO")
コード例 #6
0
 def testPart(self):
     def getAfterJoinMessages():
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'MODE')
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'MODE')
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'WHO')
     self.assertError('part #foo')
     self.assertRegexp('part #foo', 'not in')
     self.irc.feedMsg(ircmsgs.join('#foo', prefix=self.prefix))
     getAfterJoinMessages()
     m = self.getMsg('part #foo')
     self.assertEqual(m.command, 'PART')
     self.irc.feedMsg(ircmsgs.join('#foo', prefix=self.prefix))
     getAfterJoinMessages()
     m = self.getMsg('part #foo reason')
     self.assertEqual(m.command, 'PART')
     self.assertEqual(m.args[0], '#foo')
     self.assertEqual(m.args[1], 'reason')
コード例 #7
0
ファイル: test.py プロジェクト: AssetsIncorporated/Limnoria
 def testPart(self):
     def getAfterJoinMessages():
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'MODE')
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'MODE')
         m = self.irc.takeMsg()
         self.assertEqual(m.command, 'WHO')
     self.assertError('part #foo')
     self.assertRegexp('part #foo', 'not in')
     self.irc.feedMsg(ircmsgs.join('#foo', prefix=self.prefix))
     getAfterJoinMessages()
     m = self.getMsg('part #foo')
     self.assertEqual(m.command, 'PART')
     self.irc.feedMsg(ircmsgs.join('#foo', prefix=self.prefix))
     getAfterJoinMessages()
     m = self.getMsg('part #foo reason')
     self.assertEqual(m.command, 'PART')
     self.assertEqual(m.args[0], '#foo')
     self.assertEqual(m.args[1], 'reason')
コード例 #8
0
ファイル: plugin.py プロジェクト: kg-bot/SupyBot
 def make_and_join_channel(self, irc, nick):
     channel_length = 15
     channel_characters = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
     channel_name_chars = []
     for character in xrange(channel_length):
         channel_name_chars.append(random.choice(channel_characters))
     channel_name = '#%s' % ''.join(channel_name_chars)
     irc.queueMsg(ircmsgs.join(channel_name))
     time.sleep(7)
     irc.queueMsg(ircmsgs.mode(channel_name, '+i'))
     self._invite(irc, nick, channel_name)
コード例 #9
0
ファイル: plugin.py プロジェクト: sporkexec/TailNFL
 def _add_game(self, game):
     # Find first open chan slot
     chan_index = 1
     chan_list = sorted(self._chans_used)
     while chan_index in chan_list:
         chan_index += 1
     # Take chan
     self._chans_used.append(chan_index)
     chan = self._chan_format % chan_index
     self._irc.queueMsg(ircmsgs.join(chan))
     # Initialize game
     self._games[game.gamekey] = TailGame(game, self._irc, chan, chan_index, self)
コード例 #10
0
ファイル: test.py プロジェクト: bnrubin/Bantracker
 def testOpTrack(self):
     cb = self.getCallback()
     self.assertEqual(cb.opped['#test'], False)
     self.op()
     self.assertEqual(cb.opped['#test'], True)
     self.deop()
     self.assertEqual(cb.opped['#test'], False)
     self.op()
     self.irc.feedMsg(ircmsgs.part('#test', prefix=self.prefix))
     self.irc.feedMsg(ircmsgs.join('#test', prefix=self.prefix))
     self.irc.takeMsg() # MODE msg
     self.irc.takeMsg() # WHO msg
     self.assertEqual(cb.opped['#test'], False)
コード例 #11
0
ファイル: test.py プロジェクト: majestrate/Limnoria
    def testIban(self):
        self.irc.feedMsg(ircmsgs.join(self.channel,
                                      prefix='[email protected]'))
        self.assertError('iban foo!bar@baz')
        self.irc.feedMsg(ircmsgs.op(self.channel, self.irc.nick))
        self.assertBan('iban foo!bar@baz', 'foo!bar@baz')
        self.assertBan('iban foobar', '[email protected]')

        conf.supybot.protocols.irc.strictRfc.setValue(True)
        self.assertError('iban $a:nyuszika7h')
        self.assertError('unban $a:nyuszika7h')
        conf.supybot.protocols.irc.strictRfc.setValue(False)
        self.assertBan('iban $a:nyuszika7h', '$a:nyuszika7h')
        self.assertNotError('unban $a:nyuszika7h')
コード例 #12
0
ファイル: plugin.py プロジェクト: sporkexec/TailNFL
    def __init__(self, irc):
        self.__parent = super(TailNFL, self)
        self.__parent.__init__(irc)

        self._chan_lobby = '##tailnfl'
        self._chan_format = '##tailnfl-game%s' # chan = format % index
        self._chans_used = [] # int list of occupied chans
        self._games = {}
        self._irc = irc

        self._loop_should_stop = threading.Event()
        self._loop_is_stopped = threading.Event()
        self._loop_is_stopped.set()
        self._irc.queueMsg(ircmsgs.join(self._chan_lobby))
        self._irc.queueMsg(ircmsgs.joins([self._chan_format%str(i) for i in range(1, 21)]))
コード例 #13
0
    def testHandlesModes(self):
        st = irclib.IrcState()
        st.addMsg(self.irc, ircmsgs.join('#foo', prefix=self.irc.prefix))
        self.failIf('bar' in st.channels['#foo'].ops)
        st.addMsg(self.irc, ircmsgs.op('#foo', 'bar'))
        self.failUnless('bar' in st.channels['#foo'].ops)
        st.addMsg(self.irc, ircmsgs.deop('#foo', 'bar'))
        self.failIf('bar' in st.channels['#foo'].ops)

        self.failIf('bar' in st.channels['#foo'].voices)
        st.addMsg(self.irc, ircmsgs.voice('#foo', 'bar'))
        self.failUnless('bar' in st.channels['#foo'].voices)
        st.addMsg(self.irc, ircmsgs.devoice('#foo', 'bar'))
        self.failIf('bar' in st.channels['#foo'].voices)

        self.failIf('bar' in st.channels['#foo'].halfops)
        st.addMsg(self.irc, ircmsgs.halfop('#foo', 'bar'))
        self.failUnless('bar' in st.channels['#foo'].halfops)
        st.addMsg(self.irc, ircmsgs.dehalfop('#foo', 'bar'))
        self.failIf('bar' in st.channels['#foo'].halfops)
コード例 #14
0
ファイル: test_irclib.py プロジェクト: krattai/AEBL
    def testHandlesModes(self):
        st = irclib.IrcState()
        st.addMsg(self.irc, ircmsgs.join('#foo', prefix=self.irc.prefix))
        self.failIf('bar' in st.channels['#foo'].ops)
        st.addMsg(self.irc, ircmsgs.op('#foo', 'bar'))
        self.failUnless('bar' in st.channels['#foo'].ops)
        st.addMsg(self.irc, ircmsgs.deop('#foo', 'bar'))
        self.failIf('bar' in st.channels['#foo'].ops)

        self.failIf('bar' in st.channels['#foo'].voices)
        st.addMsg(self.irc, ircmsgs.voice('#foo', 'bar'))
        self.failUnless('bar' in st.channels['#foo'].voices)
        st.addMsg(self.irc, ircmsgs.devoice('#foo', 'bar'))
        self.failIf('bar' in st.channels['#foo'].voices)

        self.failIf('bar' in st.channels['#foo'].halfops)
        st.addMsg(self.irc, ircmsgs.halfop('#foo', 'bar'))
        self.failUnless('bar' in st.channels['#foo'].halfops)
        st.addMsg(self.irc, ircmsgs.dehalfop('#foo', 'bar'))
        self.failIf('bar' in st.channels['#foo'].halfops)
コード例 #15
0
class IrcMsgQueueTestCase(SupyTestCase):
    mode = ircmsgs.op('#foo', 'jemfinch')
    msg = ircmsgs.privmsg('#foo', 'hey, you')
    msgs = [ircmsgs.privmsg('#foo', str(i)) for i in range(10)]
    kick = ircmsgs.kick('#foo', 'PeterB')
    pong = ircmsgs.pong('123')
    ping = ircmsgs.ping('123')
    topic = ircmsgs.topic('#foo')
    notice = ircmsgs.notice('jemfinch', 'supybot here')
    join = ircmsgs.join('#foo')
    who = ircmsgs.who('#foo')

    def testInit(self):
        q = irclib.IrcMsgQueue([self.msg, self.topic, self.ping])
        self.assertEqual(len(q), 3)

    def testLen(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.msg)
        self.assertEqual(len(q), 1)
        q.enqueue(self.mode)
        self.assertEqual(len(q), 2)
        q.enqueue(self.kick)
        self.assertEqual(len(q), 3)
        q.enqueue(self.topic)
        self.assertEqual(len(q), 4)
        q.dequeue()
        self.assertEqual(len(q), 3)
        q.dequeue()
        self.assertEqual(len(q), 2)
        q.dequeue()
        self.assertEqual(len(q), 1)
        q.dequeue()
        self.assertEqual(len(q), 0)

    def testContains(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.msg)
        q.enqueue(self.msg)
        q.enqueue(self.msg)
        self.failUnless(self.msg in q)
        q.dequeue()
        self.failUnless(self.msg in q)
        q.dequeue()
        self.failUnless(self.msg in q)
        q.dequeue()
        self.failIf(self.msg in q)

    def testRepr(self):
        q = irclib.IrcMsgQueue()
        self.assertEqual(repr(q), 'IrcMsgQueue([])')
        q.enqueue(self.msg)
        try:
            repr(q)
        except Exception as e:
            self.fail('repr(q) raised an exception: %s' % utils.exnToString(e))

    def testEmpty(self):
        q = irclib.IrcMsgQueue()
        self.failIf(q)

    def testEnqueueDequeue(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.msg)
        self.failUnless(q)
        self.assertEqual(self.msg, q.dequeue())
        self.failIf(q)
        q.enqueue(self.msg)
        q.enqueue(self.notice)
        self.assertEqual(self.msg, q.dequeue())
        self.assertEqual(self.notice, q.dequeue())
        for msg in self.msgs:
            q.enqueue(msg)
        for msg in self.msgs:
            self.assertEqual(msg, q.dequeue())

    def testPrioritizing(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.msg)
        q.enqueue(self.mode)
        self.assertEqual(self.mode, q.dequeue())
        self.assertEqual(self.msg, q.dequeue())
        q.enqueue(self.msg)
        q.enqueue(self.kick)
        self.assertEqual(self.kick, q.dequeue())
        self.assertEqual(self.msg, q.dequeue())
        q.enqueue(self.ping)
        q.enqueue(self.msgs[0])
        q.enqueue(self.kick)
        q.enqueue(self.msgs[1])
        q.enqueue(self.mode)
        self.assertEqual(self.kick, q.dequeue())
        self.assertEqual(self.mode, q.dequeue())
        self.assertEqual(self.ping, q.dequeue())
        self.assertEqual(self.msgs[0], q.dequeue())
        self.assertEqual(self.msgs[1], q.dequeue())

    def testNoIdenticals(self):
        configVar = conf.supybot.protocols.irc.queuing.duplicates
        original = configVar()
        try:
            configVar.setValue(True)
            q = irclib.IrcMsgQueue()
            q.enqueue(self.msg)
            q.enqueue(self.msg)
            self.assertEqual(self.msg, q.dequeue())
            self.failIf(q)
        finally:
            configVar.setValue(original)

    def testJoinBeforeWho(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.join)
        q.enqueue(self.who)
        self.assertEqual(self.join, q.dequeue())
        self.assertEqual(self.who, q.dequeue())


##         q.enqueue(self.who)
##         q.enqueue(self.join)
##         self.assertEqual(self.join, q.dequeue())
##         self.assertEqual(self.who, q.dequeue())

    def testTopicBeforePrivmsg(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.msg)
        q.enqueue(self.topic)
        self.assertEqual(self.topic, q.dequeue())
        self.assertEqual(self.msg, q.dequeue())

    def testModeBeforePrivmsg(self):
        q = irclib.IrcMsgQueue()
        q.enqueue(self.msg)
        q.enqueue(self.mode)
        self.assertEqual(self.mode, q.dequeue())
        self.assertEqual(self.msg, q.dequeue())
        q.enqueue(self.mode)
        q.enqueue(self.msg)
        self.assertEqual(self.mode, q.dequeue())
        self.assertEqual(self.msg, q.dequeue())
コード例 #16
0
ファイル: plugin.py プロジェクト: ircpuzzles/competitionbot
 def joinChannel(self, irc, channel):
     if not self.botInChannel(irc, channel):
         logger.info('join channel '+channel)
         irc.queueMsg(ircmsgs.join(channel))
     else:
         logger.info('bot already joined in '+channel)
コード例 #17
0
 def testJoin(self):
     channel = '#osu'
     key = 'michiganSucks'
     self.assertEqual(ircmsgs.join(channel).args, ('#osu',))
     self.assertEqual(ircmsgs.join(channel, key).args,
                      ('#osu', 'michiganSucks'))
コード例 #18
0
ファイル: test_ircmsgs.py プロジェクト: ElectroCode/Limnoria
 def testJoin(self):
     channel = '#osu'
     key = 'michiganSucks'
     self.assertEqual(ircmsgs.join(channel).args, ('#osu',))
     self.assertEqual(ircmsgs.join(channel, key).args,
                      ('#osu', 'michiganSucks'))