Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
headers_special.update({"X-Tra-Special-Header": "1"})
r = sess.post('/users/PD6LYSO/future_endpoint',
headers=headers_special, json={'user':user})
request.assert_called_once_with('POST',
'https://api.pagerduty.com/users/PD6LYSO/future_endpoint',
headers=headers_special, json={'user': user}, stream=False,
data=None)
request.reset_mock()
# Test hitting the rate limit
request.side_effect = [
Response(429, json.dumps({'error': {'message': 'chill out'}})),
Response(429, json.dumps({'error': {'message': 'chill out'}})),
Response(200, json.dumps({'user': user})),
]
with patch.object(pdpyras.time, 'sleep') as sleep:
r = sess.get('/users')
self.assertTrue(r.ok) # should only return after success
self.assertEqual(3, request.call_count)
self.assertEqual(2, sleep.call_count)
request.reset_mock()
request.side_effect = None
# Test a 401 (should raise Exception)
request.return_value = Response(401, json.dumps({
'error': {
'code': 2006,
'message': "You shall not pass.",
}
}))
self.assertRaises(pdpyras.PDClientError, sess.request, 'get',
'/services')
request.reset_mock()
request.side_effect = None
# Test a 401 (should raise Exception)
request.return_value = Response(401, json.dumps({
'error': {
'code': 2006,
'message': "You shall not pass.",
}
}))
self.assertRaises(pdpyras.PDClientError, sess.request, 'get',
'/services')
request.reset_mock()
# Test retry logic;
with patch.object(pdpyras.time, 'sleep') as sleep:
# Test getting a connection error and succeeding the final time.
returns = [
pdpyras.Urllib3Error("D'oh!")
]*sess.max_network_attempts
returns.append(Response(200, json.dumps({'user': user})))
request.side_effect = returns
r = sess.get('/users/P123456')
self.assertEqual(sess.max_network_attempts+1,
request.call_count)
self.assertEqual(sess.max_network_attempts, sleep.call_count)
self.assertTrue(r.ok)
request.reset_mock()
sleep.reset_mock()
# Now test handling a non-transient error:
raises = [pdpyras.RequestsError("D'oh!")]*(