Ejemplo n.º 1
0
 def test_SingleChunk_SingleThen(self):
     expected = [lambda r: self.assertEqual(1, r.get()), lambda r: self.assertRaises(ChokeEvent, r.get)]
     check = checker(expected, self)
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     f.then(check)
     self.wait()
     self.assertTrue(len(expected) == 0)
Ejemplo n.º 2
0
 def test_GetMultipleChunks(self):
     f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
     r1 = f.get()
     r2 = f.get()
     r3 = f.get()
     self.assertEqual(1, r1)
     self.assertEqual(2, r2)
     self.assertEqual(3, r3)
Ejemplo n.º 3
0
 def test_GetSingleChunkMultipleTimesAfterWaiting(self):
     s = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop)
     f1 = s.execute()
     f1.wait()
     f1.get()
     f2 = s.execute()
     f2.wait()
     r2 = f2.get()
     self.assertEqual(1, r2)
Ejemplo n.º 4
0
 def test_GetMultipleMixChunksWithComplexChain(self):
     def middleMan(result):
         r = result.get()
         if r == 2:
             raise Exception('=(')
         yield r
     f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
     f.then(middleMan)
     self.assertEqual(1, f.get())
     self.assertRaises(Exception, f.get)
     self.assertEqual(3, f.get())
Ejemplo n.º 5
0
    def test_SingleChunk_MultipleThen_ErrorMiddleman(self):
        expected = [lambda r: self.assertRaises(ValueError, r.get), lambda r: self.assertRaises(ValueError, r.get)]
        check = checker(expected, self)

        def middleMan(result):
            raise ValueError("Middleman")

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 6
0
    def test_SingleChunk_MultipleThen_Middleman(self):
        expected = [lambda r: self.assertEqual(2, r.get())]
        check = checker(expected, self)

        def middleMan(result):
            return result.get() + 1

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait(timeout=0.5)
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 7
0
    def test_SingleChunk_MultipleThen(self):
        expected = [lambda r: self.assertEqual(2, r.get()), lambda r: self.assertRaises(ChokeEvent, r.get)]
        check = checker(expected, self)
        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()

        def firstStep(futureResult):
            r = futureResult.get()
            return r * 2

        f.then(firstStep).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 8
0
    def test_SingleChunk_SingleThen_YieldMiddleman(self):
        expected = [lambda r: self.assertEqual(3, r.get()), lambda r: self.assertRaises(ChokeEvent, r.get)]
        check = checker(expected, self)

        def middleMan(result):
            result.get()
            yield "String that won't be seen by anyone"
            yield 3

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 9
0
    def test_GetMultipleChunksMultipleTimes(self):
        s = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop)
        f1 = s.execute()
        f1.get()
        f1.get()
        f1.get()

        f2 = s.execute()
        r21 = f2.get()
        r22 = f2.get()
        r23 = f2.get()
        self.assertEqual(1, r21)
        self.assertEqual(2, r22)
        self.assertEqual(3, r23)
Ejemplo n.º 10
0
    def test_SingleChunk_MultipleChainItems_MixedProcessing2(self):
        expected = [lambda r: self.assertEqual(6, r.get()), lambda r: self.assertRaises(ChokeEvent, r.get)]
        check = checker(expected, self)

        def firstStep(result):
            yield result.get() * 3

        def secondStep(result):
            r = result.get()
            return r * 2

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
        f.then(firstStep).then(secondStep).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 11
