/usr/lib/python3/dist-packages/testrepository/results.py is in python3-testrepository 0.0.20-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 69 70 71 72 73 | #
# Copyright (c) 2010 Testrepository Contributors
#
# Licensed under either the Apache License, Version 2.0 or the BSD 3-clause
# license at the users choice. A copy of both licenses are available in the
# project source as Apache-2.0 and BSD. You may not use this file except in
# compliance with one of these two licences.
#
# Unless required by applicable law or agreed to in writing, software
# distributed under these licenses is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# license you chose for the specific language governing permissions and
# limitations under that license.
import subunit
from testtools import (
StreamSummary,
StreamResult,
)
from testrepository.utils import timedelta_to_seconds
class SummarizingResult(StreamSummary):
def __init__(self):
super(SummarizingResult, self).__init__()
def startTestRun(self):
super(SummarizingResult, self).startTestRun()
self._first_time = None
self._last_time = None
def status(self, *args, **kwargs):
if kwargs.get('timestamp') is not None:
timestamp = kwargs['timestamp']
if self._last_time is None:
self._first_time = timestamp
self._last_time = timestamp
if timestamp < self._first_time:
self._first_time = timestamp
if timestamp > self._last_time:
self._last_time = timestamp
super(SummarizingResult, self).status(*args, **kwargs)
def get_num_failures(self):
return len(self.failures) + len(self.errors)
def get_time_taken(self):
if None in (self._last_time, self._first_time):
return None
return timedelta_to_seconds(self._last_time - self._first_time)
#XXX: Should be in testtools.
class CatFiles(StreamResult):
"""Cat file attachments received to a stream."""
def __init__(self, byte_stream):
self.stream = subunit.make_stream_binary(byte_stream)
self.last_file = None
def status(self, test_id=None, test_status=None, test_tags=None,
runnable=True, file_name=None, file_bytes=None, eof=False,
mime_type=None, route_code=None, timestamp=None):
if file_name is None:
return
if self.last_file != file_name:
self.stream.write(("--- %s ---\n" % file_name).encode('utf8'))
self.last_file = file_name
self.stream.write(file_bytes)
self.stream.flush()
|