bodhi/controllers.py | 11 +++++++++++
bodhi/tests/test_controllers.py | 9 +++++++++
2 files changed, 20 insertions(+)
New commits:
commit 94b53fced25ff6c66a9c408e35191c9b9bd66513
Author: Luke Macken <lmacken(a)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'] == []
Show replies by date