aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lava_results_app/dbutils.py24
-rw-r--r--lava_results_app/templates/lava_results_app/case.html4
-rw-r--r--lava_results_app/templatetags/results_accessibility_tags.py9
-rw-r--r--lava_results_app/tests/test_names.py3
-rw-r--r--lava_results_app/views/__init__.py5
5 files changed, 24 insertions, 21 deletions
diff --git a/lava_results_app/dbutils.py b/lava_results_app/dbutils.py
index 6c1bd1834..3c8cbe400 100644
--- a/lava_results_app/dbutils.py
+++ b/lava_results_app/dbutils.py
@@ -171,24 +171,14 @@ def map_scanned_results(results, job, meta_filename): # pylint: disable=too-man
if 'duration' in results:
measurement = results['duration']
units = 'seconds'
- try:
- # For lava test suite, the test (actions) can be seen two times.
- case = TestCase.objects.get(name=name, suite=suite)
- case.test_set = testset
- case.metadata = yaml.dump(results)
- case.result = result_val
- case.measurement = measurement
- case.units = units
- except TestCase.DoesNotExist:
- case = TestCase.objects.create(name=name,
- suite=suite,
- test_set=testset,
- metadata=yaml.dump(results),
- measurement=measurement,
- units=units,
- result=result_val)
+ case = TestCase.objects.create(name=name,
+ suite=suite,
+ test_set=testset,
+ metadata=yaml.dump(results),
+ measurement=measurement,
+ units=units,
+ result=result_val)
with transaction.atomic():
- case.save()
if match_action:
match_action.testcase = case
match_action.save(update_fields=['testcase', 'duration', 'timeout'])
diff --git a/lava_results_app/templates/lava_results_app/case.html b/lava_results_app/templates/lava_results_app/case.html
index 3dea7c5d7..73ac24d9d 100644
--- a/lava_results_app/templates/lava_results_app/case.html
+++ b/lava_results_app/templates/lava_results_app/case.html
@@ -1,5 +1,6 @@
{% extends "layouts/content-bootstrap.html" %}
{% load i18n %}
+{% load results_accessibility_tags %}
{% block content %}
<h1>Test suite <a href="{{ suite.get_absolute_url }}">{{ suite.name }}</a> for job {{ job_link }}</h1>
@@ -33,8 +34,9 @@
{% if testcase.action_metadata %}
<ul class="list-unstyled">
{% for key, value in testcase.action_metadata.items %}
+ {% get_extra_source testcase extra_source as testcase_extra %}
{% if key == 'extra' and extra_source %}
- <li><strong>{{ key }}:</strong><pre style="white-space: pre-wrap; word-wrap: break-word;">{{ extra_source }}</pre></li>
+ <li><strong>{{ key }}:</strong><pre style="white-space: pre-wrap; word-wrap: break-word;">{{ testcase_extra }}</pre></li>
{% elif key == 'level' %}
<li><strong>{{ key }}</strong>: <a
href="{% url 'lava.scheduler.job.definition' job.pk %}#pipeline:{{ value }}">{{ value }}</a></li>
diff --git a/lava_results_app/templatetags/results_accessibility_tags.py b/lava_results_app/templatetags/results_accessibility_tags.py
index 4d6fa29c0..f945068be 100644
--- a/lava_results_app/templatetags/results_accessibility_tags.py
+++ b/lava_results_app/templatetags/results_accessibility_tags.py
@@ -19,3 +19,12 @@ def check_chart_access(record, user):
if not query.is_accessible_by(user):
access = False
return access
+
+
+@register.assignment_tag()
+def get_extra_source(record, data):
+ if not data:
+ return ''
+ if record.id in data:
+ return data[record.id]
+ return ''
diff --git a/lava_results_app/tests/test_names.py b/lava_results_app/tests/test_names.py
index 97aaee5f2..e0393b607 100644
--- a/lava_results_app/tests/test_names.py
+++ b/lava_results_app/tests/test_names.py
@@ -125,7 +125,8 @@ class TestTestSuite(TestCaseWithFactory):
for sample in result_samples:
ret = map_scanned_results(results=sample, job=job, meta_filename=None)
self.assertTrue(ret)
- self.assertEqual(4, TestCase.objects.count())
+ # the duplicate smoke-tests-basic is allowed here as the lava test suite supports multiples
+ self.assertEqual(5, TestCase.objects.count())
val = URLValidator()
for testcase in TestCase.objects.all():
self.assertIsNotNone(testcase.name)
diff --git a/lava_results_app/views/__init__.py b/lava_results_app/views/__init__.py
index ebe35aff7..a57f1638a 100644
--- a/lava_results_app/views/__init__.py
+++ b/lava_results_app/views/__init__.py
@@ -335,7 +335,7 @@ def testcase(request, job, pk, case):
job = get_restricted_job(request.user, pk=job, request=request)
test_cases = TestCase.objects.filter(name=case, suite=test_suite)
test_sets = TestSet.objects.filter(name=case, suite=test_suite)
- extra_source = ''
+ extra_source = {}
logger = logging.getLogger('dispatcher-master')
for extra_case in test_cases:
try:
@@ -349,7 +349,8 @@ def testcase(request, job, pk, case):
items = yaml.load(extra_file, Loader=yaml.CLoader)
# hide the !!python OrderedDict prefix from the output.
for key, value in items.items():
- extra_source += "%s: %s\n" % (key, value)
+ extra_source.setdefault(extra_case.id, '')
+ extra_source[extra_case.id] += "%s: %s\n" % (key, value)
template = loader.get_template("lava_results_app/case.html")
return HttpResponse(template.render(
{