Commit f5330dd2 by Simon János

api endpoint prefixed with version (v1)

parent 8267d5c4
Pipeline #635 failed with stage
in 2 minutes 10 seconds
...@@ -99,8 +99,8 @@ def handle_bad_request(*args): ...@@ -99,8 +99,8 @@ def handle_bad_request(*args):
def create_app(): def create_app():
stack_controller = Stack() stack_controller = Stack()
app = falcon.API(middleware=[LoggingMiddleware()]) app = falcon.API(middleware=[LoggingMiddleware()])
app.add_route('/stacks', stack_controller) app.add_route('/v1/stacks', stack_controller)
app.add_route('/stacks/{stack_id}', stack_controller) app.add_route('/v1/stacks/{stack_id}', stack_controller)
app.add_error_handler(TypeError, handle_method_not_allowed) app.add_error_handler(TypeError, handle_method_not_allowed)
app.add_error_handler(InvalidResourceException, handle_bad_request) app.add_error_handler(InvalidResourceException, handle_bad_request)
return app return app
......
...@@ -7,6 +7,7 @@ from mockito import mock, when, any # pylint: disable=redefined-builtin ...@@ -7,6 +7,7 @@ from mockito import mock, when, any # pylint: disable=redefined-builtin
from orchestrator.api import stacks from orchestrator.api import stacks
API_ENDPOINT = '/v1/stacks'
TEST_INSTANCE_ARGS = { TEST_INSTANCE_ARGS = {
'cpu_count': 2, 'cpu_count': 2,
'memory': 256 * 1000 * 1000 'memory': 256 * 1000 * 1000
...@@ -29,15 +30,15 @@ class StackTest(testing.TestCase): ...@@ -29,15 +30,15 @@ class StackTest(testing.TestCase):
super(StackTest, self).tearDown() super(StackTest, self).tearDown()
def test_stacks_api_allowed_methods_on_endpoints(self): def test_stacks_api_allowed_methods_on_endpoints(self):
self.assertEqual(HTTP_OK, self.simulate_get('/stacks').status) self.assertEqual(HTTP_OK, self.simulate_get(API_ENDPOINT).status)
self.assertEqual(HTTP_NOT_FOUND, self.simulate_put('/stacks/42').status) self.assertEqual(HTTP_NOT_FOUND, self.simulate_put('/%s/%s' % (API_ENDPOINT, 42)).status)
self.assertEqual(HTTP_NOT_FOUND, self.simulate_delete('/stacks/42').status) self.assertEqual(HTTP_NOT_FOUND, self.simulate_delete('/%s/%s' % (API_ENDPOINT, 42)).status)
self.assertEqual(HTTP_NOT_FOUND, self.simulate_get('/stacks/42').status) self.assertEqual(HTTP_NOT_FOUND, self.simulate_get('/%s/%s' % (API_ENDPOINT, 42)).status)
self.assertEqual(HTTP_BAD_REQUEST, self.simulate_post('/stacks').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_post('/%s/%s' % (API_ENDPOINT, 42)).status)
self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_put('/stacks').status) self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_put(API_ENDPOINT).status)
self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_delete('/stacks').status) self.assertEqual(HTTP_METHOD_NOT_ALLOWED, self.simulate_delete(API_ENDPOINT).status)
def test_stacks_api_create(self): def test_stacks_api_create(self):
# given # given
...@@ -81,7 +82,7 @@ class StackTest(testing.TestCase): ...@@ -81,7 +82,7 @@ class StackTest(testing.TestCase):
} }
# when # 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 # then
self.assertEqual(sort_resources(stack_request_body), sort_resources(result.json)) self.assertEqual(sort_resources(stack_request_body), sort_resources(result.json))
...@@ -92,7 +93,7 @@ class StackTest(testing.TestCase): ...@@ -92,7 +93,7 @@ class StackTest(testing.TestCase):
empty_request_body = '{}' empty_request_body = '{}'
# when # 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 # then
self.assertIn('id', result.json.keys()) self.assertIn('id', result.json.keys())
...@@ -103,7 +104,7 @@ class StackTest(testing.TestCase): ...@@ -103,7 +104,7 @@ class StackTest(testing.TestCase):
def test_stacks_api_create_with_empty_body(self): def test_stacks_api_create_with_empty_body(self):
# when # when
result = self.simulate_post('/stacks', headers={'content-type': 'application/json'}) result = self.simulate_post(API_ENDPOINT, headers={'content-type': 'application/json'})
# then # then
self.assertEqual(HTTP_BAD_REQUEST, result.status) self.assertEqual(HTTP_BAD_REQUEST, result.status)
...@@ -117,7 +118,7 @@ class StackTest(testing.TestCase): ...@@ -117,7 +118,7 @@ class StackTest(testing.TestCase):
for body in invalid_request_bodies: for body in invalid_request_bodies:
# when # 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 # then
self.assertEqual(HTTP_BAD_REQUEST, result.status) self.assertEqual(HTTP_BAD_REQUEST, result.status)
...@@ -138,9 +139,9 @@ class StackTest(testing.TestCase): ...@@ -138,9 +139,9 @@ class StackTest(testing.TestCase):
} }
# when # when
self.simulate_post('/stacks', body=json.dumps(group1)) self.simulate_post(API_ENDPOINT, body=json.dumps(group1))
put_result = self.simulate_put('/stacks/%s' % stack_id, body=json.dumps(group2)) put_result = self.simulate_put('/%s/%s' % (API_ENDPOINT, stack_id), body=json.dumps(group2))
get_result = self.simulate_get('/stacks') get_result = self.simulate_get(API_ENDPOINT)
# then # then
self.assertEqual(expected_diff, put_result.json) self.assertEqual(expected_diff, put_result.json)
...@@ -153,10 +154,10 @@ class StackTest(testing.TestCase): ...@@ -153,10 +154,10 @@ class StackTest(testing.TestCase):
resource.update(TEST_INSTANCE_ARGS) resource.update(TEST_INSTANCE_ARGS)
# when # when
self.simulate_post('/stacks', body=json.dumps(resource)) self.simulate_post(API_ENDPOINT, body=json.dumps(resource))
list_result_before_delete = self.simulate_get('/stacks') list_result_before_delete = self.simulate_get(API_ENDPOINT)
delete_result = self.simulate_delete('/stacks/%s' % resource_id) delete_result = self.simulate_delete('/%s/%s' % (API_ENDPOINT, resource_id))
list_result_after_delete = self.simulate_get('/stacks') list_result_after_delete = self.simulate_get(API_ENDPOINT)
# then # then
self.assertEqual([resource], list_result_before_delete.json) self.assertEqual([resource], list_result_before_delete.json)
...@@ -171,9 +172,9 @@ class StackTest(testing.TestCase): ...@@ -171,9 +172,9 @@ class StackTest(testing.TestCase):
resource2.update(TEST_INSTANCE_ARGS) resource2.update(TEST_INSTANCE_ARGS)
# when # when
self.simulate_post('/stacks', body=json.dumps(resource1)) self.simulate_post(API_ENDPOINT, body=json.dumps(resource1))
self.simulate_post('/stacks', body=json.dumps(resource2)) self.simulate_post(API_ENDPOINT, body=json.dumps(resource2))
result = self.simulate_get('/stacks').json result = self.simulate_get(API_ENDPOINT).json
# then # then
self.assertEqual(2, len(result)) self.assertEqual(2, len(result))
...@@ -187,8 +188,8 @@ class StackTest(testing.TestCase): ...@@ -187,8 +188,8 @@ class StackTest(testing.TestCase):
resource.update(TEST_INSTANCE_ARGS) resource.update(TEST_INSTANCE_ARGS)
# when # when
self.simulate_post('/stacks', body=json.dumps(resource)) self.simulate_post(API_ENDPOINT, body=json.dumps(resource))
result = self.simulate_get('/stacks/%s' % resource_id).json result = self.simulate_get('/%s/%s' % (API_ENDPOINT, resource_id)).json
# then # then
self.assertEqual([resource], result) self.assertEqual([resource], result)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment