bodhi/controllers.py | 11 +++++++++++ bodhi/tests/test_controllers.py | 9 +++++++++ 2 files changed, 20 insertions(+)
New commits: commit 94b53fced25ff6c66a9c408e35191c9b9bd66513 Author: Luke Macken lmacken@redhat.com Date: Mon Feb 8 15:02:04 2010 -0500
Create /metrics JSON API method, and a unit test
diff --git a/bodhi/controllers.py b/bodhi/controllers.py index ae224cb..92e6f4e 100644 --- a/bodhi/controllers.py +++ b/bodhi/controllers.py @@ -1237,3 +1237,14 @@ class Root(controllers.RootController): for build in koji.getLatestBuilds(tag, package=package): builds[tag] = build['nvr'] return builds + + @expose(allow_json=True) + def metrics(self, release=None): + metrics = {} + if release: + query = [Release.byName(release)] + else: + query = Release.select() + for release in query: + metrics[release.name] = release.metrics + return metrics diff --git a/bodhi/tests/test_controllers.py b/bodhi/tests/test_controllers.py index 6f6e9c0..57c9e34 100644 --- a/bodhi/tests/test_controllers.py +++ b/bodhi/tests/test_controllers.py @@ -18,6 +18,7 @@ from bodhi.model import Release, PackageUpdate, User, PackageBuild, Bugzilla, \ Group from bodhi.controllers import Root from bodhi.exceptions import DuplicateEntryError +from bodhi.jobs import refresh_metrics
import cherrypy cherrypy.root = Root() @@ -1851,3 +1852,11 @@ class TestControllers(testutil.DBTest): logs = testutil.get_log() assert 'Updating newly added bug: 2' in logs assert len(PackageUpdate.byTitle(params['edited']).bugs) == 2 + + def test_metrics_api(self): + release = create_release() + refresh_metrics() + testutil.create_request('/updates/metrics?tg_format=json', method='GET') + response = simplejson.loads(cherrypy.response.body[0]) + assert 'F7' in response + assert response['F7']['TopTestersMetric']['data'] == []