import warnings import pytest from canaille.configuration import ConfigurationException from canaille.configuration import validate from canaille.oidc.oauth import get_issuer def test_issuer(testclient): with warnings.catch_warnings(record=True): testclient.app.config["JWT"]["ISS"] = "https://anyauth.mydomain.tld" testclient.app.config["SERVER_NAME"] = "https://otherauth.mydomain.tld" with testclient.app.test_request_context("/"): assert get_issuer() == "https://anyauth.mydomain.tld" del testclient.app.config["JWT"]["ISS"] with testclient.app.test_request_context("/"): assert get_issuer() == "https://otherauth.mydomain.tld" testclient.app.config["SERVER_NAME"] = None with testclient.app.test_request_context("/"): assert get_issuer() == "http://localhost/" def test_no_private_key(configuration): configuration["JWT"]["PRIVATE_KEY"] = "invalid-path" with pytest.raises( ConfigurationException, match=r"Private key does not exist", ): validate(configuration) def test_no_public_key(configuration): configuration["JWT"]["PUBLIC_KEY"] = "invalid-path" with pytest.raises( ConfigurationException, match=r"Public key does not exist", ): validate(configuration)