From f5330dd283065ab8914f7491f93b26a396ecc1d5 Mon Sep 17 00:00:00 2001 From: Janos Simon <janos.simon@nokia.com> Date: Sun, 18 Dec 2016 19:41:58 +0100 Subject: [PATCH] api endpoint prefixed with version (v1) --- orchestrator/api/stacks.py | 4 ++-- tests/test_api.py | 49 +++++++++++++++++++++++++------------------------ 2 files changed, 27 insertions(+), 26 deletions(-) diff --git a/orchestrator/api/stacks.py b/orchestrator/api/stacks.py index bf27f9e..9a0af10 100644 --- a/orchestrator/api/stacks.py +++ b/orchestrator/api/stacks.py @@ -99,8 +99,8 @@ def handle_bad_request(*args): def create_app(): stack_controller = Stack() app = falcon.API(middleware=[LoggingMiddleware()]) - app.add_route('/stacks', stack_controller) - app.add_route('/stacks/{stack_id}', stack_controller) + app.add_route('/v1/stacks', stack_controller) + app.add_route('/v1/stacks/{stack_id}', stack_controller) app.add_error_handler(TypeError, handle_method_not_allowed) app.add_error_handler(InvalidResourceException, handle_bad_request) return app diff --git a/tests/test_api.py b/tests/test_api.py index 976c107..36edb2b 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -7,6 +7,7 @@ from mockito import mock, when, any # pylint: disable=redefined-builtin from orchestrator.api import stacks +API_ENDPOINT = '/v1/stacks' TEST_INSTANCE_ARGS = { 'cpu_count': 2, 'memory': 256 * 1000 * 1000 @@ -29,15 +30,15 @@ class StackTest(testing.TestCase): super(StackTest, self).tearDown() def test_stacks_api_allowed_methods_on_endpoints(self): - self.assertEqual(HTTP_OK, self.simulate_get('/stacks').status) - self.assertEqual(HTTP_NOT_FOUND, self.simulate_put('/stacks/42').status) - self.assertEqual(HTTP_NOT_FOUND, self.simulate_delete('/stacks/42').status) - self.assertEqual(HTTP_NOT_FOUND, self.simulate_get('/stacks/42').status) - self.assertEqual(HTTP_BAD_REQUEST, self.simulate_post('/stacks').status) + self.assertEqual(HTTP_OK, self.simulate_get(API_ENDPOINT).status) + self.assertEqual(HTTP_NOT_FOUND, self.simulate_put('/%s/%s' % (API_ENDPOINT, 42)).status) + self.assertEqual(HTTP_NOT_FOUND, self.simulate_delete('/%s/%s' % (API_ENDPOINT, 42)).status) + self.assertEqual(HTTP_NOT_FOUND, self.simulate_get('/%s/%s' % (API_ENDPOINT, 42)).status) + self.assertEqual(HTTP_BAD_REQUEST, self.simulate_post(API_ENDPOINT).status) - self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_post('/stacks/42').status) - self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_put('/stacks').status) - self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_delete('/stacks').status) + self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_post('/%s/%s' % (API_ENDPOINT, 42)).status) + self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_put(API_ENDPOINT).status) + self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_delete(API_ENDPOINT).status) def test_stacks_api_create(self): # given @@ -81,7 +82,7 @@ class StackTest(testing.TestCase): } # when - result = self.simulate_post('/stacks', body=json.dumps(stack_request_body)) + result = self.simulate_post(API_ENDPOINT, body=json.dumps(stack_request_body)) # then self.assertEqual(sort_resources(stack_request_body), sort_resources(result.json)) @@ -92,7 +93,7 @@ class StackTest(testing.TestCase): empty_request_body = '{}' # when - result = self.simulate_post('/stacks', body=empty_request_body, headers={'content-type': 'application/json'}) + result = self.simulate_post(API_ENDPOINT, body=empty_request_body, headers={'content-type': 'application/json'}) # then self.assertIn('id', result.json.keys()) @@ -103,7 +104,7 @@ class StackTest(testing.TestCase): def test_stacks_api_create_with_empty_body(self): # when - result = self.simulate_post('/stacks', headers={'content-type': 'application/json'}) + result = self.simulate_post(API_ENDPOINT, headers={'content-type': 'application/json'}) # then self.assertEqual(HTTP_BAD_REQUEST, result.status) @@ -117,7 +118,7 @@ class StackTest(testing.TestCase): for body in invalid_request_bodies: # when - result = self.simulate_post('/stacks', body=body, headers={'content-type': 'application/json'}) + result = self.simulate_post(API_ENDPOINT, body=body, headers={'content-type': 'application/json'}) # then self.assertEqual(HTTP_BAD_REQUEST, result.status) @@ -138,9 +139,9 @@ class StackTest(testing.TestCase): } # when - self.simulate_post('/stacks', body=json.dumps(group1)) - put_result = self.simulate_put('/stacks/%s' % stack_id, body=json.dumps(group2)) - get_result = self.simulate_get('/stacks') + self.simulate_post(API_ENDPOINT, body=json.dumps(group1)) + put_result = self.simulate_put('/%s/%s' % (API_ENDPOINT, stack_id), body=json.dumps(group2)) + get_result = self.simulate_get(API_ENDPOINT) # then self.assertEqual(expected_diff, put_result.json) @@ -153,10 +154,10 @@ class StackTest(testing.TestCase): resource.update(TEST_INSTANCE_ARGS) # when - self.simulate_post('/stacks', body=json.dumps(resource)) - list_result_before_delete = self.simulate_get('/stacks') - delete_result = self.simulate_delete('/stacks/%s' % resource_id) - list_result_after_delete = self.simulate_get('/stacks') + self.simulate_post(API_ENDPOINT, body=json.dumps(resource)) + list_result_before_delete = self.simulate_get(API_ENDPOINT) + delete_result = self.simulate_delete('/%s/%s' % (API_ENDPOINT, resource_id)) + list_result_after_delete = self.simulate_get(API_ENDPOINT) # then self.assertEqual([resource], list_result_before_delete.json) @@ -171,9 +172,9 @@ class StackTest(testing.TestCase): resource2.update(TEST_INSTANCE_ARGS) # when - self.simulate_post('/stacks', body=json.dumps(resource1)) - self.simulate_post('/stacks', body=json.dumps(resource2)) - result = self.simulate_get('/stacks').json + self.simulate_post(API_ENDPOINT, body=json.dumps(resource1)) + self.simulate_post(API_ENDPOINT, body=json.dumps(resource2)) + result = self.simulate_get(API_ENDPOINT).json # then self.assertEqual(2, len(result)) @@ -187,8 +188,8 @@ class StackTest(testing.TestCase): resource.update(TEST_INSTANCE_ARGS) # when - self.simulate_post('/stacks', body=json.dumps(resource)) - result = self.simulate_get('/stacks/%s' % resource_id).json + self.simulate_post(API_ENDPOINT, body=json.dumps(resource)) + result = self.simulate_get('/%s/%s' % (API_ENDPOINT, resource_id)).json # then self.assertEqual([resource], result) -- libgit2 0.26.0