def test_retries(monkeypatch): session = MagicMock() session.return_value.get.return_value.text = 'OK' monkeypatch.setattr('requests.Session', session) http = HttpWrapper('http://example.org', max_retries=10) assert 'OK' == http.text() assert session.return_value.get.called
def test_retries(monkeypatch): session = MagicMock() session.return_value.get.return_value.text = 'OK' monkeypatch.setattr('requests.Session', session) http = HttpWrapper('http://example.org', max_retries=10) assert 'OK' == http.text() assert session.return_value.get.called
def test_retries(monkeypatch): session = MagicMock() session.return_value.get.return_value.text = "OK" monkeypatch.setattr("requests.Session", session) http = HttpWrapper("http://example.org", max_retries=10) assert "OK" == http.text() assert session.return_value.get.called
def test_http_redirects(monkeypatch, fx_redirects): kwargs, code = fx_redirects exp_allow_redirects = False if 'allow_redirects' not in kwargs else kwargs[ 'allow_redirects'] resp = MagicMock() resp.status_code = code resp.text = '' redirect_url = 'http://example.org/some-file' resp.headers = {'Location': redirect_url} method = MagicMock() method.return_value = resp patch = 'requests.{}'.format(kwargs['method'].lower()) monkeypatch.setattr(patch, method) http = HttpWrapper('http://example.org', **kwargs) assert code == http.code() assert '' == http.text() assert redirect_url == http.headers()['Location'] method.assert_called_once_with('http://example.org', auth=None, headers={'User-Agent': get_user_agent()}, params=None, timeout=10, verify=True, allow_redirects=exp_allow_redirects)
def test_http(monkeypatch): resp = MagicMock() resp.status_code = 200 resp.text = '"foo"' resp.content = resp.text resp.json.return_value = 'foo' get = MagicMock() get.return_value = resp monkeypatch.setattr('requests.get', get) http = HttpWrapper('http://example.org') assert 200 == http.code() assert '"foo"' == http.text() assert 'foo' == http.json() assert 5 == http.content_size() get.assert_called_once_with('http://example.org', auth=None, headers={'User-Agent': get_user_agent()}, params=None, timeout=10, verify=True, allow_redirects=True) resp.json.side_effect = Exception('JSON fail') with pytest.raises(HttpError) as ex: http.json() assert 'JSON fail' == ex.value.message
def test_basicauth(monkeypatch): resp = MagicMock() resp.text = 'OK' get = MagicMock() get.return_value = resp monkeypatch.setattr('requests.get', get) http = HttpWrapper('http://*****:*****@example.org', timeout=2) assert 'OK' == http.text() get.assert_called_with('http://example.org', auth=('user', 'pass'), headers={'User-Agent': get_user_agent()}, params=None, timeout=2, verify=True, allow_redirects=True) get.side_effect = requests.Timeout('timed out') http = HttpWrapper('http://*****:*****@example.org') with pytest.raises(HttpError) as ex: http.text() # verify that our basic auth credentials are not exposed in the exception message assert 'HTTP request failed for http://example.org: timeout' == str(ex.value)
def test_basicauth(monkeypatch): resp = MagicMock() resp.text = 'OK' get = MagicMock() get.return_value = resp monkeypatch.setattr('requests.get', get) http = HttpWrapper('http://*****:*****@example.org', timeout=2) assert 'OK' == http.text() get.assert_called_with('http://example.org', auth=('user', 'pass'), headers={'User-Agent': get_user_agent()}, params=None, timeout=2, verify=True, allow_redirects=True) get.side_effect = requests.Timeout('timed out') http = HttpWrapper('http://*****:*****@example.org') with pytest.raises(HttpError) as ex: http.text() # verify that our basic auth credentials are not exposed in the exception message assert 'HTTP request failed for http://example.org: timeout' == str(ex.value)
def test_oauth2(monkeypatch): resp = MagicMock() resp.status_code = 218 resp.text = 'OK' get = MagicMock() get.return_value = resp monkeypatch.setattr('requests.get', get) monkeypatch.setattr('tokens.get', lambda x: 'mytok' if x is 'uid' else 'myothertok') http = HttpWrapper('http://example.org', oauth2=True, timeout=2) assert 218 == http.code() assert 'OK' == http.text() get.assert_called_with('http://example.org', auth=None, headers={'Authorization': 'Bearer mytok', 'User-Agent': get_user_agent()}, params=None, timeout=2, verify=True, allow_redirects=True) http = HttpWrapper('http://example.org', oauth2=True, oauth2_token_name='foo', timeout=2) assert 218 == http.code() assert 'OK' == http.text() get.assert_called_with('http://example.org', auth=None, headers={'Authorization': 'Bearer myothertok', 'User-Agent': get_user_agent()}, params=None, timeout=2, verify=True, allow_redirects=True)
def test_oauth2(monkeypatch): resp = MagicMock() resp.status_code = 218 resp.text = 'OK' get = MagicMock() get.return_value = resp monkeypatch.setattr('requests.get', get) monkeypatch.setattr('tokens.get', lambda x: 'mytok' if x is 'uid' else 'myothertok') http = HttpWrapper('http://example.org', oauth2=True, timeout=2) assert 218 == http.code() assert 'OK' == http.text() get.assert_called_with('http://example.org', auth=None, headers={'Authorization': 'Bearer mytok', 'User-Agent': get_user_agent()}, params=None, timeout=2, verify=True, allow_redirects=True) http = HttpWrapper('http://example.org', oauth2=True, oauth2_token_name='foo', timeout=2) assert 218 == http.code() assert 'OK' == http.text() get.assert_called_with('http://example.org', auth=None, headers={'Authorization': 'Bearer myothertok', 'User-Agent': get_user_agent()}, params=None, timeout=2, verify=True, allow_redirects=True)
def test_basicauth(monkeypatch): resp = MagicMock() resp.text = "OK" get = MagicMock() get.return_value = resp monkeypatch.setattr("requests.get", get) http = HttpWrapper("http://*****:*****@example.org", timeout=2) assert "OK" == http.text() get.assert_called_with( "http://example.org", auth=("user", "pass"), headers={"User-Agent": "zmon-worker/0.1"}, params=None, timeout=2, verify=True, ) get.side_effect = requests.Timeout("timed out") http = HttpWrapper("http://*****:*****@example.org") with pytest.raises(HttpError) as ex: http.text() # verify that our basic auth credentials are not exposed in the exception message assert "HTTP request failed for http://example.org: timeout" == str(ex.value)
def test_http(monkeypatch): resp = MagicMock() resp.status_code = 200 resp.text = '"foo"' resp.content = resp.text resp.json.return_value = "foo" get = MagicMock() get.return_value = resp monkeypatch.setattr("requests.get", get) http = HttpWrapper("http://example.org") assert 200 == http.code() assert '"foo"' == http.text() assert "foo" == http.json() assert 5 == http.content_size() resp.json.side_effect = Exception("JSON fail") with pytest.raises(HttpError) as ex: http.json() assert "JSON fail" == ex.value.message
def test_oauth2(monkeypatch): resp = MagicMock() resp.status_code = 218 resp.text = "OK" get = MagicMock() get.return_value = resp monkeypatch.setattr("requests.get", get) monkeypatch.setattr("tokens.get", lambda x: "mytok") http = HttpWrapper("http://example.org", oauth2=True, timeout=2) assert 218 == http.code() assert "OK" == http.text() get.assert_called_once_with( "http://example.org", auth=None, headers={"Authorization": "Bearer mytok", "User-Agent": "zmon-worker/0.1"}, params=None, timeout=2, verify=True, )
def test_http(monkeypatch): resp = MagicMock() resp.status_code = 200 resp.text = '"foo"' resp.content = resp.text resp.json.return_value = 'foo' get = MagicMock() get.return_value = resp monkeypatch.setattr('requests.get', get) http = HttpWrapper('http://example.org') assert 200 == http.code() assert '"foo"' == http.text() assert 'foo' == http.json() assert 5 == http.content_size() get.assert_called_once_with('http://example.org', auth=None, headers={'User-Agent': get_user_agent()}, params=None, timeout=10, verify=True, allow_redirects=True) resp.json.side_effect = Exception('JSON fail') with pytest.raises(HttpError) as ex: http.json() assert 'JSON fail' == ex.value.message
def test_http_redirects(monkeypatch, fx_redirects): kwargs, code = fx_redirects exp_allow_redirects = False if 'allow_redirects' not in kwargs else kwargs['allow_redirects'] resp = MagicMock() resp.status_code = code resp.text = '' redirect_url = 'http://example.org/some-file' resp.headers = {'Location': redirect_url} method = MagicMock() method.return_value = resp patch = 'requests.{}'.format(kwargs['method'].lower()) monkeypatch.setattr(patch, method) http = HttpWrapper('http://example.org', **kwargs) assert code == http.code() assert '' == http.text() assert redirect_url == http.headers()['Location'] method.assert_called_once_with('http://example.org', auth=None, headers={'User-Agent': get_user_agent()}, params=None, timeout=10, verify=True, allow_redirects=exp_allow_redirects)