AttackProtector & SupyML: rename utility functions in test cases

master
Valentin Lorentz 2010-11-03 11:20:19 +01:00
parent e49f4e09b7
commit 4f159105ed
2 changed files with 27 additions and 21 deletions

View File

@ -36,20 +36,20 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
################################# #################################
# Utilities # Utilities
def _getIfSomething(self, msg): def _getIfAnswerIsEqual(self, msg):
m = self.irc.takeMsg() m = self.irc.takeMsg()
while m is not None: while m is not None:
if repr(m) == repr(msg): if repr(m) == repr(msg):
return True return True
m = self.irc.takeMsg() m = self.irc.takeMsg()
return False return False
def _getIfBanned(self, banmask=None): def _getIfAnswerIsThisBan(self, banmask=None):
if banmask is None: if banmask is None:
banmask = self.prefix banmask = self.prefix
return self._getIfSomething(ircmsgs.ban(self.channel, banmask)) return self._getIfAnswerIsEqual(ircmsgs.ban(self.channel, banmask))
def _getIfKicked(self, kind): def _getIfAnswerIsThisKick(self, kind):
reason = '%s flood detected' % kind reason = '%s flood detected' % kind
return self._getIfSomething(ircmsgs.kick(self.channel, self.nick, return self._getIfAnswerIsEqual(ircmsgs.kick(self.channel, self.nick,
reason)) reason))
################################# #################################
@ -58,12 +58,14 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
for i in range(1, 5): for i in range(1, 5):
msg = ircmsgs.join(self.channel, prefix=self.prefix) msg = ircmsgs.join(self.channel, prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfBanned() == False, 'No reaction to join flood.') self.failIf(self._getIfAnswerIsThisBan() == False,
'No reaction to join flood.')
def testPunishNotNoJoinFlood(self): def testPunishNotNoJoinFlood(self):
for i in range(1, 4): for i in range(1, 4):
msg = ircmsgs.join(self.channel, prefix=self.prefix) msg = ircmsgs.join(self.channel, prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfBanned(), 'Reaction to no join flood.') self.failIf(self._getIfAnswerIsThisBan(),
'Reaction to no join flood.')
################################# #################################
# Part tests # Part tests
@ -71,12 +73,14 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
for i in range(1, 5): for i in range(1, 5):
msg = ircmsgs.part(self.channel, prefix=self.prefix) msg = ircmsgs.part(self.channel, prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfBanned() == False, 'No reaction to part flood.') self.failIf(self._getIfAnswerIsThisBan() == False,
'No reaction to part flood.')
def testPunishNotNoPartFlood(self): def testPunishNotNoPartFlood(self):
for i in range(1, 4): for i in range(1, 4):
msg = ircmsgs.part(self.channel, prefix=self.prefix) msg = ircmsgs.part(self.channel, prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfBanned(), 'Reaction to no part flood.') self.failIf(self._getIfAnswerIsThisBan(),
'Reaction to no part flood.')
################################# #################################
# Nick tests # Nick tests
@ -86,7 +90,7 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.prefix = nick + '!' + self.prefix.split('!')[1] self.prefix = nick + '!' + self.prefix.split('!')[1]
banmask = '*!' + self.prefix.split('!')[1] banmask = '*!' + self.prefix.split('!')[1]
self.failIf(self._getIfBanned(banmask) == False, self.failIf(self._getIfAnswerIsThisBan(banmask) == False,
'No reaction to nick flood.') 'No reaction to nick flood.')
def testPunishNotNoNickFlood(self): def testPunishNotNoNickFlood(self):
for nick in 'ABCDEF': for nick in 'ABCDEF':
@ -94,7 +98,8 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.prefix = nick + '!' + self.prefix.split('!')[1] self.prefix = nick + '!' + self.prefix.split('!')[1]
banmask = '*!' + self.prefix.split('!')[1] banmask = '*!' + self.prefix.split('!')[1]
self.failIf(self._getIfBanned(banmask), 'Reaction to no nick flood.') self.failIf(self._getIfAnswerIsThisBan(banmask),
'Reaction to no nick flood.')
################################# #################################
# Message tests # Message tests
@ -103,28 +108,28 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
msg = ircmsgs.privmsg(self.channel, 'Hi, this is a flood', msg = ircmsgs.privmsg(self.channel, 'Hi, this is a flood',
prefix=self.prefix) prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfKicked('message') == False, self.failIf(self._getIfAnswerIsThisKick('message') == False,
'No reaction to privmsg flood.') 'No reaction to privmsg flood.')
def testPunishNoticeFlood(self): def testPunishNoticeFlood(self):
for i in range(1, 11): for i in range(1, 11):
msg = ircmsgs.notice(self.channel, 'Hi, this is a flood', msg = ircmsgs.notice(self.channel, 'Hi, this is a flood',
prefix=self.prefix) prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfKicked('message') == False, self.failIf(self._getIfAnswerIsThisKick('message') == False,
'No reaction to notice flood.') 'No reaction to notice flood.')
def testPunishNotNoMessageFlood(self): def testPunishNotNoMessageFlood(self):
for i in range(1, 10): for i in range(1, 10):
msg = ircmsgs.privmsg(self.channel, 'Hi, this is a flood', msg = ircmsgs.privmsg(self.channel, 'Hi, this is a flood',
prefix=self.prefix) prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfKicked('message'), self.failIf(self._getIfAnswerIsThisKick('message'),
'Reaction to no privmsg flood.') 'Reaction to no privmsg flood.')
def testPunishNotNoNoticeFlood(self): def testPunishNotNoNoticeFlood(self):
for i in range(1, 10): for i in range(1, 10):
msg = ircmsgs.notice(self.channel, 'Hi, this is a flood', msg = ircmsgs.notice(self.channel, 'Hi, this is a flood',
prefix=self.prefix) prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfKicked('message'), self.failIf(self._getIfAnswerIsThisKick('message'),
'Reaction to no notice flood.') 'Reaction to no notice flood.')
def testPunishNoticeFlood(self): def testPunishNoticeFlood(self):
for i in range(1, 6): for i in range(1, 6):
@ -134,7 +139,7 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
msg = ircmsgs.privmsg(self.channel, 'Hi, this is a flood', msg = ircmsgs.privmsg(self.channel, 'Hi, this is a flood',
prefix=self.prefix) prefix=self.prefix)
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
self.failIf(self._getIfKicked('message') == False, self.failIf(self._getIfAnswerIsThisKick('message') == False,
'No reaction to both notice and privmsg flood.') 'No reaction to both notice and privmsg flood.')
################################# #################################
@ -144,15 +149,16 @@ class AttackProtectorTestCase(ChannelPluginTestCase):
self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix)) self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix))
time.sleep(6) time.sleep(6)
self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix)) self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix))
self.failIf(self._getIfBanned(), 'Doesn\'t clean the join collection.') self.failIf(self._getIfAnswerIsThisBan(),
'Doesn\'t clean the join collection.')
def testDontCleanCollectionToEarly(self): def testDontCleanCollectionToEarly(self):
for i in range(1, 4): for i in range(1, 4):
self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix)) self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix))
time.sleep(2) time.sleep(2)
self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix)) self.irc.feedMsg(ircmsgs.join(self.channel, prefix=self.prefix))
self.failIf(self._getIfBanned() == False, 'Cleans the collection ' self.failIf(self._getIfAnswerIsThisBan() == False,
'before it should be cleaned') 'Cleans the collection before it should be cleaned')

View File

@ -34,7 +34,7 @@ class SupyMLTestCase(ChannelPluginTestCase):
plugins = ('SupyML', 'Utilities') plugins = ('SupyML', 'Utilities')
################################# #################################
# Utilities # Utilities
def _getIfSomething(self, msg): def _getIfAnswerIsEqual(self, msg):
m = self.irc.takeMsg() m = self.irc.takeMsg()
while m is not None: while m is not None:
if repr(m) == repr(msg): if repr(m) == repr(msg):
@ -52,7 +52,7 @@ class SupyMLTestCase(ChannelPluginTestCase):
self.irc.feedMsg(msg) self.irc.feedMsg(msg)
answer = ircmsgs.IrcMsg(prefix="", command="PRIVMSG", answer = ircmsgs.IrcMsg(prefix="", command="PRIVMSG",
args=('ProgVal', 'test wants me to tell you: foo')) args=('ProgVal', 'test wants me to tell you: foo'))
self.failIf(self._getIfSomething(answer) == False) self.failIf(self._getIfAnswerIsEqual(answer) == False)
# vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: # vim:set shiftwidth=4 tabstop=4 expandtab textwidth=79: