def test_urlopen_fail(self, mock_urlopen): entered_obj = MagicMock() entered_obj.read.side_effect = IOError('Fake IO Error') mock_urlopen().__enter__.return_value = entered_obj a = SAMLAuthenticator() a.metadata_url = 'http://foo' with pytest.raises(IOError): a._get_metadata_from_url() with pytest.raises(IOError): a._get_preferred_metadata_from_source() assert a._get_saml_metadata_etree() is None
def test_metadata_url(self, mock_urlopen): entered_obj = MagicMock() entered_obj.read.return_value = test_constants.sample_metadata_xml mock_urlopen().__enter__.return_value = entered_obj a = SAMLAuthenticator() a.metadata_url = 'http://foo' # Check that we're getting the right value assert a._get_metadata_from_url() == test_constants.sample_metadata_xml # Check that we have, at least once, called open with the provided url # TODO: Figure out how to do this so we can use 'assert_called_once_with' mock_urlopen.assert_any_call(a.metadata_url) # Check that we're reading the file entered_obj.read.assert_called_once() self._test_readable_mock(a, mock_urlopen)