class MessageLogFetchCommandTestCase(unittest.TestCase): """ Тест на L{spamfighter.api.message.log.MessageLogFetchCommand}. """ def setUp(self): startUpTestTimer(100) getDefaultDomain().set('testStorage', DomainMemoryStorage(storage=MemoryStorage(cleanupInterval=0))) self.log = MessageLog(storage='testStorage') getDefaultDomain().set('testLog', self.log) self.message1 = TransitMessage(serialized={ 'text' : u'мама'}).getMessage(getDefaultDomain()) self.message2 = TransitMessage(serialized={ 'text' : u'папа'}).getMessage(getDefaultDomain()) self.c = MessageLogFetchCommand() self.c.params.getUnserialized({'partner' : None, 'log' : 'testLog'}) return self.log.put(message=self.message1, when=90).addCallback(lambda _: self.log.put(message=self.message2, when=95, tags=['aaa'])) def tearDown(self): tearDownTestTimer() getDefaultDomain().delete('testStorage') getDefaultDomain().delete('testLog') def testRun1(self): return self.c.run().addCallback(lambda _: self.assertEquals(self.c.result.entries, [LogEntry(when=90, message=self.message1, id=1), LogEntry(when=95, message=self.message2, tags=['aaa'], id=2)])) def testRun2(self): self.c.params.first = 92 return self.c.run().addCallback(lambda _: self.assertEquals(self.c.result.entries, [LogEntry(when=95, message=self.message2, tags=['aaa'], id=2)])) def testRun3(self): self.c.params.last = 92 return self.c.run().addCallback(lambda _: self.assertEquals(self.c.result.entries, [LogEntry(when=90, message=self.message1, id=1)])) def testRun4(self): self.c.params.first = 80 self.c.params.last = 100 self.c.params.firstID = 2 return self.c.run().addCallback(lambda _: self.assertEquals(self.c.result.entries, [LogEntry(when=95, message=self.message2, tags=['aaa'], id=2)]))
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))