def test_statsbeat_206_no_retry(self): _requests_map.clear() mixin = TransportMixin() mixin.options = Options() with mock.patch('requests.post') as post: post.return_value = MockResponse( 206, json.dumps({ 'itemsReceived': 3, 'itemsAccepted': 2, 'errors': [ { 'index': 0, 'statusCode': 400, 'message': '', }, ], })) result = mixin._transmit([1, 2, 3]) self.assertEqual(len(_requests_map), 3) self.assertIsNotNone(_requests_map['duration']) self.assertEqual(_requests_map['count'], 1) self.assertEqual(_requests_map['failure'], 1) self.assertEqual(result, -206) _requests_map.clear()
def test_transmission_307_circular_reference(self): mixin = TransportMixin() mixin.options = Options() mixin._consecutive_redirects = 0 mixin.options.endpoint = "https://example.com" with mock.patch('requests.post') as post: post.return_value = MockResponse( 307, '{}', {"location": "https://example.com"}) # noqa: E501 result = mixin._transmit([1, 2, 3]) self.assertEqual(result, -307) self.assertEqual(post.call_count, _MAX_CONSECUTIVE_REDIRECTS) self.assertEqual(mixin.options.endpoint, "https://example.com")
def test_statsbeat_timeout(self): _requests_map.clear() mixin = TransportMixin() mixin.options = Options() with mock.patch('requests.post', throw(requests.Timeout)): result = mixin._transmit([1, 2, 3]) self.assertEqual(len(_requests_map), 3) self.assertIsNotNone(_requests_map['duration']) self.assertEqual(_requests_map['count'], 1) self.assertEqual(_requests_map['retry'], 1) self.assertEqual(result, mixin.options.minimum_retry_interval) _requests_map.clear()
def test_statsbeat_exception(self): _requests_map.clear() mixin = TransportMixin() mixin.options = Options() with mock.patch('requests.post', throw(Exception)): result = mixin._transmit([1, 2, 3]) self.assertEqual(len(_requests_map), 3) self.assertIsNotNone(_requests_map['duration']) self.assertEqual(_requests_map['exception'], 1) self.assertEqual(_requests_map['count'], 1) self.assertEqual(result, -1) _requests_map.clear()
def test_statsbeat_439(self): _requests_map.clear() mixin = TransportMixin() mixin.options = Options() with mock.patch('requests.post') as post: post.return_value = MockResponse(439, 'unknown') result = mixin._transmit([1, 2, 3]) self.assertEqual(len(_requests_map), 3) self.assertIsNotNone(_requests_map['duration']) self.assertEqual(_requests_map['throttle'], 1) self.assertEqual(_requests_map['count'], 1) self.assertEqual(result, -439) _requests_map.clear()
def test_statsbeat_403(self): _requests_map.clear() mixin = TransportMixin() mixin.options = Options() with mock.patch('requests.post') as post: post.return_value = MockResponse(403, 'unknown') result = mixin._transmit([1, 2, 3]) self.assertEqual(len(_requests_map), 4) self.assertIsNotNone(_requests_map['duration']) self.assertEqual(_requests_map['retry'], 1) self.assertEqual(_requests_map['count'], 1) self.assertEqual(_requests_map['failure'], 1) self.assertEqual(result, mixin.options.minimum_retry_interval) _requests_map.clear()
def test_statsbeat_307(self): _requests_map.clear() mixin = TransportMixin() mixin.options = Options() mixin._consecutive_redirects = 0 mixin.options.endpoint = "test.endpoint" with mock.patch('requests.post') as post: post.return_value = MockResponse( 307, '{}', {"location": "https://example.com"}) # noqa: E501 result = mixin._transmit([1, 2, 3]) self.assertEqual(len(_requests_map), 4) self.assertIsNotNone(_requests_map['duration']) self.assertEqual(_requests_map['exception'], 1) self.assertEqual(_requests_map['count'], 10) self.assertEqual(_requests_map['failure'], 10) self.assertEqual(result, -307) _requests_map.clear()