X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/7178ac911e7b160c1348da404b5aa07b9829d3c8..97be38eaf9715da04930018db29d12894813d551:/sdk/python/tests/test_retry.py diff --git a/sdk/python/tests/test_retry.py b/sdk/python/tests/test_retry.py index 8c3916b009..2d02005937 100644 --- a/sdk/python/tests/test_retry.py +++ b/sdk/python/tests/test_retry.py @@ -1,5 +1,10 @@ -#!/usr/bin/env python +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: Apache-2.0 +from builtins import zip +from builtins import range +from builtins import object import itertools import unittest @@ -7,8 +12,6 @@ import arvados.errors as arv_error import arvados.retry as arv_retry import mock -from arvados_testutil import fake_httplib2_response - class RetryLoopTestMixin(object): @staticmethod def loop_success(result): @@ -27,7 +30,7 @@ class RetryLoopTestMixin(object): responses = itertools.chain(results, itertools.repeat(None)) retrier = arv_retry.RetryLoop(num_retries, self.loop_success, **kwargs) - for tries_left, response in itertools.izip(retrier, responses): + for tries_left, response in zip(retrier, responses): retrier.save_result(response) return retrier @@ -143,15 +146,14 @@ class RetryLoopBackoffTestCase(unittest.TestCase, RetryLoopTestMixin): def test_backoff_multiplier(self, sleep_mock, time_mock): self.run_loop(5, 500, 501, 502, 503, 504, 505, - backoff_start=5, backoff_growth=10) + backoff_start=5, backoff_growth=10, max_wait=1000000000) self.check_backoff(sleep_mock, 5, 9) class CheckHTTPResponseSuccessTestCase(unittest.TestCase): def results_map(self, *codes): for code in codes: - response = (fake_httplib2_response(code), None) - yield code, arv_retry.check_http_response_success(response) + yield code, arv_retry.check_http_response_success(code) def check(assert_name): def check_method(self, expected, *codes): @@ -169,11 +171,11 @@ class CheckHTTPResponseSuccessTestCase(unittest.TestCase): check_is_not = check('assertIsNot') def test_obvious_successes(self): - self.check_is(True, *range(200, 207)) + self.check_is(True, *list(range(200, 207))) def test_obvious_stops(self): self.check_is(False, 424, 426, 428, 431, - *range(400, 408) + range(410, 420)) + *list(range(400, 408)) + list(range(410, 420))) def test_obvious_retries(self): self.check_is(None, 500, 502, 503, 504) @@ -182,13 +184,13 @@ class CheckHTTPResponseSuccessTestCase(unittest.TestCase): self.check_is(None, 408, 409, 422, 423) def test_5xx_failures(self): - self.check_is(False, 501, *range(505, 512)) + self.check_is(False, 501, *list(range(505, 512))) def test_1xx_not_retried(self): self.check_is_not(None, 100, 101) def test_redirects_not_retried(self): - self.check_is_not(None, *range(300, 309)) + self.check_is_not(None, *list(range(300, 309))) def test_wacky_code_retries(self): self.check_is(None, 0, 99, 600, -200) @@ -204,8 +206,10 @@ class RetryMethodTestCase(unittest.TestCase): return (a, num_retries, z) - def test_positional_arg_passed(self): - self.assertEqual((3, 2, 0), self.Tester().check(3, 2)) + def test_positional_arg_raises(self): + # unsupported use -- make sure we raise rather than ignore + with self.assertRaises(TypeError): + self.assertEqual((3, 2, 0), self.Tester().check(3, 2)) def test_keyword_arg_passed(self): self.assertEqual((4, 3, 0), self.Tester().check(num_retries=3, a=4))