def test_get_empty_metadata(self): a = SAMLAuthenticator() a.metadata_filepath = None a.metadata_content = None a.metadata_url = None mock_handler_self = MagicMock() with self.assertRaises(HTTPError): a._get_redirect_from_metadata_and_redirect('md:BadElement', mock_handler_self)
def test_file_fail(self, mock_fileopen): entered_obj = MagicMock() entered_obj.read.side_effect = IOError('Fake IO Error') mock_fileopen().__enter__.return_value = entered_obj a = SAMLAuthenticator() a.metadata_url = 'bad_data' a.metadata_content = 'bad_data' a.metadata_filepath = '/completely/illegitimate/filepath' with pytest.raises(IOError): a._get_metadata_from_file() with pytest.raises(IOError): a._get_preferred_metadata_from_source() assert a._get_saml_metadata_etree() is None
def test_file_read(self, mock_fileopen): entered_obj = MagicMock() entered_obj.read.return_value = test_constants.sample_metadata_xml mock_fileopen().__enter__.return_value = entered_obj a = SAMLAuthenticator() a.metadata_url = 'bad_data' a.metadata_content = 'bad_data' a.metadata_filepath = '/completely/legitimate/filepath' assert a._get_metadata_from_file( ) == test_constants.sample_metadata_xml # Check that we have, at least once, called open with the provided filepath # TODO: Figure out how to do this so we can use 'assert_called_once_with' mock_fileopen.assert_any_call(a.metadata_filepath, 'r') # Check that we're reading the file entered_obj.read.assert_called_once() self._test_readable_mock(a, mock_fileopen)