def test_fetch_service_config_failed(self): mock_response = mock.MagicMock() mock_response.status = 403 mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client with self.assertRaisesRegexp(Exception, u"status code 403"): service_config.fetch_service_config()
def test_fetch_service_config_failed(self): mock_response = mock.MagicMock() mock_response.status = 403 mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client with self.assertRaisesRegexp(Exception, u"status code 403"): service_config.fetch_service_config()
def test_fetch_service_config_failed_not_found(self): mock_response = mock.MagicMock() mock_response.status = 404 mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client expected_message = (u"The service 'test_service_name' was found, but no service config " u"was found for version 'test_service_version'.") with self.assertRaisesRegexp(service_config.ServiceConfigException, expected_message): service_config.fetch_service_config()
def test_fetch_service_config_failed_forbidden(self): mock_response = mock.MagicMock() mock_response.status = 403 mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client expected_message = (u"No service 'test_service_name' found or permission denied. " u"If this is a new Endpoints service, make sure you've deployed " u"the service config using gcloud.") with self.assertRaisesRegexp(service_config.ServiceConfigException, expected_message): service_config.fetch_service_config()
def test_fetch_service_config_failed_not_found(self): mock_response = mock.MagicMock() mock_response.status = 404 mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client expected_message = ( u"The service 'test_service_name' was found, but no service config " u"was found for version 'test_service_version'.") with self.assertRaisesRegexp(service_config.ServiceConfigException, expected_message): service_config.fetch_service_config()
def test_fetch_service_config_failed_forbidden(self): mock_response = mock.MagicMock() mock_response.status = 403 mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client expected_message = ( u"No service 'test_service_name' found or permission denied. " u"If this is a new Endpoints service, make sure you've deployed " u"the service config using gcloud.") with self.assertRaisesRegexp(service_config.ServiceConfigException, expected_message): service_config.fetch_service_config()
def test_fetch_service_config_with_wrong_service_version(self): mock_response = mock.MagicMock() mock_response.status = 200 config = copy.deepcopy(ServiceConfigFetchTest._SERVICE_CONFIG_JSON) config[u"id"] = u"incorrect_service_version" mock_response.data = json.dumps(config) mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client message = (u"Unexpected service version in service config: " + config[u"id"]) with self.assertRaisesRegexp(ValueError, message): service_config.fetch_service_config()
def test_fetch_service_config_with_wrong_service_name(self): mock_response = mock.MagicMock() mock_response.status = 200 config = copy.deepcopy(ServiceConfigFetchTest._SERVICE_CONFIG_JSON) config[u"name"] = u"incorrect_service_name" mock_response.data = json.dumps(config) mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client message = (u"Unexpected service name in service config: " + config[u"name"]) with self.assertRaisesRegexp(ValueError, message): service_config.fetch_service_config()
def test_no_service_version(self): del os.environ[u"ENDPOINTS_SERVICE_VERSION"] list_mock_response = mock.MagicMock() list_mock_response.status = 200 list_mock_response.data = json.dumps(ServiceConfigFetchTest._SERVICE_CONFIG_LIST_JSON) config_mock_response = mock.MagicMock() config_mock_response.status = 200 config_mock_response.data = json.dumps(ServiceConfigFetchTest._SERVICE_CONFIG_JSON) mock_http_client = mock.MagicMock() mock_http_client.request.side_effect = [list_mock_response, config_mock_response] ServiceConfigFetchTest._get_http_client.return_value = mock_http_client service = encoding.JsonToMessage(sm_messages.Service, json.dumps(self._SERVICE_CONFIG_JSON)) self.assertEqual(service, service_config.fetch_service_config()) self.assertEqual(2, mock_http_client.request.call_count) headers={u"Authorization": u"Bearer " + ServiceConfigFetchTest._ACCESS_TOKEN} template = service_config._SERVICE_MGMT_URL_TEMPLATE url1 = template.format(ServiceConfigFetchTest._SERVICE_NAME, '').rstrip('/') url2 = template.format(ServiceConfigFetchTest._SERVICE_NAME, ServiceConfigFetchTest._SERVICE_VERSION) call1 = mock.call(u"GET", url1, headers=headers) call2 = mock.call(u"GET", url2, headers=headers) mock_http_client.request.assert_has_calls([call1, call2])
def test_fetch_service_config(self): mock_response = mock.MagicMock() mock_response.status = 200 mock_response.data = json.dumps(ServiceConfigFetchTest._SERVICE_CONFIG_JSON) mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client service = encoding.JsonToMessage(messages.Service, json.dumps(self._SERVICE_CONFIG_JSON)) self.assertEqual(service, service_config.fetch_service_config()) template = service_config._SERVICE_MGMT_URL_TEMPLATE url = template.format(ServiceConfigFetchTest._SERVICE_NAME, ServiceConfigFetchTest._SERVICE_VERSION) headers={u"Authorization": u"Bearer " + ServiceConfigFetchTest._ACCESS_TOKEN} mock_http_client.request.assert_called_once_with(u"GET", url, headers=headers)
def test_fetch_service_config(self): mock_response = mock.MagicMock() mock_response.status = 200 mock_response.data = json.dumps(ServiceConfigFetchTest._SERVICE_CONFIG_JSON) mock_http_client = mock.MagicMock() mock_http_client.request.return_value = mock_response ServiceConfigFetchTest._get_http_client.return_value = mock_http_client service = encoding.JsonToMessage(sm_messages.Service, json.dumps(self._SERVICE_CONFIG_JSON)) self.assertEqual(service, service_config.fetch_service_config()) template = service_config._SERVICE_MGMT_URL_TEMPLATE url = template.format(ServiceConfigFetchTest._SERVICE_NAME, ServiceConfigFetchTest._SERVICE_VERSION) headers={u"Authorization": u"Bearer " + ServiceConfigFetchTest._ACCESS_TOKEN} mock_http_client.request.assert_called_once_with(u"GET", url, headers=headers)
def test_no_service_version(self): del os.environ[u"ENDPOINTS_SERVICE_VERSION"] list_mock_response = mock.MagicMock() list_mock_response.status = 200 list_mock_response.data = json.dumps( ServiceConfigFetchTest._SERVICE_CONFIG_LIST_JSON) config_mock_response = mock.MagicMock() config_mock_response.status = 200 config_mock_response.data = json.dumps( ServiceConfigFetchTest._SERVICE_CONFIG_JSON) mock_http_client = mock.MagicMock() mock_http_client.request.side_effect = [ list_mock_response, config_mock_response ] ServiceConfigFetchTest._get_http_client.return_value = mock_http_client service = encoding.JsonToMessage(sm_messages.Service, json.dumps(self._SERVICE_CONFIG_JSON)) self.assertEqual(service, service_config.fetch_service_config()) self.assertEqual(2, mock_http_client.request.call_count) headers = { u"Authorization": u"Bearer " + ServiceConfigFetchTest._ACCESS_TOKEN } template = service_config._SERVICE_MGMT_URL_TEMPLATE url1 = template.format(ServiceConfigFetchTest._SERVICE_NAME, '').rstrip('/') url2 = template.format(ServiceConfigFetchTest._SERVICE_NAME, ServiceConfigFetchTest._SERVICE_VERSION) call1 = mock.call(u"GET", url1, headers=headers) call2 = mock.call(u"GET", url2, headers=headers) mock_http_client.request.assert_has_calls([call1, call2])
def test_no_service_version(self): del os.environ[u"ENDPOINTS_SERVICE_VERSION"] message = u'The "ENDPOINTS_SERVICE_VERSION" environment variable is not set' with self.assertRaisesRegexp(ValueError, message): service_config.fetch_service_config()
def test_no_service_version(self): del os.environ[u"ENDPOINTS_SERVICE_VERSION"] message = u'The "ENDPOINTS_SERVICE_VERSION" environment variable is not set' with self.assertRaisesRegexp(ValueError, message): service_config.fetch_service_config()