1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
|
from django.template.defaultfilters import stringfilter
from django.utils.safestring import mark_safe
from django import template
from testmanager.buildtestresults import models
register = template.Library()
@register.filter
@stringfilter
def zerowidthspace_separator(value, num):
"""
Add zero-width space every num chars in string
"""
num = int(num)
locations = range(0, len(value), num)[1:] # loc to insert
new_value = value[:num]
for loc in locations:
if loc + num < len(value):
new_value += '​' + value[loc:(loc+num)]
else:
new_value += '​' + value[loc:] # last substring may have less than num chars
return mark_safe(new_value)
@register.filter
@stringfilter
def comma_separator(value):
"""
Add zero-width space after every comma
"""
new_value = value.replace(",", ",​")
return mark_safe(new_value)
@register.simple_tag
def aggregate_test_status(test_job_url):
# job URL should be unique
try:
testjobs_results = models.TestSuite.objects.filter(testjoburl=test_job_url).values_list('result', flat=True)
return models._aggregate_status(testjobs_results)
except Exception,e:
pass
return ""
@register.simple_tag
def aggregate_test_job_status(test_job_url):
# job URL should be unique
try:
testjobs_results = models.TestSuite.objects.filter(testjoburl=test_job_url).values_list('testjobstatus', flat=True)
return testjobs_results[0]
except Exception,e:
pass
return ""
@register.simple_tag
def aggregate_test_results(test_job_url):
# job URL should be unique
try:
executed = sum(models.TestSuite.objects.filter(testjoburl=test_job_url).values_list('executed', flat=True))
passed = sum(models.TestSuite.objects.filter(testjoburl=test_job_url).values_list('passed', flat=True))
failed = sum(models.TestSuite.objects.filter(testjoburl=test_job_url).values_list('failed', flat=True))
return "<strong>executed:</strong> {0} <strong>passed</strong> {1} <strong>failed:</strong> {2}".format(executed, passed, failed)
except Exception,e:
print e
pass
return ""
|