def setUp(self): self.bp = BusPublisher() client = ClientStub("testhostname", None, None) self.bp.setClient(client)
class BusPublisherTestCase(unittest.TestCase): def setUp(self): self.bp = BusPublisher() client = ClientStub("testhostname", None, None) self.bp.setClient(client) @deferred(timeout=30) @defer.inlineCallbacks def test_accumulate_perfs(self): yield defer.succeed(None) count = 42 self.bp.batch_send_perf = count msg = {"type": "perf", "value": "dummy"} # On se connecte self.bp.client.stub_connect() output = self.bp.client.channel.sent # on traite n-1 message, ce qui ne doit rien envoyer sur le bus for _i in range(count - 1): yield self.bp.write(msg) self.assertEqual(output, []) # on en envoie un de plus, ce qui doit envoyer un message accumulé self.bp.write(msg) self.assertEqual(len(output), 1) print repr(output[0]) sent = json.loads(output[0]["content"].body) self.assertEqual(len(sent["messages"]), count) def test_on_connect(self): """À la connexion, on demande des données à l'émetteur""" producer = Mock() self.bp.registerProducer(producer, True) self.bp.connectionInitialized() self.assertTrue(producer.resumeProducing.called) def test_pause_producing(self): """Si on est déconnecté, on pause l'émetteur""" producer = Mock() self.bp.registerProducer(producer, True) self.bp.connectionLost(None) self.assertTrue(producer.pauseProducing.called)