Exemplo n.º 1
0
    def testStreamingChoke(self):
        sup = TestSuper()
        sub1 = SubProducer(sup)
        sub2 = SubProducer(sup)

        tp1 = TestProducer()
        tp2 = TestProducer()

        sub1.registerProducer(tp1, True)
        sub2.registerProducer(tp2, True)

        self.assertEquals(tp1.calls, [])
        self.assertEquals(tp2.calls, [])

        sub1.choke()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, [])

        sup.pauseProducing()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, ['pause'])

        sup.resumeProducing()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, ['pause', 'resume'])

        sub1.unchoke()
        self.assertEquals(tp1.calls, ['pause', 'resume'])
        self.assertEquals(tp2.calls, ['pause', 'resume'])

        tp1.clear()
        tp2.clear()
        sup.stopProducing()
        self.assertEquals(tp1.calls, ['stop'])
        self.assertEquals(tp2.calls, ['stop'])
Exemplo n.º 2
0
    def testBasicNotification(self):
        sup = TestSuper()
        sub = SubProducer(sup)

        tp1 = TestProducer()
        sub.registerProducer(tp1, False)
        self.assertEquals(tp1.calls, ['resume'])
        sub.unregisterProducer()

        tp2 = TestProducer()
        sub.registerProducer(tp2, True)
        self.assertEquals(tp2.calls, [])
        sub.unregisterProducer()
Exemplo n.º 3
0
    def testBasicNotification(self):
        sup = TestSuper()
        sub = SubProducer(sup)

        tp1 = TestProducer()
        sub.registerProducer(tp1, False)
        self.assertEquals(tp1.calls, ['resume'])
        sub.unregisterProducer()

        tp2 = TestProducer()
        sub.registerProducer(tp2, True)
        self.assertEquals(tp2.calls, [])
        sub.unregisterProducer()
Exemplo n.º 4
0
    def testPauseSuperBeforeRegister(self):
        sup = TestSuper()
        sub1 = SubProducer(sup)
        sub2 = SubProducer(sup)

        tp1 = TestProducer()
        tp2 = TestProducer()

        sub1.registerProducer(tp1, False)
        sub2.registerProducer(tp2, False)

        self.assertEquals(sup.producer, sup)  # Make sure it's registered with
        # itself; IOW it has called
        # self.transport.registerProducer(self).

        sup.pauseProducing()
        sup.resumeProducing()

        self.assertEquals(tp1.calls, ['resume', 'pause', 'resume'])
        self.assertEquals(tp2.calls, ['resume', 'pause', 'resume'])

        sup.stopProducing()
        self.assertEquals(tp1.calls, ['resume', 'pause', 'resume', 'stop'])
        self.assertEquals(tp2.calls, ['resume', 'pause', 'resume', 'stop'])
Exemplo n.º 5
0
    def testPauseSuperBeforeRegister(self):
        sup = TestSuper()
        sub1 = SubProducer(sup)
        sub2 = SubProducer(sup)

        tp1 = TestProducer()
        tp2 = TestProducer()

        sub1.registerProducer(tp1, False)
        sub2.registerProducer(tp2, False)

        self.assertEquals(sup.producer, sup) # Make sure it's registered with
                                             # itself; IOW it has called
                                             # self.transport.registerProducer(self).

        sup.pauseProducing()
        sup.resumeProducing()

        self.assertEquals(tp1.calls, ['resume', 'pause', 'resume'])
        self.assertEquals(tp2.calls, ['resume', 'pause', 'resume'])

        sup.stopProducing()
        self.assertEquals(tp1.calls, ['resume', 'pause', 'resume', 'stop'])
        self.assertEquals(tp2.calls, ['resume', 'pause', 'resume', 'stop'])
Exemplo n.º 6
0
    def testNonStreamingChoke(self):
        sup = TestSuper()
        sub1 = SubProducer(sup)
        sub2 = SubProducer(sup)

        tp1 = TestProducer()
        tp2 = TestProducer()

        sub1.registerProducer(tp1, False)
        sub2.registerProducer(tp2, False)

        self.assertEquals(tp1.calls, ['resume'])
        self.assertEquals(tp2.calls, ['resume'])

        tp1.clear()
        tp2.clear()

        self.assertEquals(sup.producer, sup)

        sub1.choke()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, [])

        sup.pauseProducing()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, ['pause'])

        sup.resumeProducing()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, ['pause', 'resume'])

        sup.pauseProducing()
        sup.resumeProducing()
        self.assertEquals(tp1.calls, ['pause'])
        self.assertEquals(tp2.calls, ['pause', 'resume', 'pause', 'resume'])
        sub1.unchoke()

        self.assertEquals(tp1.calls, ['pause', 'resume'])
        self.assertEquals(tp2.calls, ['pause', 'resume', 'pause', 'resume'])

        sup.pauseProducing()
        sub1.choke()
        sub1.choke()
        sub1.choke()
        self.assertEquals(tp1.calls, ['pause', 'resume', 'pause'])
        self.assertEquals(tp2.calls,
                          ['pause', 'resume', 'pause', 'resume', 'pause'])

        sub1.unchoke()
        self.assertEquals(tp1.calls, ['pause', 'resume', 'pause'])
        self.assertEquals(tp2.calls,
                          ['pause', 'resume', 'pause', 'resume', 'pause'])

        sup.resumeProducing()
        self.assertEquals(tp1.calls, ['pause', 'resume', 'pause', 'resume'])
        self.assertEquals(
            tp2.calls,
            ['pause', 'resume', 'pause', 'resume', 'pause', 'resume'])
        tp1.clear()
        tp2.clear()
        sup.stopProducing()

        self.assertEquals(tp1.calls, ['stop'])
        self.assertEquals(tp2.calls, ['stop'])