class LogEntryTestCase(unittest.TestCase): """ Тест на L{spamfighter.core.log.LogEntry}. """ def setUp(self): self.message1 = TransitMessage(serialized={ 'text' : u'мама мыла раму папы'}).getMessage(getDefaultDomain()) self.message2 = TaggedMessage(TransitMessage(serialized={ 'text' : u'и тебе привет!',}).getMessage(getDefaultDomain())) self.message2.addTag('good') self.message2.addTag('bad') def testInterface(self): ziv.verifyClass(ISerializable, LogEntry) ziv.verifyClass(ILogEntry, LogEntry) def testSerialize(self): return LogEntry(when=101, message=self.message2, id=33).serialize().addCallback(self.assertEquals, { 'when' : 101, 'tags' : ['bad', 'good'], 'message' : { 'text' : 'и тебе привет!' }, 'id' : 33}) def testUnserialize(self): self.assertEquals(LogEntry(when=101, message=self.message2, id=33), LogEntry.unserialize( { 'when' : 101, 'tags' : ['bad', 'good'], 'message' : { 'text' : 'и тебе привет!' }, 'id' : 33})) def testConstructor(self): l = LogEntry(when=None, message=self.message1) self.assertEquals([], l.tags) self.assertEquals(time(), l.when) l = LogEntry(when=200, message=self.message2) self.assertEquals(['bad', 'good'], l.tags) self.assertEquals(200, l.when)
class FirewallStatementTestCase(unittest.TestCase): """ Тест на L{spamfighter.core.firewall.FirewallStatement}. """ def setUp(self): self.message = TaggedMessage([]) self.pack = FirewallMessagePack(self.message, getDefaultDomain()) def testIfHelper(self): self.assertTrue(FirewallStatement()._if_helper(self.message)) self.assertFalse(FirewallStatement(if_tags=["aaa"], if_inverted=False)._if_helper(self.message)) self.assertTrue(FirewallStatement(if_tags=["aaa"], if_inverted=True)._if_helper(self.message)) self.message.addTag("aaa") self.assertTrue(FirewallStatement(if_tags=["aaa"], if_inverted=False)._if_helper(self.message)) self.assertFalse(FirewallStatement(if_tags=["aaa"], if_inverted=True)._if_helper(self.message)) def testCompile1(self): d = FirewallStatement(label=101).compile(defer.fail(SkipToProcess(101, self.pack))) def checkPack(pack): self.assert_(pack is self.pack) d.addCallback(checkPack) return d def testCompile2(self): d = FirewallStatement(label=131).compile(defer.fail(SkipToProcess(101, self.pack))) d.addCallback(lambda _: self.assert_(False)).addErrback(lambda failure: failure.trap(SkipToProcess)) return d def testCompile3(self): d = FirewallStatement(label=101).compile(defer.fail(SkipToProcess(101, self.pack))) d.addCallback(lambda pack: self.assert_(pack is self.pack)) return d def testStr(self): self.assertEquals("if not aaa, bbb ", str(FirewallStatement(if_tags=["aaa", "bbb"], if_inverted=True))) self.assertEquals("if aaa, bbb ", str(FirewallStatement(if_tags=["aaa", "bbb"], if_inverted=False))) self.assertEquals( "377: if aaa, bbb ", str(FirewallStatement(label=377, if_tags=["aaa", "bbb"], if_inverted=False)) ) self.assertEquals("377: ", str(FirewallStatement(label=377)))
def setUp(self): getDefaultDomain().set('testStorage', DomainMemoryStorage(storage=MemoryStorage(cleanupInterval=0))) self.message1 = TransitMessage(serialized={ 'text' : u'мама мыла раму папы'}).getMessage(getDefaultDomain()) self.message2 = TransitMessage(serialized={ 'text' : u'папа'}).getMessage(getDefaultDomain()) self.message3 = TransitMessage(serialized={ 'text' : u'привет всем в чате!'}).getMessage(getDefaultDomain()) self.message4 = TaggedMessage(TransitMessage(serialized={ 'text' : u'и тебе привет!',}).getMessage(getDefaultDomain())) self.message4.addTag('good') self.message4.addTag('bad') startUpTestTimer(1000) self.log = MessageLog(storage='testStorage') getDefaultDomain().set('testLog', self.log)
def setUp(self): self.message = TaggedMessage([]) self.pack = FirewallMessagePack(self.message, getDefaultDomain())
class MessageLogTestCase(unittest.TestCase): """ Тест на L{spamfighter.core.log.MessageLog}. """ def setUp(self): getDefaultDomain().set('testStorage', DomainMemoryStorage(storage=MemoryStorage(cleanupInterval=0))) self.message1 = TransitMessage(serialized={ 'text' : u'мама мыла раму папы'}).getMessage(getDefaultDomain()) self.message2 = TransitMessage(serialized={ 'text' : u'папа'}).getMessage(getDefaultDomain()) self.message3 = TransitMessage(serialized={ 'text' : u'привет всем в чате!'}).getMessage(getDefaultDomain()) self.message4 = TaggedMessage(TransitMessage(serialized={ 'text' : u'и тебе привет!',}).getMessage(getDefaultDomain())) self.message4.addTag('good') self.message4.addTag('bad') startUpTestTimer(1000) self.log = MessageLog(storage='testStorage') getDefaultDomain().set('testLog', self.log) def tearDown(self): tearDownTestTimer() getDefaultDomain().delete('testLog') getDefaultDomain().delete('testStorage') def testInterface(self): ziv.verifyClass(IMessageLog, MessageLog) def testPutFetch(self): return self.log.put(self.message1).addCallback(lambda _: self.log.fetch()) \ .addCallback(self.assertEquals, [LogEntry(when=1000, message=self.message1, id=1)] ) def testPutFetchLong(self): return self.log.put(self.message1).addCallback(lambda _: advanceTestTimer(989)).addCallback(lambda _: self.log.fetch()) \ .addCallback(self.assertEquals, [LogEntry(when=1000, message=self.message1, id=1)] ) \ .addCallback(lambda _: advanceTestTimer(1)).addCallback(lambda _: self.log.fetch()).addCallback(self.assertEquals, []) def testFirst(self): return defer.DeferredList([self.log.put(self.message2, when=when) for when in [850, 852, 900, 901, 920]]) \ .addCallback(lambda _: self.log.fetch(first=852)) \ .addCallback(lambda result: self.assertEquals([852, 900, 901, 920], map(lambda i: i.when, result))) def testLast(self): return defer.DeferredList([self.log.put(self.message2, when=when) for when in [850, 852, 900, 901, 920]]) \ .addCallback(lambda _: self.log.fetch(last=900)) \ .addCallback(lambda result: self.assertEquals([850, 852, 900], map(lambda i: i.when, result))) def testFirstLast(self): return defer.DeferredList([self.log.put(self.message2, when=when) for when in [850, 852, 900, 901, 920]]) \ .addCallback(lambda _: self.log.fetch(first=852, last=901)) \ .addCallback(lambda result: self.assertEquals([852, 900, 901], map(lambda i: i.when, result))) def testFirstWithShift(self): return defer.DeferredList([self.log.put(self.message2, when=when) for when in [850, 852, 900, 901, 920]]) \ .addCallback(lambda _: advanceTestTimer(500)).addCallback(lambda _: self.log.fetch(first=852)) \ .addCallback(lambda result: self.assertEquals([852, 900, 901, 920], map(lambda i: i.when, result))) def testFirstID(self): return defer.DeferredList([self.log.put(self.message2, when=when) for when in [850, 852, 900, 901, 920]]) \ .addCallback(lambda _: self.log.fetch(first=800, firstID=3)) \ .addCallback(lambda result: self.assertEquals([900, 901, 920], map(lambda i: i.when, result))) def testPickling(self): import pickle l = pickle.loads(pickle.dumps(self.log))
def setUp(self): self.message1 = TransitMessage(serialized={ 'text' : u'мама мыла раму папы'}).getMessage(getDefaultDomain()) self.message2 = TaggedMessage(TransitMessage(serialized={ 'text' : u'и тебе привет!',}).getMessage(getDefaultDomain())) self.message2.addTag('good') self.message2.addTag('bad')