From 27250263eabe929d7273b55b11b12f7b8ce977bc Mon Sep 17 00:00:00 2001 From: mprahl Date: Thu, 5 Oct 2017 14:40:44 -0400 Subject: [PATCH] Default verbose to on ordering by id in the module-builds API --- module_build_service/utils.py | 6 ++--- module_build_service/views.py | 2 +- tests/test_views/test_views.py | 48 ++++++++++++++++++---------------- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/module_build_service/utils.py b/module_build_service/utils.py index 34861aff..adf95b8e 100644 --- a/module_build_service/utils.py +++ b/module_build_service/utils.py @@ -396,9 +396,9 @@ def filter_component_builds(flask_request): if search_query: query = query.filter_by(**search_query) - # Order the results by any column in the ModuleBuild table. - order_by = flask_request.args.get("order_by", None) - order_desc_by = flask_request.args.get("order_desc_by", None) + # Order the results by any column in the ModuleBuild table but default to id. + order_by = flask_request.args.get('order_by', 'id') + order_desc_by = flask_request.args.get('order_desc_by', None) if order_by or order_desc_by: column = getattr(models.ComponentBuild, order_desc_by or order_by, None) if column: diff --git a/module_build_service/views.py b/module_build_service/views.py index 1ad42798..057dc637 100644 --- a/module_build_service/views.py +++ b/module_build_service/views.py @@ -85,7 +85,7 @@ class AbstractQueryableBuildAPI(MethodView): def get(self, id): - verbose_flag = request.args.get('verbose', 'false') + verbose_flag = request.args.get('verbose', 'true') if id is None: # Lists all tracked builds diff --git a/tests/test_views/test_views.py b/tests/test_views/test_views.py index cfb4207f..104b3e50 100644 --- a/tests/test_views/test_views.py +++ b/tests/test_views/test_views.py @@ -226,12 +226,6 @@ class TestViews(unittest.TestCase): def test_query_builds(self): rv = self.client.get('/module-build-service/1/module-builds/?per_page=2') - items = json.loads(rv.data)['items'] - self.assertEquals(items, - [{u'state': 3, u'id': 1}, {u'state': 3, u'id': 2}]) - - def test_query_builds_verbose(self): - rv = self.client.get('/module-build-service/1/module-builds/?per_page=2&verbose=True') item = json.loads(rv.data)['items'][0] self.assertEquals(item['id'], 1) self.assertEquals(item['name'], 'nginx') @@ -257,20 +251,13 @@ class TestViews(unittest.TestCase): self.assertEquals(item['time_modified'], '2016-09-03T11:25:32Z') self.assertEquals(item['time_submitted'], '2016-09-03T11:23:20Z') - def test_query_component_build(self): - rv = self.client.get('/module-build-service/1/component-builds/1') - data = json.loads(rv.data) - self.assertEquals(data['id'], 1) - self.assertEquals(data['format'], 'rpms') - self.assertEquals(data['module_build'], 1) - self.assertEquals(data['package'], 'nginx') - self.assertEquals(data['state'], 1) - self.assertEquals(data['state_name'], 'COMPLETE') - self.assertEquals(data['state_reason'], None) - self.assertEquals(data['task_id'], 12312345) + def test_query_builds_not_verbose(self): + rv = self.client.get('/module-build-service/1/module-builds/?per_page=2&verbose=false') + items = json.loads(rv.data)['items'] + self.assertEquals(items, [{u'state': 3, u'id': 1}, {u'state': 3, u'id': 2}]) - def test_query_component_build_verbose(self): - rv = self.client.get('/module-build-service/1/component-builds/3?verbose=1') + def test_query_component_build(self): + rv = self.client.get('/module-build-service/1/component-builds/3') data = json.loads(rv.data) self.assertEquals(data['id'], 3) self.assertEquals(data['format'], 'rpms') @@ -285,6 +272,18 @@ class TestViews(unittest.TestCase): self.assertEquals(data['state_trace'][0]['state'], 1) self.assertEquals(data['state_trace'][0]['state_name'], 'wait') + def test_query_component_build_not_verbose(self): + rv = self.client.get('/module-build-service/1/component-builds/1?verbose=false') + data = json.loads(rv.data) + self.assertEquals(data['id'], 1) + self.assertEquals(data['format'], 'rpms') + self.assertEquals(data['module_build'], 1) + self.assertEquals(data['package'], 'nginx') + self.assertEquals(data['state'], 1) + self.assertEquals(data['state_name'], 'COMPLETE') + self.assertEquals(data['state_reason'], None) + self.assertEquals(data['task_id'], 12312345) + component_builds_filters = ['tagged', 'ref', 'format'] def test_query_component_builds_filter_format(self): @@ -389,12 +388,15 @@ class TestViews(unittest.TestCase): self.assertEquals(data['status'], 400) def test_query_builds_order_by(self): + build = db.session.query(module_build_service.models.ModuleBuild).filter_by(id=2).one() + build.name = 'candy' + db.session.add(build) + db.session.commit() rv = self.client.get('/module-build-service/1/module-builds/?' - 'per_page=10&order_by=id') + 'per_page=10&order_by=name') items = json.loads(rv.data)['items'] - # Check that the id is 1, 2, 3, ..., 10 - for idx, item in enumerate(items): - self.assertEquals(item["id"], idx + 1) + self.assertEqual(items[0]['name'], 'candy') + self.assertEqual(items[1]['name'], 'nginx') def test_query_builds_order_desc_by(self): rv = self.client.get('/module-build-service/1/module-builds/?'