Expanded report view

This commit is contained in:
Jeremy Stretch 2017-09-28 13:35:18 -04:00
parent 2b33e78fd3
commit 6c6b67330f
2 changed files with 70 additions and 5 deletions

View File

@ -93,7 +93,7 @@ class Report(object):
('success', 0),
('info', 0),
('warning', 0),
('failed', 0),
('failure', 0),
('log', []),
])
if not test_methods:
@ -118,8 +118,19 @@ class Report(object):
"""
if level not in LOG_LEVEL_CODES:
raise Exception("Unknown logging level: {}".format(level))
logline = [timezone.now().isoformat(), level, str(obj), message]
self._results[self.active_test]['log'].append(logline)
self._results[self.active_test]['log'].append(
timezone.now().isoformat(),
LOG_LEVEL_CODES.get(level),
str(obj) if obj else None,
obj.get_absolute_url() if getattr(obj, 'get_absolute_url', None) else None,
message,
)
def log(self, message):
"""
Log a message which is not associated with a particular object.
"""
self._log(None, message, level=LOG_DEFAULT)
def log_success(self, obj, message=None):
"""
@ -148,7 +159,7 @@ class Report(object):
Log a failure. Calling this method will automatically mark the report as failed.
"""
self._log(obj, message, level=LOG_FAILURE)
self._results[self.active_test]['failed'] += 1
self._results[self.active_test]['failure'] += 1
self.failed = True
def run(self):

View File

@ -24,7 +24,7 @@
{% endif %}
<h1>{{ report.name }}{% include 'extras/inc/report_label.html' %}</h1>
<div class="row">
<div class="col-md-9">
<div class="col-md-12">
{% if report.description %}
<p class="lead">{{ report.description }}</p>
{% endif %}
@ -34,5 +34,59 @@
<p class="text-muted">Last run: Never</p>
{% endif %}
</div>
<div class="col-md-9">
{% if report.result %}
<table class="table table-hover">
<thead>
<tr>
<th>Time</th>
<th>Level</th>
<th>Object</th>
<th>Message</th>
</tr>
</thead>
{% for method, data in report.result.data.items %}
<tr>
<th colspan="4"><a name="{{ method }}"></a>{{ method }}</th>
</tr>
{% for time, level, obj, url, message in data.log %}
<tr class="{% if level == 'failure' %}danger{% elif level %}{{ level }}{% endif %}">
<td>{{ time }}</td>
<td>
<label class="label label-{% if level == 'failure' %}danger{% else %}{{ level }}{% endif %}">{{ level|title }}</label>
</td>
<td>
{% if obj and url %}
<a href="{{ url }}">{{ obj }}</a>
{% elif obj %}
{{ obj }}
{% endif %}
</td>
<td>{{ message }}</td>
</tr>
{% endfor %}
{% endfor %}
</table>
{% else %}
<div class="well">No results are available for this report. Please run the report first.</div>
{% endif %}
</div>
<div class="col-md-3">
{% if report.result %}
<div class="panel panel-default">
<div class="panel-heading">
<strong>Methods</strong>
</div>
<ul class="list-group">
{% for method, data in report.result.data.items %}
<li class="list-group-item">
<a href="#{{ method }}">{{ method }}</a>
<span class="badge">{{ data.log|length }}</span>
</li>
{% endfor %}
</ul>
</div>
{% endif %}
</div>
</div>
{% endblock %}