From 8b9bfb453ee057998ea963d370423df10c31d79e Mon Sep 17 00:00:00 2001 From: Murali Nandigama Date: Wed, 14 Apr 2010 18:01:57 -0700 Subject: [PATCH] added json output format :: usage url?json=1 --- unittest-logs/dbschema.pyc | Bin 0 -> 1225 bytes unittest-logs/unittestweb/settings.py~ | 75 +++++++++++++++++++++ unittest-logs/unittestweb/viewer/models.py | 2 + unittest-logs/unittestweb/viewer/views.py | 22 +++++- 4 files changed, 96 insertions(+), 3 deletions(-) create mode 100644 unittest-logs/dbschema.pyc create mode 100755 unittest-logs/unittestweb/settings.py~ diff --git a/unittest-logs/dbschema.pyc b/unittest-logs/dbschema.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fcf3ef3fb90ad729c1bf576283ed2b0500193fe1 GIT binary patch literal 1225 zcmb_b&2G~`5MDc>g^F_Iz-h#3BRN8ZW;aLN%b3QwRL zi+r?*^#K98vNu6v6Eru$y-l!Z0CEiIKDzbg6I|H^PZmm)8Qi2oTkRXAYEc z!69Vhum#M2>-h`@mtN2r{2f((-;K&-A@WqxU8rdG%l!^iQm5d6RB^48K#o^XEmo#v z7MB^9Tp9Wf~ANngD&}(JuR*k-H_xsQ5;!;W2sYZs_ zRgtdm&ViK6q!x1}s`5^^+277|SplWFMJ58~ZV*rn>GPwb)~(cO105>;rtumwe9Ovo zSvjqYlA9;asctM|Nvg7>2#8r^7bSOA72GY#xJ*SB7qP3V`7{=}Y)|W|Xk&w82BD8u!`!QgY(8lG0Z%s' % ("http://hg.mozilla.org/mozilla-central", self.changeset, self.changeset) + def json_changeset_link(self): + return "%s/rev/%s" % ("http://hg.mozilla.org/mozilla-central", self.changeset) def tinderbox_link(self): if self.logfile: return "http://tinderbox.mozilla.org/showlog.cgi?log=%s/%s" % (self.tree.name, self.logfile) diff --git a/unittest-logs/unittestweb/viewer/views.py b/unittest-logs/unittestweb/viewer/views.py index 6ab5dfc..d1e8632 100755 --- a/unittest-logs/unittestweb/viewer/views.py +++ b/unittest-logs/unittestweb/viewer/views.py @@ -1,13 +1,21 @@ from django.shortcuts import render_to_response, get_list_or_404 from unittestweb.viewer.models import Builds, Trees, Tests, OS_CHOICES, get_most_failing_tests, get_fails_in_timerange import re +from django.http import HttpResponse +import json def index(request): return render_to_response('viewer/index.html') def latest(request): + if request.GET.has_key('tree'): + tree =request.GET['tree'] failures = get_list_or_404(Tests.objects.all().order_by('-build__starttime')[:10]) - return render_to_response('viewer/latest.html', {'failures': failures}) + if request.GET.has_key('json'): + jtext = [{"Test_name":f.name, "Build_status":f.build.status, "Logfile": f.build.tinderbox_link(),"Changeset":f.build.json_changeset_link() , "Failure_description":f.description} for f in failures] + return HttpResponse(json.dumps(jtext)) + else: + return render_to_response('viewer/latest.html', {'failures': failures}) def index(request): failures = get_list_or_404(Tests.objects.all().order_by('-build__starttime')[:10]) @@ -35,7 +43,11 @@ def changeset(request, changeset): def tests(request): test_names = Tests.objects.values('name').distinct() - return render_to_response('viewer/tests.html', {'tests': [t['name'] for t in test_names]}) + if request.GET.has_key('json'): + jtext = list(test_names) + return HttpResponse(json.dumps(jtext)) + else: + return render_to_response('viewer/tests.html', {'tests': [t['name'] for t in test_names]}) def test(request): failures = get_list_or_404(Tests.objects.filter(name__exact=request.GET['name']).order_by('-build__starttime')) @@ -43,7 +55,11 @@ def test(request): def topfails(request): failures = get_most_failing_tests() - return render_to_response('viewer/topfails.html', {'failures': failures}) + if request.GET.has_key('json'): + jtext = list(failures) + return HttpResponse(json.dumps(jtext)) + else: + return render_to_response('viewer/topfails.html', {'failures': failures}) def Help(request): return render_to_response('viewer/Help.html')