def setUp(self): gr.globalSiteManager = gr.BaseGlobalComponents('test1') self.received = [] self.dm = MQDataManager(url=TEST_URL, queues=QUEUES) self.message = Message('info', data="BLA") self.receive = receiver(TEST_URL, self.read)
class MQDataManagerTests(unittest.TestCase): def read(self, body, message): self.received.append(body) message.ack() def setUp(self): gr.globalSiteManager = gr.BaseGlobalComponents('test1') self.received = [] self.dm = MQDataManager(url=TEST_URL, queues=QUEUES) self.message = Message('info', data="BLA") self.receive = receiver(TEST_URL, self.read) def tearDown(self): gr.globalSiteManager = gr.base def testEmptyDM(self): self.assertEqual(len(self.dm.messages), 0) def testCreateMessage(self): self.dm.createMessage(self.message) self.assertEqual(len(self.dm.messages), 1) self.assertEqual(list(self.dm.messages.keys()), [self.message.__hash__()]) def testFailIfCreateMessageTwice(self): self.dm.createMessage(self.message) self.assertRaises(ValueError, self.dm.createMessage, self.message) def testAbortMessages(self): self.dm.createMessage(self.message) self.assertEqual(len(self.dm.messages), 1) self.dm.abort(None) self.assertEqual(len(self.dm.messages), 0) def testSendingMessage(self): import transaction xmlconfig(StringIO(ZCML)) tr = transaction.begin() tr.join(self.dm) self.dm.createMessage(self.message) transaction.commit() self.receive() assert self.received == [{u'data': u'BLA'}] self.received = [] def test_abortion(self): import transaction tr = transaction.begin() tr.join(self.dm) self.dm.createMessage(self.message) transaction.abort() with pytest.raises(socket.timeout): self.receive() assert self.received == []