def test_retry_inc_attempts(self): srv = yield ToyServer.from_test(self) @srv.app.route('/foo') def route(_): pass req = { 'owner_id': '1234', 'timestamp': 5, 'attempts': 0, 'intervals': [10, 20, 30], 'request': { 'url': "%s/foo" % (srv.url,), 'method': 'GET' } } yield retry(req, persistent=False) self.assertEqual(req['attempts'], 1) yield retry(req, persistent=False) self.assertEqual(req['attempts'], 2) yield retry(req, persistent=False) self.assertEqual(req['attempts'], 3)
def test_retry_unicode(self): srv = yield ToyServer.from_test(self) reqs = [] @srv.app.route('/') def route(req): reqs.append({ 'method': req.method, 'body': req.content.read(), 'headers': { 'X-Bar': req.requestHeaders.getRawHeaders('X-Bar'), } }) yield retry({ 'owner_id': '1234', 'timestamp': 5, 'attempts': 0, 'intervals': [10, 20, 30], 'request': { 'url': u"%s" % (srv.url,), 'method': u'POST', 'body': u'foo', 'headers': {u'X-Bar': [u'baz', u'quux']} } }, persistent=False) [req] = reqs self.assertEqual(req, { 'method': 'POST', 'body': 'foo', 'headers': {'X-Bar': ['baz', 'quux']} })
def test_retry_headers(self): srv = yield ToyServer.from_test(self) headers = [] @srv.app.route('/foo') def route(req): headers.append({ 'X-Foo': req.requestHeaders.getRawHeaders('X-Foo'), 'X-Bar': req.requestHeaders.getRawHeaders('X-Bar') }) yield retry({ 'owner_id': '1234', 'timestamp': 5, 'attempts': 0, 'intervals': [10], 'request': { 'url': "%s/foo" % (srv.url,), 'method': 'POST', 'headers': { 'X-Foo': ['a', 'b'], 'X-Bar': ['c', 'd'], } } }, persistent=False) self.assertEqual(headers, [{ 'X-Foo': ['a', 'b'], 'X-Bar': ['c', 'd'], }])
def test_retry(self): srv = yield ToyServer.from_test(self) reqs = [] @srv.app.route('/foo') def route(req): reqs.append(req) return 'ok' resp = yield retry({ 'owner_id': '1234', 'timestamp': 5, 'attempts': 0, 'intervals': [10], 'request': { 'url': "%s/foo" % (srv.url,), 'method': 'POST' } }, persistent=False) self.assertEqual(resp.code, 200) self.assertEqual((yield resp.content()), 'ok') [req] = reqs self.assertEqual(req.method, 'POST')
def test_retry_data(self): srv = yield ToyServer.from_test(self) contents = [] @srv.app.route('/foo') def route(req): contents.append(req.content.read()) yield retry({ 'owner_id': '1234', 'timestamp': 5, 'attempts': 0, 'intervals': [10], 'request': { 'url': "%s/foo" % (srv.url,), 'method': 'POST', 'body': 'hi' } }, persistent=False) self.assertEqual(contents, ['hi'])