Пример #1
0
 def setUp(self):
     self.bp = BusPublisher()
     client = ClientStub("testhostname", None, None)
     self.bp.setClient(client)
Пример #2
0
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)