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'])
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)
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)
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'])
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)
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)
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'])
def test_not_iterable_twice(self): resp = Response('foo') self.assertEqual(list(resp), ['foo']) self.assertEqual(list(resp), [])
def test_single_pair_response(self): resp = Response(('foo', 'bar')) self.assertEqual(list(resp), [('foo', 'bar')])
def test_init_by_string(self): resp = Response('foo') self.assertEqual(list(resp), ['foo'])