def test_auth_and_reauth_token(): # TODO: need to check what the purpose of this test is, and how it works with the automatic auth check on CL init # if there's environ vars for username and password set # then delete them b/c we rely on specific usernames # and passwords for this test! try: del os.environ["SIMPLE_PASS"] del os.environ["SIMPLE_USER"] except: pass # mock always successful authentication: responses.add(responses.POST, "https://0.0.0.0/fake_url/api/v0/authenticate", json="7bbcan78a98bch7nh3cm7hao3nc7") responses.add(responses.GET, "https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected") responses.add(responses.GET, "https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected", status=401) responses.add(responses.GET, "https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected") responses.add(responses.GET, "https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected", status=401) with pytest.raises(InitializationError): # Test returns custom exception when instructed to raise onk cl = ClientLibrary(url="http://0.0.0.0/fake_url/", username="******", password="******", raise_for_auth_failure=True) cl = ClientLibrary(url="http://0.0.0.0/fake_url/", username="******", password="******") cl.wait_for_lld_connected() # last request fails as after reauthentication status code of response is still 401: # with pytest.raises(requests.exceptions.HTTPError) as: # client_library.wait_for_lld_connected() # assert exc.value.response.status_code ==1 assert (responses.calls[0].request.url == "https://0.0.0.0/fake_url/api/v0/authenticate") assert json.loads(responses.calls[0].request.body) == { "username": "******", "password": "******", } assert (responses.calls[1].request.url == "https://0.0.0.0/fake_url/api/v0/labs") assert responses.calls[1].request.method == "GET" assert (responses.calls[2].request.url == "https://0.0.0.0/fake_url/api/v0/authenticate") assert (responses.calls[3].request.url == "https://0.0.0.0/fake_url/api/v0/labs") assert (responses.calls[4].request.url == "https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected") assert len(responses.calls) == 5
def test_ssl_certificate_from_env_variable(monkeypatch, mocked_session): monkeypatch.setitem(os.environ, "CA_BUNDLE", "/home/user/cert.pem") cl = ClientLibrary(url="http://0.0.0.0/fake_url/", username="******", password="******") cl.wait_for_lld_connected() assert cl.session.verify == "/home/user/cert.pem" assert cl.session.mock_calls == [ call.get("https://0.0.0.0/fake_url/api/v0/labs"), call.get().raise_for_status(), call.get("https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected"), call.get().raise_for_status() ]
def test_ssl_certificate(mocked_session): cl = ClientLibrary( url="http://0.0.0.0/fake_url/", username="******", password="******", ssl_verify="/home/user/cert.pem", ) cl.wait_for_lld_connected() assert cl.session.verify == "/home/user/cert.pem" assert cl.session.mock_calls == [ call.get("https://0.0.0.0/fake_url/api/v0/labs"), call.get().raise_for_status(), call.get("https://0.0.0.0/fake_url/api/v0/wait_for_lld_connected"), call.get().raise_for_status() ]