예제 #1
0
    def test_concat_responses(self):
        orig_resp = Response('foo')
        resp = orig_resp(Response('bar'))
        self.assertTrue(orig_resp is resp)

        resp = resp(Response('baz'))

        self.assertEqual(list(resp), ['foo', 'bar', 'baz'])
예제 #2
0
    def test_lazy_iterator(self):
        gen = (i for i in range(3))
        resp = Response(42)(gen)

        self.assertEqual(gen.next(), 0)
        self.assertEqual(resp.next(), "42")
        self.assertEqual(gen.next(), 1)
        self.assertEqual(resp.next(), 2)
        self.assertRaises(StopIteration, gen.next)
예제 #3
0
    def test_lazy_iterator(self):
        gen = (i for i in range(3))
        resp = Response(42)(gen)

        self.assertEqual(gen.next(), 0)
        self.assertEqual(resp.next(), '42')
        self.assertEqual(gen.next(), 1)
        self.assertEqual(resp.next(), 2)
        self.assertRaises(StopIteration, gen.next)
예제 #4
0
    def test_init_by_other(self):
        class Foo(object):
            def __str__(self):
                return 'foo'

        resp = Response(42)
        self.assertEqual(list(resp), ['42'])

        resp = Response(Foo())
        self.assertEqual(list(resp), ['foo'])
예제 #5
0
    def test_coroutine(self):
        def gen():
            ok = yield "foo"
            assert ok
            ok = yield "bar"
            assert ok

        resp = Response(gen())
        self.assertEqual(resp.send(None), "foo")
        self.assertEqual(resp.send(True), "bar")
        self.assertRaises(StopIteration, resp.send, True)
예제 #6
0
    def test_coroutine(self):
        def gen():
            ok = yield 'foo'
            assert ok
            ok = yield 'bar'
            assert ok

        resp = Response(gen())
        self.assertEqual(resp.send(None), 'foo')
        self.assertEqual(resp.send(True), 'bar')
        self.assertRaises(StopIteration, resp.send, True)
예제 #7
0
    def test_init_by_iterable(self):
        resp = Response([1, 2, 3])
        self.assertEqual(list(resp), [1, 2, 3])

        resp = Response(('foo', 'bar', 'baz'))
        self.assertEqual(list(resp), ['foo', 'bar', 'baz'])

        resp = Response(xrange(2))
        self.assertEqual(list(resp), [0, 1])

        resp = Response({'foo': 'bar'})
        self.assertEqual(list(resp), ['foo'])
예제 #8
0
 def test_not_iterable_twice(self):
     resp = Response('foo')
     self.assertEqual(list(resp), ['foo'])
     self.assertEqual(list(resp), [])
예제 #9
0
 def test_single_pair_response(self):
     resp = Response(('foo', 'bar'))
     self.assertEqual(list(resp), [('foo', 'bar')])
예제 #10
0
 def test_init_by_string(self):
     resp = Response('foo')
     self.assertEqual(list(resp), ['foo'])