diff --git a/magnum/api/controllers/root.py b/magnum/api/controllers/root.py index 89113951cf..75b91a99a4 100644 --- a/magnum/api/controllers/root.py +++ b/magnum/api/controllers/root.py @@ -48,7 +48,8 @@ class RootController(object): @wsme_pecan.wsexpose([Version]) def index(self): host_url = '%s/%s' % (pecan.request.host_url, 'v1') - Version(id='v1.0', + v1 = Version(id='v1.0', status='CURRENT', link=common_types.Link(target_name='v1', href=host_url)) + return [v1] diff --git a/magnum/tests/test_functional.py b/magnum/tests/test_functional.py index 4147305deb..4c1f7bb02d 100644 --- a/magnum/tests/test_functional.py +++ b/magnum/tests/test_functional.py @@ -15,6 +15,32 @@ from magnum import tests class TestRootController(tests.FunctionalTest): + def test_version(self): + expected = [{'status': 'CURRENT', + 'link': {'href': 'http://localhost/v1', + 'target_name': 'v1'}, + 'id': 'v1.0'}] + response = self.app.get('/') + self.assertEqual(expected, response.json) + + def test_v1_controller_redirect(self): + response = self.app.get('/v1') + self.assertEqual(302, response.status_int) + self.assertEqual('http://localhost/v1/', + response.headers['Location']) + + def test_v1_controller(self): + expected = {'containers_uri': 'http://localhost/v1/containers', + 'name': 'magnum', + 'services_uri': 'http://localhost/v1/services', + 'type': 'platform', + 'uri': 'http://localhost/v1', + 'bays_uri': 'http://localhost/v1/bays', + 'description': 'magnum native implementation', + 'pods_uri': 'http://localhost/v1/pods'} + response = self.app.get('/v1/') + self.assertEqual(expected, response.json) + def test_get_not_found(self): response = self.app.get('/a/bogus/url', expect_errors=True) - assert response.status_int == 404 + assert response.status_int == 404 \ No newline at end of file