squad 1.86.3__py3-none-any.whl → 1.88__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- squad/ci/backend/lava.py +7 -5
- squad/ci/backend/tuxsuite.py +15 -4
- squad/frontend/templates/squad/tests.jinja2 +1 -1
- squad/plugins/linux_log_parser.py +1 -14
- squad/settings.py +2 -6
- squad/version.py +1 -1
- {squad-1.86.3.dist-info → squad-1.88.dist-info}/METADATA +3 -1
- {squad-1.86.3.dist-info → squad-1.88.dist-info}/RECORD +12 -12
- {squad-1.86.3.dist-info → squad-1.88.dist-info}/WHEEL +1 -1
- {squad-1.86.3.dist-info → squad-1.88.dist-info}/COPYING +0 -0
- {squad-1.86.3.dist-info → squad-1.88.dist-info}/entry_points.txt +0 -0
- {squad-1.86.3.dist-info → squad-1.88.dist-info}/top_level.txt +0 -0
squad/ci/backend/lava.py
CHANGED
@@ -659,11 +659,13 @@ class Backend(BaseBackend):
|
|
659
659
|
suite = result['suite'].split("_", 1)[-1]
|
660
660
|
res_name = "%s/%s" % (suite, result['name'])
|
661
661
|
res_log = None
|
662
|
-
if 'log_start_line' in result.keys()
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
662
|
+
if 'log_start_line' in result.keys():
|
663
|
+
log_url = f"{self.job_url(test_job)}#L{result['log_start_line']}"
|
664
|
+
res_log = f"Testcase log: <a href='{log_url}'>{log_url}</a>\n"
|
665
|
+
if 'log_end_line' in result.keys() and \
|
666
|
+
result['log_start_line'] is not None and \
|
667
|
+
result['log_end_line'] is not None:
|
668
|
+
res_log += self.__download_test_log__(raw_logs, result['log_start_line'], result['log_end_line'])
|
667
669
|
# YAML from LAVA has all values serialized to strings
|
668
670
|
if result['measurement'] == 'None' or result['measurement'] is None:
|
669
671
|
res_value = result['result']
|
squad/ci/backend/tuxsuite.py
CHANGED
@@ -240,6 +240,10 @@ class Backend(BaseBackend):
|
|
240
240
|
# Make metadata
|
241
241
|
metadata_keys = settings.get('BUILD_METADATA_KEYS', [])
|
242
242
|
metadata = {k: results.get(k) for k in metadata_keys}
|
243
|
+
|
244
|
+
# Add extra metadata from metadata file if it exists
|
245
|
+
self.update_metadata_from_file(results=results, metadata=metadata)
|
246
|
+
|
243
247
|
metadata['job_url'] = job_url
|
244
248
|
metadata['job_id'] = test_job.job_id
|
245
249
|
metadata['config'] = urljoin(results.get('download_url') + '/', 'config')
|
@@ -296,10 +300,10 @@ class Backend(BaseBackend):
|
|
296
300
|
if "download_url" in results:
|
297
301
|
download_url = results["download_url"]
|
298
302
|
try:
|
299
|
-
|
303
|
+
metadata_response = self.fetch_url(download_url + '/' + 'metadata.json')
|
300
304
|
# If fetching the metadata file did not error, decode it as json
|
301
|
-
if
|
302
|
-
metadata.update(
|
305
|
+
if metadata_response.ok:
|
306
|
+
metadata.update(metadata_response.json())
|
303
307
|
except TemporaryFetchIssue:
|
304
308
|
pass
|
305
309
|
|
@@ -328,7 +332,14 @@ class Backend(BaseBackend):
|
|
328
332
|
test_job.name = ','.join(results['tests'])
|
329
333
|
|
330
334
|
if results['results'] == {}:
|
331
|
-
|
335
|
+
waiting_for = results.get('waiting_for')
|
336
|
+
if waiting_for is None:
|
337
|
+
test_job.failure = 'no results'
|
338
|
+
elif 'BUILD' in waiting_for:
|
339
|
+
test_job.failure = 'build failed'
|
340
|
+
else:
|
341
|
+
test_job.failure = 'sanity test failed'
|
342
|
+
|
332
343
|
return status, completed, metadata, tests, metrics, logs
|
333
344
|
|
334
345
|
# Fetch results even if the job fails, but has results
|
@@ -37,7 +37,7 @@
|
|
37
37
|
{% for status in test %}
|
38
38
|
<td class="{{status[0]}}"><a href="{{ test_history_url }}">{{status[0]}}{% if status[1] %} ({{status[1]}} %){% endif %}</a>
|
39
39
|
{% if status[2] %}
|
40
|
-
<a href='#' data-toggle="modal" data-target="#info_modal" data-status="{{ status[
|
40
|
+
<a href='#' data-toggle="modal" data-target="#info_modal" data-status="{{ status[2] }}"><span data-toggle="tooltip" data-placement="right" title="{{ _('Show info') }}" class='fa fa-info-circle'></span></a>
|
41
41
|
{% endif %}
|
42
42
|
</td>
|
43
43
|
{% endfor %}
|
@@ -12,7 +12,7 @@ REGEX_NAME = 0
|
|
12
12
|
REGEX_BODY = 1
|
13
13
|
|
14
14
|
MULTILINERS = [
|
15
|
-
('check-kernel-exception', r'-+\[ cut here \]
|
15
|
+
('check-kernel-exception', r'-+\[? cut here \]?-+.*?-+\[? end trace \w* \]?-+'),
|
16
16
|
('check-kernel-kasan', r'=+\n\[[\s\.\d]+\]\s+BUG: KASAN:.*?=+'),
|
17
17
|
('check-kernel-kfence', r'=+\n\[[\s\.\d]+\]\s+BUG: KFENCE:.*?=+'),
|
18
18
|
]
|
@@ -131,19 +131,6 @@ class Plugin(BasePlugin):
|
|
131
131
|
matches = regex.findall(log)
|
132
132
|
snippets = self.__join_matches(matches, REGEXES)
|
133
133
|
|
134
|
-
# search onliners within multiliners
|
135
|
-
multiline_matches = []
|
136
|
-
for regex_id in range(len(MULTILINERS)):
|
137
|
-
multiline_matches += snippets[regex_id]
|
138
|
-
|
139
|
-
regex = self.__compile_regexes(ONELINERS)
|
140
|
-
matches = regex.findall('\n'.join(multiline_matches))
|
141
|
-
onliner_snippets = self.__join_matches(matches, ONELINERS)
|
142
|
-
|
143
|
-
regex_id_offset = len(MULTILINERS)
|
144
|
-
for regex_id in range(len(ONELINERS)):
|
145
|
-
snippets[regex_id + regex_id_offset] += onliner_snippets[regex_id]
|
146
|
-
|
147
134
|
for regex_id in range(len(REGEXES)):
|
148
135
|
test_name = REGEXES[regex_id][REGEX_NAME]
|
149
136
|
self.__create_tests(testrun, suite, test_name, snippets[regex_id])
|
squad/settings.py
CHANGED
@@ -62,8 +62,7 @@ if find_spec('django_extensions'):
|
|
62
62
|
|
63
63
|
django_toolbar = None
|
64
64
|
django_toolbar_middleware = None
|
65
|
-
|
66
|
-
if django_toolbar_module_spec:
|
65
|
+
if find_spec('debug_toolbar'):
|
67
66
|
DEBUG_TOOLBAR_CONFIG = {
|
68
67
|
'JQUERY_URL': '',
|
69
68
|
'SHOW_COLLAPSED': True,
|
@@ -76,11 +75,8 @@ if django_toolbar_module_spec:
|
|
76
75
|
|
77
76
|
|
78
77
|
django_allauth_middleware = None
|
79
|
-
|
80
|
-
import allauth.account.middleware # noqa: F401
|
78
|
+
if find_spec('allauth'):
|
81
79
|
django_allauth_middleware = 'allauth.account.middleware.AccountMiddleware'
|
82
|
-
except ImportError:
|
83
|
-
pass
|
84
80
|
|
85
81
|
|
86
82
|
__apps__ = [
|
squad/version.py
CHANGED
@@ -1 +1 @@
|
|
1
|
-
__version__ = '1.
|
1
|
+
__version__ = '1.88'
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: squad
|
3
|
-
Version: 1.
|
3
|
+
Version: 1.88
|
4
4
|
Summary: Software Quality Dashboard
|
5
5
|
Home-page: https://github.com/Linaro/squad
|
6
6
|
Author: Antonio Terceiro
|
@@ -32,8 +32,10 @@ Requires-Dist: Markdown
|
|
32
32
|
Requires-Dist: msgpack >=0.5.0
|
33
33
|
Requires-Dist: python-dateutil
|
34
34
|
Requires-Dist: PyYAML >=5.1
|
35
|
+
Requires-Dist: PyJWT
|
35
36
|
Requires-Dist: pyzmq
|
36
37
|
Requires-Dist: requests
|
38
|
+
Requires-Dist: setuptools
|
37
39
|
Requires-Dist: sqlparse
|
38
40
|
Requires-Dist: svgwrite
|
39
41
|
Requires-Dist: whitenoise
|
@@ -7,10 +7,10 @@ squad/http.py,sha256=KuIKtpf3yOvf5fwc0T2MR0ul1l4AKxq3b0CLdk6KBhM,3667
|
|
7
7
|
squad/jinja2.py,sha256=OKX-lzNz6qtTZL56HWv4UBMPuBl4WQXv0qFJztGp9zs,2541
|
8
8
|
squad/mail.py,sha256=xH5wuIpD7u1fTN9vNOcbzByojleaffsKwp-9i3BeOD0,390
|
9
9
|
squad/manage.py,sha256=Z-LXT67p0R-IzwJ9fLIAacEZmU0VUjqDOSg7j2ZSxJ4,1437
|
10
|
-
squad/settings.py,sha256=
|
10
|
+
squad/settings.py,sha256=CRmnXFDrfdspzXGUIlffRcKMQizJ4Wzyyg1cIRu-h-M,14535
|
11
11
|
squad/socialaccount.py,sha256=vySqPwQ3qVVpahuJ-Snln8K--yzRL3bw4Nx27AsB39A,789
|
12
12
|
squad/urls.py,sha256=JiEfVW8YlzLPE52c2aHzdn5kVVKK4o22w8h5KOA6QhQ,2776
|
13
|
-
squad/version.py,sha256=
|
13
|
+
squad/version.py,sha256=m_t8FsqIPiv-aD7WSt66lX1Px9if2ZNoqnlCXPf8Mh8,21
|
14
14
|
squad/wsgi.py,sha256=SF8T0cQ0OPVyuYjO5YXBIQzvSXQHV0M2BTmd4gP1rPs,387
|
15
15
|
squad/api/__init__.py,sha256=CJiVakfAlHVN5mIFRVQYZQfuNUhUgWVbsdYTME4tq7U,1349
|
16
16
|
squad/api/apps.py,sha256=Trk72p-iV1uGn0o5mdJn5HARUoHGbfgO49jwXvpkmdQ,141
|
@@ -30,9 +30,9 @@ squad/ci/tasks.py,sha256=xoiOyh0HKLiKsAnQbolMRq4E9RcvP4xFgR0S9d_bgm4,3782
|
|
30
30
|
squad/ci/utils.py,sha256=38zHpw8xkZDSFlkG-2BwSK6AkcddK9OkN9LXuQ3SHR0,97
|
31
31
|
squad/ci/backend/__init__.py,sha256=yhpotXT9F4IdAOXvGQ3-17eOHAFwoaqf9SnMX17ab30,534
|
32
32
|
squad/ci/backend/fake.py,sha256=9sPKndsGd5GDNPp35v-zfJWXZCbge-yXH3RBQGgTlPk,2340
|
33
|
-
squad/ci/backend/lava.py,sha256=
|
33
|
+
squad/ci/backend/lava.py,sha256=BAReftlcRo7YkzwKbtwKpehQApN7cYnkwGmI_Nbs8D4,33791
|
34
34
|
squad/ci/backend/null.py,sha256=0CVylWELIZw3JyzCROB4XXAjgQUi15YjQz5caRfTNBo,5434
|
35
|
-
squad/ci/backend/tuxsuite.py,sha256
|
35
|
+
squad/ci/backend/tuxsuite.py,sha256=-A4p5HpUWnIC-61os0vdJOfAGoO81szoLkSgzyaUt6c,17901
|
36
36
|
squad/ci/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
37
37
|
squad/ci/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
38
38
|
squad/ci/management/commands/create_tuxsuite_boot_tests.py,sha256=JvjNusebLX71eyz9d-kaeCyekYSpzc1eXoeIqWK9ygo,4045
|
@@ -397,7 +397,7 @@ squad/frontend/templates/squad/testjob.jinja2,sha256=hQLavgkYJ3qAKJMG7cHnmJGC1jd
|
|
397
397
|
squad/frontend/templates/squad/testjobs.jinja2,sha256=a90ltfoIWORB4i1mubA3cfQzX1IoSMqhYpAUc38RZSk,9632
|
398
398
|
squad/frontend/templates/squad/testjobs_progress.jinja2,sha256=4_o53GOdcClRdiNQxPHwvXPI9Ia07gTJRu5SGrCJ7s4,2638
|
399
399
|
squad/frontend/templates/squad/tests-details-nav.jinja2,sha256=WDi4vf0ctRK1dK1Z3IirBuyn5Dq9_qg_9A1P3GrB31U,664
|
400
|
-
squad/frontend/templates/squad/tests.jinja2,sha256=
|
400
|
+
squad/frontend/templates/squad/tests.jinja2,sha256=8JvKe8GwLMGvoTSkofbl6aT-QBKDodMYN7RfKTzWF6U,4970
|
401
401
|
squad/frontend/templates/squad/group_settings/advanced.jinja2,sha256=TbvNpZHK7fH3zx4Z_zwdmuhr8nev-jK8DhZ7_qQ7Osg,373
|
402
402
|
squad/frontend/templates/squad/group_settings/base.jinja2,sha256=Mywqt3uLMNT7NyaUXiG4nDvdJULLuVX9sb6vYkgR1nQ,1437
|
403
403
|
squad/frontend/templates/squad/group_settings/delete.jinja2,sha256=hO4mnNSph2D3qcAPUbffNgEdb-GsouSGxDRjcJ7NN8A,669
|
@@ -425,15 +425,15 @@ squad/plugins/__init__.py,sha256=9BSzy2jFIoDpWlhD7odPPrLdW4CC3btBhdFCvB651dM,152
|
|
425
425
|
squad/plugins/example.py,sha256=BKpwd315lHRIuNXJPteibpwfnI6C5eXYHYdFYBtVmsI,89
|
426
426
|
squad/plugins/gerrit.py,sha256=CqO2KnFQzu9utr_TQ-sGr1wg3ln0B-bS2-c0_i8T5-c,7009
|
427
427
|
squad/plugins/github.py,sha256=pdtLZw_7xNuzkaFvY_zWi0f2rsMlalXjKm7sz0eADz4,2429
|
428
|
-
squad/plugins/linux_log_parser.py,sha256=
|
428
|
+
squad/plugins/linux_log_parser.py,sha256=Ym0OBo6EurU0E_inPlf4-LwDryCtnazrTX7MaEZHRA0,4939
|
429
429
|
squad/run/__init__.py,sha256=ssE8GPAGFiK6V0WpZYowav6Zqsd63dfDMMYasNa1sQg,1410
|
430
430
|
squad/run/__main__.py,sha256=DOl8JOi4Yg7DdtwnUeGqtYBJ6P2k-D2psAEuYOjWr8w,66
|
431
431
|
squad/run/listener.py,sha256=jBeOQhPGb4EdIREB1QsCzYuumsfJ-TqJPd3nR-0m59g,200
|
432
432
|
squad/run/scheduler.py,sha256=CDJG3q5C0GuQuxwlMOfWTSSJpDdwbR6rzpbJfuA0xuw,277
|
433
433
|
squad/run/worker.py,sha256=jtML0h5qKDuSbpJ6_rpWP4MT_rsGA7a24AhwGxBquzk,594
|
434
|
-
squad-1.
|
435
|
-
squad-1.
|
436
|
-
squad-1.
|
437
|
-
squad-1.
|
438
|
-
squad-1.
|
439
|
-
squad-1.
|
434
|
+
squad-1.88.dist-info/COPYING,sha256=jOtLnuWt7d5Hsx6XXB2QxzrSe2sWWh3NgMfFRetluQM,35147
|
435
|
+
squad-1.88.dist-info/METADATA,sha256=AbK4kEcgX8XOcABHY9ENsLJt_J-ERLtgMJpPj-Q40GU,1281
|
436
|
+
squad-1.88.dist-info/WHEEL,sha256=Z4pYXqR_rTB7OWNDYFOm1qRk0RX6GFP2o8LgvP453Hk,91
|
437
|
+
squad-1.88.dist-info/entry_points.txt,sha256=apCDQydHZtvqV334ql6NhTJUAJeZRdtAm0TVcbbAi5Q,194
|
438
|
+
squad-1.88.dist-info/top_level.txt,sha256=_x9uqE1XppiiytmVTl_qNgpnXus6Gsef69HqfliE7WI,6
|
439
|
+
squad-1.88.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|