Fix spurious testcase fail, sometimes seconds didn't match.

This commit is contained in:
Elián Hanisch 2012-06-25 19:35:42 -03:00
parent 5ffcf6511a
commit a08559a758
2 changed files with 17 additions and 9 deletions

View File

@ -70,6 +70,11 @@ tz = 'UTC'
def now(): def now():
return cPickle.dumps(datetime.datetime.now(pytz.timezone(tz))) return cPickle.dumps(datetime.datetime.now(pytz.timezone(tz)))
def nowSeconds():
# apparently time.time() isn't the same thing.
# return time.time()
return int(time.mktime(time.gmtime()))
def fromTime(x): def fromTime(x):
return cPickle.dumps(datetime.datetime(*time.gmtime(x)[:6], **{'tzinfo': pytz.timezone("UTC")})) return cPickle.dumps(datetime.datetime(*time.gmtime(x)[:6], **{'tzinfo': pytz.timezone("UTC")}))
@ -509,7 +514,8 @@ class Bantracker(callbacks.Plugin):
if not reviewTime: if not reviewTime:
# time is zero, do nothing # time is zero, do nothing
return return
now = time.mktime(time.gmtime())
now = nowSeconds()
lastReview = self.pendingReviews.lastReview lastReview = self.pendingReviews.lastReview
self.pendingReviews.lastReview = now # update last time reviewed self.pendingReviews.lastReview = now # update last time reviewed
if not lastReview: if not lastReview:
@ -534,8 +540,9 @@ class Bantracker(callbacks.Plugin):
banAge = now - ban.when banAge = now - ban.when
reviewWindow = lastReview - ban.when reviewWindow = lastReview - ban.when
#self.log.debug('review ban: %s ban %s by %s (%s/%s/%s %s)', channel, ban.mask, #self.log.debug('review ban: %s ban %s by %s (%s/%s/%s %s)',
# ban.who, reviewWindow, reviewTime, banAge, reviewTime - reviewWindow) # channel, ban.mask, ban.who, reviewWindow, reviewTime,
# banAge, reviewTime - reviewWindow)
if reviewWindow <= reviewTime < banAge: if reviewWindow <= reviewTime < banAge:
# ban is old enough, and inside the "review window" # ban is old enough, and inside the "review window"
try: try:

View File

@ -20,6 +20,7 @@ import supybot.conf as conf
import supybot.ircmsgs as ircmsgs import supybot.ircmsgs as ircmsgs
import supybot.world as world import supybot.world as world
import re
import time import time
@ -241,12 +242,12 @@ class BantrackerTestCase(ChannelPluginTestCase):
cb.reviewBans(self.irc) cb.reviewBans(self.irc)
# since it's a forward, it was sent already # since it's a forward, it was sent already
self.assertFalse(cb.pendingReviews) self.assertFalse(cb.pendingReviews)
self.assertEqual(str(self.irc.takeMsg()).strip(), self.assertTrue(re.search(
"NOTICE #channel :Review: ban 'asd!*@*' set by bot on %s in #test, link: "\ r"^NOTICE #channel :Review: ban 'asd!\*@\*' set by bot on .* in #test,"\
"%s/bans.cgi?log=1" %(cb.bans['#test'][0].ascwhen, pluginConf.bansite())) r" link: .*/bans\.cgi\?log=1$", str(self.irc.takeMsg()).strip()))
self.assertEqual(str(self.irc.takeMsg()).strip(), self.assertTrue(re.search(
"NOTICE #channel :Review: quiet 'asd!*@*' set by bot on %s in #test, link: "\ r"^NOTICE #channel :Review: quiet 'asd!\*@\*' set by bot on .* in #test,"\
"%s/bans.cgi?log=2" %(cb.bans['#test'][0].ascwhen, pluginConf.bansite())) r" link: .*/bans\.cgi\?log=2$", str(self.irc.takeMsg()).strip()))
def testReviewIgnore(self): def testReviewIgnore(self):
pluginConf.review.setValue(True) pluginConf.review.setValue(True)