aboutsummaryrefslogtreecommitdiff
path: root/testmanager/testreporter
diff options
context:
space:
mode:
Diffstat (limited to 'testmanager/testreporter')
-rw-r--r--testmanager/testreporter/urls.py1
-rw-r--r--testmanager/testreporter/views.py35
2 files changed, 33 insertions, 3 deletions
diff --git a/testmanager/testreporter/urls.py b/testmanager/testreporter/urls.py
index 8a724d0..aceed6d 100644
--- a/testmanager/testreporter/urls.py
+++ b/testmanager/testreporter/urls.py
@@ -8,4 +8,5 @@ urlpatterns = [
url(r'^public/$', views.Public.as_view()),
url(r'^report/(?P<tag_id>[0-9]+)/$', views.Report_View.as_view()),
+ url(r'^report/(?P<tag_id>[0-9]+)/bugs/$', views.Report_Bugs_View.as_view()),
]
diff --git a/testmanager/testreporter/views.py b/testmanager/testreporter/views.py
index 91f2639..f51e64e 100644
--- a/testmanager/testreporter/views.py
+++ b/testmanager/testreporter/views.py
@@ -22,9 +22,22 @@ from rest_framework.views import APIView
from rest_framework.response import Response
from testmanager.views import LoginRequiredMixin
-from testmanager.testrunner.models import JenkinsBuild, LavaJob, Tag
-from testmanager.testrunner.serializers import BuildSerializer, TagSerializer, LavaJobSerializer
-from testmanager.testmanualrunner.models import TestRun
+from testmanager.testrunner.models import (
+ JenkinsBuild,
+ LavaJob,
+ Tag,
+ Bug
+)
+from testmanager.testrunner.serializers import (
+ BuildSerializer,
+ TagSerializer,
+ LavaJobSerializer,
+ BugSerializer
+)
+from testmanager.testmanualrunner.models import (
+ TestRun,
+ TestRunResult
+)
from testmanager.testmanualrunner.serializers import TestRunSerializer
@@ -51,3 +64,19 @@ class Report_View(APIView):
"testruns": TestRunSerializer(testruns).data,
})
+
+class Report_Bugs_View(APIView):
+
+ def get(self, request, tag_id, format=None):
+
+ tag = Tag.objects.get(id=tag_id)
+ builds = JenkinsBuild.objects.filter(tags=tag)
+ lava_jobs = LavaJob.objects.filter(jenkins_build__in=builds)
+ testruns = TestRun.objects.filter(build__in=builds)
+ testrun_results = TestRunResult.objects.filter(test_run__in=testruns)
+ lava_job_bugs = Bug.objects.filter(lavajob__in=lava_jobs)
+ testruns_bugs = Bug.objects.filter(testrunresult__in=testrun_results)
+
+ return Response({
+ "bugs": BugSerializer(lava_job_bugs | testruns_bugs).data,
+ })