0
    def test_SingleChunk_SingleThen_YieldAsyncDoubleMiddlemanWithLessChunks(self):
        expected = [lambda r: self.assertEqual([4, 5, 6], r.get()), lambda r: self.assertRaises(ChokeEvent, r.get)]
        check = checker(expected, self)

        def middleMan(result):
            result.get()
            s1 = yield ServiceMock(chunks=[4, 5], T=self.T, ioLoop=self.io_loop, interval=0.002).execute()
            s2 = yield
            s3 = yield ServiceMock(chunks=[6], T=self.T, ioLoop=self.io_loop, interval=0.001).execute()
            yield [s1, s2, s3]

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop, interval=0.01).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 12
0
    def test_YieldAsyncMiddlemanExtraChunkResultsInChokeEvent(self):
        expected = [lambda r: self.assertRaises(ChokeEvent, r.get), lambda r: self.assertRaises(ChokeEvent, r.get)]
        check = checker(expected, self)

        def middleMan(result):
            result.get()
            s1 = yield ServiceMock(chunks=[4, 5], T=self.T, ioLoop=self.io_loop, interval=0.001).execute()
            s2 = yield
            # This one will lead to the ChokeEvent
            s3 = yield
            yield [s1, s2, s3]

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop, interval=0.01).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 13
0
    def test_SingleChunk_MultipleChainItems_OnlyCoroutinesProcessing(self):
        expected = [lambda r: self.assertEqual(4, r.get()), lambda r: self.assertRaises(ChokeEvent, r.get)]
        check = checker(expected, self)

        def firstStep(result):
            r = result.get()
            yield "String that won't be seen by anyone"
            yield r * 2

        def secondStep(result):
            yield result.get() * 2

        f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
        f.then(firstStep).then(secondStep).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 14
