def test_retrieve(self, mock_get_method):
     """ tests that the retrieve method works expected. """
     _setup_mock_response_for_retriever(mock_get_method,
                                        self._public_key_pem)
     retriever = HTTPSMultiRepositoryPublicKeyRetriever(self.keystore_urls)
     self.assertEqual(retriever.retrieve('example/eg'),
                      self._public_key_pem)
 def test_retrieve_with_500_error(self, mock_get_method):
     """ tests that the retrieve method works as expected
         when the first key repository returns a server error response.
     """
     retriever = HTTPSMultiRepositoryPublicKeyRetriever(self.keystore_urls)
     _setup_mock_response_for_retriever(mock_get_method,
                                        self._public_key_pem)
     valid_response = mock_get_method.return_value
     del mock_get_method.return_value
     server_exception = requests.exceptions.HTTPError(response=mock.Mock(
         status_code=500))
     mock_get_method.side_effect = [server_exception, valid_response]
     self.assertEqual(retriever.retrieve('example/eg'),
                      self._public_key_pem)
 def create_retriever(self, url):
     """ returns a public key retriever created using the given url. """
     return HTTPSMultiRepositoryPublicKeyRetriever([url])
 def test_https_multi_public_key_retriever_does_not_support_strings(self):
     """ tests that HTTPSMultiRepositoryPublicKeyRetriever does not
         support a string key repository url.
     """
     with self.assertRaises(TypeError):
         HTTPSMultiRepositoryPublicKeyRetriever('https://example.com')