def test_get_metadata_failure_with_nonexistent_user_id(settings: SettingsWrapper): """Test get_metadata function to verify if it raises an exception given a nonexistent user_id. Args: settings (SettingsWrapper): Fixture for django settings """ settings.SAML2_AUTH["TRIGGER"]["GET_METADATA_AUTO_CONF_URLS"] = GET_METADATA_AUTO_CONF_URLS with pytest.raises(SAMLAuthError) as exc_info: get_metadata("*****@*****.**") assert str(exc_info.value) == "No metadata URL associated with the given user identifier."
def test_get_metadata_failure_with_invalid_metadata_url(settings: SettingsWrapper): """Test get_metadata function to verify if it fails with invalid metadata information. Args: settings (SettingsWrapper): Fixture for django settings """ # HTTP Responses are not mocked, so this will fail. settings.SAML2_AUTH["METADATA_AUTO_CONF_URL"] = METADATA_URL1 settings.SAML2_AUTH["TRIGGER"]["GET_METADATA_AUTO_CONF_URLS"] = None with pytest.raises(SAMLAuthError) as exc_info: get_metadata() assert str(exc_info.value) == "Invalid metadata URL."
def test_get_metadata_success_with_local_file(settings: SettingsWrapper): """Test get_metadata function to verify if correctly returns path to local metadata file. Args: settings (SettingsWrapper): Fixture for django settings """ settings.SAML2_AUTH["TRIGGER"]["GET_METADATA_AUTO_CONF_URLS"] = None settings.SAML2_AUTH["METADATA_LOCAL_FILE_PATH"] = "/absolute/path/to/metadata.xml" result = get_metadata() assert result == {"local": ["/absolute/path/to/metadata.xml"]}
def test_get_metadata_success_with_user_id(settings: SettingsWrapper): """Test get_metadata function to verify if it returns a valid metadata URLs given the user_id. Args: settings (SettingsWrapper): Fixture for django settings """ settings.SAML2_AUTH["TRIGGER"]["GET_METADATA_AUTO_CONF_URLS"] = GET_METADATA_AUTO_CONF_URLS responses.add(responses.GET, METADATA_URL1, body=METADATA1) result = get_metadata("*****@*****.**") assert result == {"remote": [{"url": METADATA_URL1}]}
def test_get_metadata_success_with_multiple_metadata_urls(settings: SettingsWrapper): """Test get_metadata function to verify if it returns multiple metadata URLs if the user_id is unknown. Args: settings (SettingsWrapper): Fixture for django settings """ settings.SAML2_AUTH["TRIGGER"]["GET_METADATA_AUTO_CONF_URLS"] = GET_METADATA_AUTO_CONF_URLS responses.add(responses.GET, METADATA_URL1, body=METADATA1) responses.add(responses.GET, METADATA_URL2, body=METADATA2) result = get_metadata() assert result == {"remote": [{"url": METADATA_URL1}, {"url": METADATA_URL2}]}
def test_get_metadata_success_with_single_metadata_url(settings: SettingsWrapper): """Test get_metadata function to verify if it returns a valid metadata URL with a correct format. Args: settings (SettingsWrapper): Fixture for django settings """ settings.SAML2_AUTH["METADATA_AUTO_CONF_URL"] = METADATA_URL1 settings.SAML2_AUTH["TRIGGER"]["GET_METADATA_AUTO_CONF_URLS"] = None responses.add(responses.GET, METADATA_URL1, body=METADATA1) result = get_metadata() assert result == {"remote": [{"url": METADATA_URL1}]}