0
    def test_MultipleChunk_SingleThen_YieldMiddleman(self):
        expected = [
            lambda r: self.assertEqual(3, r.get()),
            lambda r: self.assertEqual(6, r.get()),
            lambda r: self.assertEqual(9, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            r = result.get()
            yield 'This string won\'t be seen by anyone'
            yield r * 3
        f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 15
0
    def test_MultipleChunks_MultipleThen_ErrorMiddleman(self):
        expected = [
            lambda r: self.assertEqual(2, r.get()),
            lambda r: self.assertRaises(ValueError, r.get),
            lambda r: self.assertEqual(6, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            if result.get() == 2:
                raise ValueError('Middleman')
            else:
                return result.get() * 2
        f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 16
0
    def test_MultipleChunk_SingleThen_YieldErrorMiddleman(self):
        expected = [
            lambda r: self.assertEqual(1, r.get()),
            lambda r: self.assertRaises(Exception, r.get),
            lambda r: self.assertEqual(3, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            r = result.get()
            if r == 2:
                raise Exception('=(')
            yield r
        f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 17
0
    def test_MultipleChunk_SingleThen_YieldAsyncMiddleman(self):
        expected = [
            lambda r: self.assertEqual([1, 2], r.get()),
            lambda r: self.assertEqual([2, 3], r.get()),
            lambda r: self.assertEqual([3, 4], r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            r = result.get()
            s1 = yield ServiceMock(chunks=[r, r + 1], T=self.T, ioLoop=self.io_loop, interval=0.001).execute()
            s2 = yield
            yield [s1, s2]
        f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop, interval=0.01).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 18
0
 def test_WaitWithTimeout(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop, interval=0.1).execute()
     f.wait(0.050)
     self.assertTrue(len(f._pending) == 0)
     f.wait(0.040)
     self.assertTrue(len(f._pending) == 0)
     f.wait(0.011)
     self.assertFalse(len(f._pending) == 0)
Ejemplo n.º 19
0
    def test_MultipleChunk_MultipleThen_SyncTransformation(self):
        expected = [
            lambda r: self.assertEqual({"app": "info"}, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def firstStep(result):
            r = result.get()
            return {"app": r}

        def secondStep(result):
            r = result.get()
            return r

        s = ServiceMock(chunks=["info"], T=self.T, ioLoop=self.io_loop).execute()
        s.then(firstStep).then(secondStep).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 20
0
 def middleMan(result):
     result.get()
     s1 = yield ServiceMock(chunks=[4, 5],
                            T=self.T,
                            ioLoop=self.io_loop,
                            interval=0.001).execute()
     s2 = yield
     # This one will lead to the ChokeEvent
     s3 = yield
     s4 = yield
     yield [s1, s2, s3, s4]
Ejemplo n.º 21
0
    def test_MultipleChunk_MultipleThen_SyncTransformation(self):
        expected = [
            lambda r: self.assertEqual({'app': 'info'}, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def firstStep(result):
            r = result.get()
            return {'app': r}

        def secondStep(result):
            r = result.get()
            return r

        s = ServiceMock(chunks=['info'], T=self.T,
                        ioLoop=self.io_loop).execute()
        s.then(firstStep).then(secondStep).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 22
0
    def test_MultipleChunks_MultipleThen_ErrorMiddleman(self):
        expected = [
            lambda r: self.assertEqual(2, r.get()),
            lambda r: self.assertRaises(ValueError, r.get),
            lambda r: self.assertEqual(6, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            if result.get() == 2:
                raise ValueError('Middleman')
            else:
                return result.get() * 2

        f = ServiceMock(chunks=[1, 2, 3], T=self.T,
                        ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 23
0
    def test_MultipleChunk_SingleThen_YieldErrorMiddleman(self):
        expected = [
            lambda r: self.assertEqual(1, r.get()),
            lambda r: self.assertRaises(Exception, r.get),
            lambda r: self.assertEqual(3, r.get()),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            r = result.get()
            if r == 2:
                raise Exception('=(')
            yield r

        f = ServiceMock(chunks=[1, 2, 3], T=self.T,
                        ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 24
0
 def middleMan(result):
     result.get()
     s1 = yield ServiceMock(chunks=[4, Exception(), 6],
                            T=self.T,
                            ioLoop=self.io_loop,
                            interval=0.001).execute()
     # Here exception comes
     s2 = yield
     s3 = yield
     print('This should not be seen!', s1, s2, s3)
     yield 1
Ejemplo n.º 25
0
    def test_MultipleChunk_SingleThen_YieldAsyncErrorMiddleman(self):
        expected = [
            lambda r: self.assertRaises(Exception, r.get),
            lambda r: self.assertRaises(Exception, r.get),
            lambda r: self.assertRaises(Exception, r.get),
            lambda r: self.assertRaises(ChokeEvent, r.get),
        ]
        check = checker(expected, self)

        def middleMan(result):
            result.get()
            s1 = yield ServiceMock(chunks=[4, Exception(), 6], T=self.T, ioLoop=self.io_loop, interval=0.001).execute()
            # Here exception comes
            s2 = yield
            s3 = yield
            print('This should not be seen!', s1, s2, s3)
            yield 1
        f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
        f.then(middleMan).then(check)
        self.wait()
        self.assertTrue(len(expected) == 0)
Ejemplo n.º 26
0
 def test_GetSingleChunkAfterMultipleWaiting(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     f.wait()
     f.wait()
     f.wait()
     r = f.get()
     self.assertEqual(1, r)
Ejemplo n.º 27
0
    def test_NoChunks_Yield(self):
        completed = [False]

        @chain.source
        def compare(s):
            yield s.execute()
            completed[0] = True
            self.stop()

        s = ServiceMock(chunks=[], T=self.T, ioLoop=self.io_loop)
        compare(s)
        self.wait()
        self.assertTrue(completed[0])
Ejemplo n.º 28
0
    def test_NoChunks_MultipleYield(self):
        completed = [0]

        @chain.source
        def compare(s):
            c = yield s.execute()
            try:
                completed[0] += 1
                yield
            except ChokeEvent:
                completed[0] += 1
            self.stop()

        s = ServiceMock(chunks=[], T=self.T, ioLoop=self.io_loop)
        compare(s)
        self.wait(timeout=0.5)
        self.assertEqual(completed[0], 2)
Ejemplo n.º 29
0
    def test_GetMultipleMixChunksWithComplexChain(self):
        def middleMan(result):
            r = result.get()
            if r == 2:
                raise Exception('=(')
            yield r

        f = ServiceMock(chunks=[1, 2, 3], T=self.T,
                        ioLoop=self.io_loop).execute()
        f.then(middleMan)
        self.assertEqual(1, f.get())
        self.assertRaises(Exception, f.get)
        self.assertEqual(3, f.get())
Ejemplo n.º 30
0
 def test_GetSingleErrorChunk(self):
     f = ServiceMock(chunks=[Exception('Oops')],
                     T=self.T,
                     ioLoop=self.io_loop).execute()
     self.assertRaises(Exception, f.get)
Ejemplo n.º 31
0
 def test_GetMultipleChunksDeferredly(self):
     f1 = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     f2 = ServiceMock(chunks=[2], T=self.T, ioLoop=self.io_loop).execute()
     self.assertEqual(2, f2.get())
     self.assertEqual(1, f1.get())
Ejemplo n.º 32
0
 def test_PartialGenerator(self):
     f = ServiceMock(chunks=[1, 2, 3], T=self.T, ioLoop=self.io_loop).execute()
     collect = [f.get()]
     for r in f:
         collect.append(r)
     self.assertEqual([1, 2, 3], collect)
Ejemplo n.º 33
0
 def test_GetSingleChunkTimeout(self):
     f = ServiceMock(chunks=[1],
                     T=self.T,
                     ioLoop=self.io_loop,
                     interval=0.2).execute()
     self.assertRaises(TimeoutError, f.get, 0.1)
Ejemplo n.º 34
0
 def test_MagicHasPendingResult(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     self.assertFalse(bool(f))
     f.wait()
     self.assertTrue(bool(f))
Ejemplo n.º 35
0
 def test_GetExtraChunksResultsInChokeEvent(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     r = f.get()
     self.assertEqual(1, r)
     self.assertRaises(ChokeEvent, f.get)
     self.assertRaises(ChokeEvent, f.get)
Ejemplo n.º 36
0
 def test_GetSingleChunkAfterWaiting(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     f.wait()
     r = f.get()
     self.assertEqual(1, r)
Ejemplo n.º 37
0
 def test_MagicHasPendingResult(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     self.assertFalse(bool(f))
     f.wait()
     self.assertTrue(bool(f))
Ejemplo n.º 38
0
 def test_GetExtraChunksResultsInChokeEvent(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     r = f.get()
     self.assertEqual(1, r)
     self.assertRaises(ChokeEvent, f.get)
     self.assertRaises(ChokeEvent, f.get)
Ejemplo n.º 39
0
 def test_GetMultipleMixChunks(self):
     f = ServiceMock(chunks=[ValueError("Oops1"), 1, IOError("Oops2")], T=self.T, ioLoop=self.io_loop).execute()
     self.assertRaises(ValueError, f.get)
     self.assertEqual(1, f.get())
     self.assertRaises(IOError, f.get)
Ejemplo n.º 40
0
 def test_GetMultipleChunksDeferredly(self):
     f1 = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     f2 = ServiceMock(chunks=[2], T=self.T, ioLoop=self.io_loop).execute()
     self.assertEqual(2, f2.get())
     self.assertEqual(1, f1.get())
Ejemplo n.º 41
0
 def test_GetSingleChunkMultipleTimes(self):
     s = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop)
     s.execute().get()
     r2 = s.execute().get()
     self.assertEqual(1, r2)
Ejemplo n.º 42
0
 def test_GetSingleChunkMultipleTimes(self):
     s = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop)
     s.execute().get()
     r2 = s.execute().get()
     self.assertEqual(1, r2)
Ejemplo n.º 43
0
 def test_GetSingleChunk(self):
     f = ServiceMock(chunks=[1], T=self.T, ioLoop=self.io_loop).execute()
     r = f.get()
     self.assertEqual(1, r)
Ejemplo n.º 44
0
 def firstStep():
     r1 = yield ServiceMock(chunks=[],
                            T=self.T,
                            ioLoop=self.io_loop,
                            interval=0.002).execute()
     yield 'Ok'