From fce227b428c9b4f93f83791e98a282caf83af9b8 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Mon, 24 Mar 2025 14:51:00 +0100 Subject: [PATCH] Release c921371089d249833cf85a16e7ee72e7 - Removed python2 implementation --- __init__.py | 37 +- _requirements_/specification.pdf | Bin 0 -> 89032 bytes _requirements_/specification.py | 269 + _testresults_/coverage.xml | 427 +- _testresults_/unittest.json | 23763 +++++++++-------------------- _testresults_/unittest.pdf | Bin 316606 -> 269269 bytes csp.py | 4 - stp.py | 11 +- 8 files changed, 7777 insertions(+), 16734 deletions(-) create mode 100644 _requirements_/specification.pdf create mode 100644 _requirements_/specification.py diff --git a/__init__.py b/__init__.py index 190d4eb..400f206 100644 --- a/__init__.py +++ b/__init__.py @@ -38,8 +38,6 @@ import gzip import logging import time import sys -if sys.version_info < (3, 0): - from cStringIO import StringIO try: from config import APP_NAME as ROOT_LOGGER_NAME @@ -50,7 +48,7 @@ logger = logging.getLogger(ROOT_LOGGER_NAME).getChild(__name__) __DESCRIPTION__ = """The Module {\\tt %s} is designed to support functionality for strings (e.g. transfer strings via a bytestream, compressing, extracting, ...). For more Information read the sphinx documentation.""" % __name__.replace('_', '\_') """The Module Description""" -__INTERPRETER__ = (2, 3) +__INTERPRETER__ = (3, ) """The Tested Interpreter-Versions""" __all__ = ['gzip_compress', @@ -133,17 +131,7 @@ def gzip_compress(s, compresslevel=9): """ rv = None t = time.time() - if sys.version_info >= (3, 0): - rv = gzip.compress(s, compresslevel) - else: - buf = StringIO() - f = gzip.GzipFile(mode='wb', compresslevel=compresslevel, fileobj=buf) - try: - f.write(s) - finally: - f.close() - rv = buf.getvalue() - buf.close() + rv = gzip.compress(s, compresslevel) if rv is not None: logger.debug('GZIP: Finished to compress a string (compression_rate=%.3f, consumed_time=%.1fs).', len(rv) / float(len(s)), time.time() - t) return rv @@ -167,16 +155,7 @@ def gzip_extract(s): """ t = time.time() rv = None - if sys.version_info >= (3, 0): - rv = gzip.decompress(s) - else: - inbuffer = StringIO(s) - f = gzip.GzipFile(mode='rb', fileobj=inbuffer) - try: - rv = f.read() - finally: - f.close() - inbuffer.close() + rv = gzip.decompress(s) if rv is not None: logger.debug('GZIP: Finished to extract a string (compression_rate=%.3f, consumed_time=%.1fs).', len(s) / float(len(rv)), time.time() - t) return rv @@ -199,10 +178,7 @@ def hexlify(s): """ rv = '(%d):' % len(s) for byte in s: - if sys.version_info >= (3, 0): - rv += ' %02x' % byte - else: - rv += ' %02x' % ord(byte) + rv += ' %02x' % byte return rv @@ -213,7 +189,4 @@ def linefeed_filter(s): :returns: A string with converted carriage return and/ or linefeed. :rtype: str """ - if sys.version_info >= (3, 0): - return s.replace(b'\r', b'\\r').replace(b'\n', b'\\n') - else: - return s.replace('\r', '\\r').replace('\n', '\\n') + return s.replace(b'\r', b'\\r').replace(b'\n', b'\\n') diff --git a/_requirements_/specification.pdf b/_requirements_/specification.pdf new file mode 100644 index 0000000000000000000000000000000000000000..a1a1e593e6b1318c5784b30dc4917bfc01c8dfb8 GIT binary patch literal 89032 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 literal 0 HcmV?d00001 diff --git a/_requirements_/specification.py b/_requirements_/specification.py new file mode 100644 index 0000000..6d818e2 --- /dev/null +++ b/_requirements_/specification.py @@ -0,0 +1,269 @@ +def specification(req_spec): + req_spec.add_title("Title") + + # + # Section + # + sec_uuid = req_spec.add( + itemtype="SEC", + id=1, + heading="Stream Definition", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=19, + heading="Physical representation", + description="The library {\\tt stringtools} shall have a method {\\tt physical\\_repr}, transforming a float or integer value to a string with a 1 to 3 digit value followed by the physical prefix for the unit.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=20, + heading="Time representation", + description="The library {\\tt stringtools} shall have a method {\\tt physical\\_repr}, transforming an integer value to a time string like {\\tt HH:MM:SS}.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=21, + heading="Fraction representation", + description="The library {\\tt stringtools} shall have a method {\\tt frac\\_repr}, transforming a float or integer value to a fraction string with a limited denominator.", + ) + # + # Section + # + sec_uuid = req_spec.add( + itemtype="SEC", + id=2, + heading="Human readable value representations", + ) + # + # Section + # + sec_uuid = req_spec.add( + itemtype="SEC", + id=3, + heading="Stream to Human readable String", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=1, + heading="Hexadecimal Values", + description="A Stream shall be converted to a human readable String containing all bytes as hexadecimal values seperated by a Space.", + reason="Make non printable characters printable.", + fitcriterion="A stream shall be converted at least once and the hex values shall exist in the returnvalue in the correct order.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=2, + heading="Number of Bytes", + description="The Length of a Stream surrounded by brakets shall be included in the human readable string.", + reason="Show the length of a Stream without counting the seperated values.", + fitcriterion="The described pattern including the decimal number of bytes is included in the string for at least one Stream.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=5, + heading="CRLF-Filter", + description="The module stringtools shall have a method to replace carriage return and line feed to their escaped representation.", + reason="Replace these characters to make output printable (e.g. for logging a string based protocol).", + fitcriterion="Filter at least one string and check at least one CR and one LF representation.", + ) + # + # Section + # + sec_uuid = req_spec.add( + itemtype="SEC", + id=4, + heading="Stream Compression", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=3, + heading="Compress", + description="The module stringtools shall have a method compressing a Stream with gzip.", + reason="Speed up transfer with low transfer rate.", + fitcriterion="Compressed Stream is extractable and results in the original data.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=4, + heading="Extract", + description="The module stringtools shall have a method extracting a Stream with gzip.", + reason="Speed up transfer with low transfer rate.", + fitcriterion="Extracted Stream is equal to the original compressed data.", + ) + # + # Section + # + sec_uuid = req_spec.add( + itemtype="SEC", + id=5, + heading="Carriagereturn Seperation Protocol (CSP)", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=6, + heading="Frame creation", + description="The CSP module shall support a method to create a Frame from a stream.", + reason="Simple message or frame generation for streams (e.g. Keyboard (user input), RFID-Reader, \\ldots).", + fitcriterion="Creation of a testframe and checking the result.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=7, + heading="Frame creation error", + description="The Frame creation Method shall raise ValueError, if a frame separation character is in the Source-String.", + reason="String including separation charcter will be splitted in pieces while processing after transport.", + fitcriterion="ValueErroro is raised for at least one String including the separation character.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=8, + heading="Frame processing", + description="The CSP Module shall support a class including a method to process stream snipets of variable length. This Method shall return an empty list, if no frame has been detected, otherwise it shall return a list including detected frame(s).", + reason="Support message analysis of a stream with every size.", + fitcriterion="At least one frame given in at least two snippets is identified correctly.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=9, + heading="Frame processing - Input data type error", + description="If the input data is not bytes for python3 or str for python 2, the process method shall raise TypeError.", + reason="Type restriction.", + fitcriterion="At least the following types return TypeError (list, int, str for python3, unicode for python 2).", + ) + # + # Section + # + sec_uuid = req_spec.add( + itemtype="SEC", + id=6, + heading="Serial Transfer Protocol (STP)", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=10, + heading="Frame creation", + description="A frame creation method shall create a frame out of given input data.", + reason="Message or Frame generation for streams (e.g. data transfer via bluetooth, ethernet, \\ldots).", + fitcriterion="Creation of a testframe and checking the result.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=15, + heading="Frame creation - Start pattern and end pattern inside a message", + description="The frame creation method shall support existance of the start or end pattern in the data to be framed.", + reason="Possibility to send any kind of data (including the patterns).", + fitcriterion="Creation of a testframe out of data including at least one start pattern and one end pattern and checking the result.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=11, + heading="Frame processing", + description="The STP Module shall support a class including a method to process stream snipets of variable length. This Method shall return an empty list, if no frame has been detected, otherwise it shall return a list including detected frame(s).", + reason="Support message analysis of a stream with every size.", + fitcriterion="At least one frame given in at least two snippets is identified correctly.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=12, + heading="Frame processing - Input data type error", + description="If the input data is not bytes for python3 or str for python 2, the process method shall raise TypeError.", + reason="Type restriction.", + fitcriterion="At least the following types return TypeError (list, int, str for python3, unicode for python 2).", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=13, + heading="Frame processing - Start pattern and end pattern inside a message", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=14, + heading="Frame processing - Data before the start pattern", + description="Data before the start pattern shall be ignored. A warning shall be given to the logger.", + reason="Robustness against wrong or corrupted data.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=16, + heading="Frame processing - Incorrect start patterns", + description="On receiving an incorrect start pattern, STP shall stay in ESCAPE\\_1, in case of data sync was received twice or back to state IDLE in all other faulty start patterns starting with data sync. A warning shall be given to the logger.", + reason="Robustness against wrong or corrupted data.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=17, + heading="Frame processing - Incorrect end pattern", + description="On receiving an incorrect end pattern, STP shall change to state STORE\\_DATA, in case of a start pattern, to ESCAPE\\_1, in case of data sync was received twice or back to state IDLE in all other faulty end patterns starting with data sync. A warning shall be given to the logger.", + reason="Robustness against wrong or corrupted data.", + ) + + # Requirement + req_spec.add( + parent=sec_uuid, + itemtype="REQ", + id=18, + heading="Frame processing - After state corruption", + description="The state of STP shall be set to IDLE, after an unknown state was recognised. The currently processed data shall be processed again. An error shall be given to the logger.", + reason="Robustness against wrong or corrupted data.", + ) \ No newline at end of file diff --git a/_testresults_/coverage.xml b/_testresults_/coverage.xml index 57b8699..a70adb8 100644 --- a/_testresults_/coverage.xml +++ b/_testresults_/coverage.xml @@ -1,241 +1,220 @@ - - + + - + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_testresults_/unittest.json b/_testresults_/unittest.json index c247d0a..56063eb 100644 --- a/_testresults_/unittest.json +++ b/_testresults_/unittest.json @@ -1,27 +1,17 @@ { "coverage_information": [ { - "branch_coverage": 97.67, - "filepath": "/usr/data/dirk/prj/unittest/stringtools/pylibs/stringtools", + "branch_coverage": 96.88, + "filepath": "/home/dirk/my_repositories/unittest/stringtools/pylibs/stringtools", "files": [ { - "branch_coverage": 97.67, - "filepath": "/usr/data/dirk/prj/unittest/stringtools/pylibs/stringtools/__init__.py", + "branch_coverage": 96.88, + "filepath": "/home/dirk/my_repositories/unittest/stringtools/pylibs/stringtools/__init__.py", "fragments": [ - { - "coverage_state": "clean", - "end": 3, - "start": 1 - }, - { - "coverage_state": "covered", - "end": 4, - "start": 4 - }, { "coverage_state": "clean", "end": 31, - "start": 5 + "start": 1 }, { "coverage_state": "covered", @@ -35,18 +25,28 @@ }, { "coverage_state": "covered", - "end": 42, + "end": 40, "start": 36 }, { "coverage_state": "clean", - "end": 43, - "start": 43 + "end": 41, + "start": 41 + }, + { + "coverage_state": "covered", + "end": 46, + "start": 42 + }, + { + "coverage_state": "clean", + "end": 47, + "start": 47 }, { "coverage_state": "covered", "end": 48, - "start": 44 + "start": 48 }, { "coverage_state": "clean", @@ -55,58 +55,58 @@ }, { "coverage_state": "covered", - "end": 50, + "end": 52, "start": 50 }, { "coverage_state": "clean", - "end": 52, - "start": 51 - }, - { - "coverage_state": "covered", "end": 53, "start": 53 }, { - "coverage_state": "clean", - "end": 55, + "coverage_state": "covered", + "end": 54, "start": 54 }, + { + "coverage_state": "clean", + "end": 60, + "start": 55 + }, { "coverage_state": "covered", - "end": 56, - "start": 56 + "end": 62, + "start": 61 }, { "coverage_state": "clean", - "end": 62, - "start": 57 - }, - { - "coverage_state": "covered", - "end": 64, + "end": 73, "start": 63 }, + { + "coverage_state": "covered", + "end": 78, + "start": 74 + }, { "coverage_state": "clean", - "end": 75, - "start": 65 + "end": 79, + "start": 79 }, { "coverage_state": "covered", - "end": 80, - "start": 76 + "end": 83, + "start": 80 }, { "coverage_state": "clean", - "end": 81, - "start": 81 + "end": 84, + "start": 84 }, { "coverage_state": "covered", "end": 85, - "start": 82 + "start": 85 }, { "coverage_state": "clean", @@ -115,158 +115,128 @@ }, { "coverage_state": "covered", - "end": 87, + "end": 88, "start": 87 }, { "coverage_state": "clean", - "end": 88, - "start": 88 - }, - { - "coverage_state": "covered", - "end": 90, + "end": 89, "start": 89 }, + { + "coverage_state": "covered", + "end": 93, + "start": 90 + }, { "coverage_state": "clean", - "end": 91, - "start": 91 + "end": 95, + "start": 94 }, { "coverage_state": "covered", - "end": 95, - "start": 92 - }, - { - "coverage_state": "clean", - "end": 97, + "end": 100, "start": 96 }, + { + "coverage_state": "clean", + "end": 101, + "start": 101 + }, { "coverage_state": "covered", - "end": 102, - "start": 98 + "end": 107, + "start": 102 }, { "coverage_state": "clean", - "end": 103, - "start": 103 - }, - { - "coverage_state": "covered", "end": 109, - "start": 104 + "start": 108 }, { - "coverage_state": "clean", - "end": 111, + "coverage_state": "covered", + "end": 112, "start": 110 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 114, - "start": 112 + "start": 113 }, { - "coverage_state": "clean", - "end": 116, + "coverage_state": "covered", + "end": 115, "start": 115 }, { - "coverage_state": "covered", - "end": 117, - "start": 117 + "coverage_state": "clean", + "end": 131, + "start": 116 }, { - "coverage_state": "clean", - "end": 133, - "start": 118 + "coverage_state": "covered", + "end": 134, + "start": 132 + }, + { + "coverage_state": "partially-covered", + "end": 135, + "start": 135 }, { "coverage_state": "covered", "end": 137, - "start": 134 + "start": 136 }, { "coverage_state": "clean", - "end": 138, + "end": 139, "start": 138 }, { "coverage_state": "covered", - "end": 142, - "start": 139 + "end": 140, + "start": 140 }, { "coverage_state": "clean", - "end": 143, - "start": 143 + "end": 155, + "start": 141 }, { "coverage_state": "covered", - "end": 146, - "start": 144 + "end": 158, + "start": 156 }, { "coverage_state": "partially-covered", - "end": 147, - "start": 147 + "end": 159, + "start": 159 }, { "coverage_state": "covered", - "end": 149, - "start": 148 + "end": 161, + "start": 160 }, { "coverage_state": "clean", - "end": 151, - "start": 150 + "end": 163, + "start": 162 }, { "coverage_state": "covered", - "end": 152, - "start": 152 + "end": 164, + "start": 164 }, { "coverage_state": "clean", - "end": 167, - "start": 153 - }, - { - "coverage_state": "covered", - "end": 171, - "start": 168 - }, - { - "coverage_state": "clean", - "end": 172, - "start": 172 - }, - { - "coverage_state": "covered", - "end": 176, - "start": 173 - }, - { - "coverage_state": "clean", - "end": 177, - "start": 177 - }, - { - "coverage_state": "covered", - "end": 179, - "start": 178 - }, - { - "coverage_state": "partially-covered", - "end": 180, - "start": 180 + "end": 178, + "start": 165 }, { "coverage_state": "covered", "end": 182, - "start": 181 + "start": 179 }, { "coverage_state": "clean", @@ -280,81 +250,31 @@ }, { "coverage_state": "clean", - "end": 199, + "end": 191, "start": 186 }, { "coverage_state": "covered", - "end": 203, - "start": 200 - }, - { - "coverage_state": "clean", - "end": 204, - "start": 204 - }, - { - "coverage_state": "covered", - "end": 206, - "start": 205 - }, - { - "coverage_state": "clean", - "end": 208, - "start": 207 - }, - { - "coverage_state": "covered", - "end": 209, - "start": 209 - }, - { - "coverage_state": "clean", - "end": 215, - "start": 210 - }, - { - "coverage_state": "covered", - "end": 217, - "start": 216 - }, - { - "coverage_state": "clean", - "end": 218, - "start": 218 - }, - { - "coverage_state": "covered", - "end": 219, - "start": 219 + "end": 192, + "start": 192 }, { "coverage_state": "clean", "end": null, - "start": 220 + "start": 193 } ], "line_coverage": 100.0, "name": "stringtools.__init__.py" }, { - "branch_coverage": 97.67, - "filepath": "/usr/data/dirk/prj/unittest/stringtools/pylibs/stringtools/csp.py", + "branch_coverage": 96.88, + "filepath": "/home/dirk/my_repositories/unittest/stringtools/pylibs/stringtools/csp.py", "fragments": [ - { - "coverage_state": "clean", - "end": 3, - "start": 1 - }, - { - "coverage_state": "covered", - "end": 4, - "start": 4 - }, { "coverage_state": "clean", "end": 21, - "start": 5 + "start": 1 }, { "coverage_state": "covered", @@ -438,76 +358,56 @@ }, { "coverage_state": "covered", - "end": 63, + "end": 67, "start": 61 }, { "coverage_state": "clean", - "end": 64, - "start": 64 + "end": 69, + "start": 68 }, { "coverage_state": "covered", - "end": 71, - "start": 65 + "end": 70, + "start": 70 }, { "coverage_state": "clean", - "end": 73, - "start": 72 + "end": 84, + "start": 71 }, { "coverage_state": "covered", - "end": 74, - "start": 74 + "end": 86, + "start": 85 }, { "coverage_state": "clean", + "end": 87, + "start": 87 + }, + { + "coverage_state": "covered", "end": 88, - "start": 75 - }, - { - "coverage_state": "covered", - "end": 90, - "start": 89 - }, - { - "coverage_state": "clean", - "end": 91, - "start": 91 - }, - { - "coverage_state": "covered", - "end": 92, - "start": 92 + "start": 88 }, { "coverage_state": "clean", "end": null, - "start": 93 + "start": 89 } ], "line_coverage": 100.0, "name": "stringtools.csp.py" }, { - "branch_coverage": 97.67, - "filepath": "/usr/data/dirk/prj/unittest/stringtools/pylibs/stringtools/stp.py", + "branch_coverage": 96.88, + "filepath": "/home/dirk/my_repositories/unittest/stringtools/pylibs/stringtools/stp.py", "fragments": [ - { - "coverage_state": "clean", - "end": 3, - "start": 1 - }, - { - "coverage_state": "covered", - "end": 4, - "start": 4 - }, { "coverage_state": "clean", "end": 21, - "start": 5 + "start": 1 }, { "coverage_state": "covered", @@ -541,83 +441,23 @@ }, { "coverage_state": "covered", - "end": 33, + "end": 40, "start": 33 }, - { - "coverage_state": "clean", - "end": 34, - "start": 34 - }, - { - "coverage_state": "covered", - "end": 35, - "start": 35 - }, - { - "coverage_state": "clean", - "end": 36, - "start": 36 - }, - { - "coverage_state": "covered", - "end": 37, - "start": 37 - }, - { - "coverage_state": "clean", - "end": 38, - "start": 38 - }, - { - "coverage_state": "covered", - "end": 39, - "start": 39 - }, { "coverage_state": "clean", "end": 41, - "start": 40 + "start": 41 }, { "coverage_state": "covered", - "end": 42, + "end": 49, "start": 42 }, - { - "coverage_state": "clean", - "end": 43, - "start": 43 - }, - { - "coverage_state": "covered", - "end": 44, - "start": 44 - }, - { - "coverage_state": "clean", - "end": 45, - "start": 45 - }, - { - "coverage_state": "covered", - "end": 46, - "start": 46 - }, - { - "coverage_state": "clean", - "end": 47, - "start": 47 - }, - { - "coverage_state": "covered", - "end": 48, - "start": 48 - }, { "coverage_state": "clean", "end": 51, - "start": 49 + "start": 50 }, { "coverage_state": "covered", @@ -671,58 +511,58 @@ }, { "coverage_state": "covered", - "end": 87, + "end": 84, "start": 83 }, { "coverage_state": "clean", - "end": 88, + "end": 85, + "start": 85 + }, + { + "coverage_state": "covered", + "end": 86, + "start": 86 + }, + { + "coverage_state": "clean", + "end": 87, + "start": 87 + }, + { + "coverage_state": "covered", + "end": 90, "start": 88 }, - { - "coverage_state": "covered", - "end": 89, - "start": 89 - }, { "coverage_state": "clean", - "end": 90, - "start": 90 - }, - { - "coverage_state": "covered", - "end": 93, + "end": 91, "start": 91 }, + { + "coverage_state": "covered", + "end": 95, + "start": 92 + }, { "coverage_state": "clean", - "end": 94, - "start": 94 + "end": 96, + "start": 96 }, { "coverage_state": "covered", - "end": 96, - "start": 95 - }, - { - "coverage_state": "clean", - "end": 97, + "end": 105, "start": 97 }, - { - "coverage_state": "covered", - "end": 101, - "start": 98 - }, { "coverage_state": "clean", - "end": 102, - "start": 102 + "end": 106, + "start": 106 }, { "coverage_state": "covered", "end": 111, - "start": 103 + "start": 107 }, { "coverage_state": "clean", @@ -731,93 +571,83 @@ }, { "coverage_state": "covered", - "end": 117, + "end": 131, "start": 113 }, { "coverage_state": "clean", - "end": 118, - "start": 118 + "end": 132, + "start": 132 }, { "coverage_state": "covered", - "end": 137, - "start": 119 + "end": 135, + "start": 133 }, { "coverage_state": "clean", - "end": 138, - "start": 138 + "end": 136, + "start": 136 }, { "coverage_state": "covered", - "end": 141, - "start": 139 + "end": 143, + "start": 137 }, { "coverage_state": "clean", - "end": 142, - "start": 142 + "end": 145, + "start": 144 }, { "coverage_state": "covered", - "end": 149, - "start": 143 + "end": 146, + "start": 146 }, { "coverage_state": "clean", - "end": 151, - "start": 150 + "end": 160, + "start": 147 }, { "coverage_state": "covered", - "end": 152, - "start": 152 + "end": 161, + "start": 161 }, { "coverage_state": "clean", + "end": 162, + "start": 162 + }, + { + "coverage_state": "covered", "end": 166, - "start": 153 + "start": 163 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 167, "start": 167 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 168, "start": 168 }, { - "coverage_state": "covered", - "end": 173, + "coverage_state": "clean", + "end": 169, "start": 169 }, - { - "coverage_state": "clean", - "end": 174, - "start": 174 - }, { "coverage_state": "covered", - "end": 175, - "start": 175 - }, - { - "coverage_state": "clean", - "end": 176, - "start": 176 - }, - { - "coverage_state": "covered", - "end": 178, - "start": 177 + "end": 171, + "start": 170 }, { "coverage_state": "clean", "end": null, - "start": 179 + "start": 172 } ], "line_coverage": 100.0, @@ -833,311 +663,188 @@ "testcase_list": [] }, "specification": { - "comment": "Comment", - "item_dict": { - "_-yWo4I9sEemg3cv-3xZ25Q": { - "Description": "A frame creation method shall create a frame out of given input data.", - "Fitcriterion": "Creation of a testframe and checking the result.", - "Heading": "Frame creation", - "ID": "REQ-10", - "ReasonForImplementation": "Message or Frame generation for streams (e.g. data transfer via bluetooth, ethernet, \\ldots).", - "last_change": "2019-06-15T19:50:59.108+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_-yWo4I9sEemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "entries": { + "REQ-0001": { + "description": "A Stream shall be converted to a human readable String containing all bytes as hexadecimal values seperated by a Space.", + "fitcriterion": "A stream shall be converted at least once and the hex values shall exist in the returnvalue in the correct order.", + "heading": "Hexadecimal Values", + "reason": "Make non printable characters printable." }, - "_0CnJgHu0Eemborg4LxXa3A": { - "Heading": "Stream Compression", - "last_change": "2019-05-21T13:31:30.639+02:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_0CnJgHu0Eemborg4LxXa3A", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0002": { + "description": "The Length of a Stream surrounded by brakets shall be included in the human readable string.", + "fitcriterion": "The described pattern including the decimal number of bytes is included in the string for at least one Stream.", + "heading": "Number of Bytes", + "reason": "Show the length of a Stream without counting the seperated values." }, - "_2x4icH5BEemxr4bbKXhxkg": { - "Description": "The Serial Transfer Protocol shall use a start pattern and an end pattern to identify a message in a stream. Both patterns shall be a two byte values starting with the same (sync-)byte.", - "Heading": "Serial Transfer Protocol (STP)", - "last_change": "2019-06-15T19:55:51.578+02:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_2x4icH5BEemxr4bbKXhxkg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0003": { + "description": "The module stringtools shall have a method compressing a Stream with gzip.", + "fitcriterion": "Compressed Stream is extractable and results in the original data.", + "heading": "Compress", + "reason": "Speed up transfer with low transfer rate." }, - "_5_z4MI9yEemg3cv-3xZ25Q": { - "Description": "Data before the start pattern shall be ignored. A warning shall be given to the logger.", - "Heading": "Frame processing - Data before the start pattern", - "ID": "REQ-14", - "ReasonForImplementation": "Robustness against wrong or corrupted data.", - "last_change": "2019-06-15T20:32:21.800+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_5_z4MI9yEemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0004": { + "description": "The module stringtools shall have a method extracting a Stream with gzip.", + "fitcriterion": "Extracted Stream is equal to the original compressed data.", + "heading": "Extract", + "reason": "Speed up transfer with low transfer rate." }, - "_9ahP4Hu7Eemborg4LxXa3A": { - "Description": "The module stringtools shall have a method compressing a Stream with gzip.", - "Fitcriterion": "Compressed Stream is extractable and results in the original data.", - "Heading": "Compress", - "ID": "REQ-3", - "ReasonForImplementation": "Speed up transfer with low transfer rate.", - "last_change": "2019-05-21T13:31:22.206+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_9ahP4Hu7Eemborg4LxXa3A", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0005": { + "description": "The module stringtools shall have a method to replace carriage return and line feed to their escaped representation.", + "fitcriterion": "Filter at least one string and check at least one CR and one LF representation.", + "heading": "CRLF-Filter", + "reason": "Replace these characters to make output printable (e.g. for logging a string based protocol)." }, - "_Bd9TgI9tEemg3cv-3xZ25Q": { - "Description": "The STP Module shall support a class including a method to process stream snipets of variable length. This Method shall return an empty list, if no frame has been detected, otherwise it shall return a list including detected frame(s).", - "Fitcriterion": "At least one frame given in at least two snippets is identified correctly.", - "Heading": "Frame processing", - "ID": "REQ-11", - "ReasonForImplementation": "Support message analysis of a stream with every size.", - "last_change": "2019-06-15T20:00:48.033+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_Bd9TgI9tEemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0006": { + "description": "The CSP module shall support a method to create a Frame from a stream.", + "fitcriterion": "Creation of a testframe and checking the result.", + "heading": "Frame creation", + "reason": "Simple message or frame generation for streams (e.g. Keyboard (user input), RFID-Reader, \\ldots)." }, - "_G40UUH5DEemxr4bbKXhxkg": { - "Description": "The Frame creation Method shall raise ValueError, if a frame separation character is in the Source-String.", - "Fitcriterion": "ValueErroro is raised for at least one String including the separation character.", - "Heading": "Frame creation error", - "ID": "REQ-7", - "ReasonForImplementation": "String including separation charcter will be splitted in pieces while processing after transport.", - "last_change": "2019-06-15T19:58:32.200+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_G40UUH5DEemxr4bbKXhxkg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0007": { + "description": "The Frame creation Method shall raise ValueError, if a frame separation character is in the Source-String.", + "fitcriterion": "ValueErroro is raised for at least one String including the separation character.", + "heading": "Frame creation error", + "reason": "String including separation charcter will be splitted in pieces while processing after transport." }, - "_MR7eOHYYEem_kd-7nxt1sg": { - "Heading": "Stream to Human readable String", - "last_change": "2019-06-15T13:44:35.140+02:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_MR7eOHYYEem_kd-7nxt1sg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0008": { + "description": "The CSP Module shall support a class including a method to process stream snipets of variable length. This Method shall return an empty list, if no frame has been detected, otherwise it shall return a list including detected frame(s).", + "fitcriterion": "At least one frame given in at least two snippets is identified correctly.", + "heading": "Frame processing", + "reason": "Support message analysis of a stream with every size." }, - "_NpOWgI9tEemg3cv-3xZ25Q": { - "Description": "If the input data is not bytes for python3 or str for python 2, the process method shall raise TypeError.", - "Fitcriterion": "At least the following types return TypeError (list, int, str for python3, unicode for python 2).", - "Heading": "Frame processing - Input data type error", - "ID": "REQ-12", - "ReasonForImplementation": "Type restriction.", - "last_change": "2019-06-15T20:01:44.738+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_NpOWgI9tEemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0009": { + "description": "If the input data is not bytes for python3 or str for python 2, the process method shall raise TypeError.", + "fitcriterion": "At least the following types return TypeError (list, int, str for python3, unicode for python 2).", + "heading": "Frame processing - Input data type error", + "reason": "Type restriction." }, - "_QjJiIIwZEem5qYOdmXl77A": { - "Description": "The CSP Module shall support a class including a method to process stream snipets of variable length. This Method shall return an empty list, if no frame has been detected, otherwise it shall return a list including detected frame(s).", - "Fitcriterion": "At least one frame given in at least two snippets is identified correctly.", - "Heading": "Frame processing", - "ID": "REQ-8", - "ReasonForImplementation": "Support message analysis of a stream with every size.", - "last_change": "2019-06-15T19:59:33.847+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_QjJiIIwZEem5qYOdmXl77A", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0010": { + "description": "A frame creation method shall create a frame out of given input data.", + "fitcriterion": "Creation of a testframe and checking the result.", + "heading": "Frame creation", + "reason": "Message or Frame generation for streams (e.g. data transfer via bluetooth, ethernet, \\ldots)." }, - "_TzZlUI9jEemg3cv-3xZ25Q": { - "Description": "A Stream is from class {\\tt bytes} for python3 and from type {\\tt str} for python2.", - "Heading": "Stream Definition", - "last_change": "2019-06-15T13:57:17.714+02:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_TzZlUI9jEemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0011": { + "description": "The STP Module shall support a class including a method to process stream snipets of variable length. This Method shall return an empty list, if no frame has been detected, otherwise it shall return a list including detected frame(s).", + "fitcriterion": "At least one frame given in at least two snippets is identified correctly.", + "heading": "Frame processing", + "reason": "Support message analysis of a stream with every size." }, - "_ViQHQEaTEeq5fPlXIeQCXQ": { - "Heading": "Human readable value representations", - "last_change": "2020-02-03T15:41:41.233+01:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_ViQHQEaTEeq5fPlXIeQCXQ", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0012": { + "description": "If the input data is not bytes for python3 or str for python 2, the process method shall raise TypeError.", + "fitcriterion": "At least the following types return TypeError (list, int, str for python3, unicode for python 2).", + "heading": "Frame processing - Input data type error", + "reason": "Type restriction." }, - "_XzMFcHYZEem_kd-7nxt1sg": { - "Description": "A Stream shall be converted to a human readable String containing all bytes as hexadecimal values seperated by a Space.", - "Fitcriterion": "A stream shall be converted at least once and the hex values shall exist in the returnvalue in the correct order.", - "Heading": "Hexadecimal Values", - "ID": "REQ-1", - "ReasonForImplementation": "Make non printable characters printable.", - "last_change": "2019-06-15T13:49:55.408+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_XzMFcHYZEem_kd-7nxt1sg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0013": { + "heading": "Frame processing - Start pattern and end pattern inside a message" }, - "_Y_h3gH5CEemxr4bbKXhxkg": { - "Description": "The CSP module shall support a method to create a Frame from a stream.", - "Fitcriterion": "Creation of a testframe and checking the result.", - "Heading": "Frame creation", - "ID": "REQ-6", - "ReasonForImplementation": "Simple message or frame generation for streams (e.g. Keyboard (user input), RFID-Reader, \\ldots).", - "last_change": "2019-06-15T19:56:41.415+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_Y_h3gH5CEemxr4bbKXhxkg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0014": { + "description": "Data before the start pattern shall be ignored. A warning shall be given to the logger.", + "heading": "Frame processing - Data before the start pattern", + "reason": "Robustness against wrong or corrupted data." }, - "_ZhyRAI9OEemAMMFgxXT6lA": { - "Description": "If the input data is not bytes for python3 or str for python 2, the process method shall raise TypeError.", - "Fitcriterion": "At least the following types return TypeError (list, int, str for python3, unicode for python 2).", - "Heading": "Frame processing - Input data type error", - "ID": "REQ-9", - "ReasonForImplementation": "Type restriction.", - "last_change": "2019-06-15T19:44:59.955+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_ZhyRAI9OEemAMMFgxXT6lA", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0015": { + "description": "The frame creation method shall support existance of the start or end pattern in the data to be framed.", + "fitcriterion": "Creation of a testframe out of data including at least one start pattern and one end pattern and checking the result.", + "heading": "Frame creation - Start pattern and end pattern inside a message", + "reason": "Possibility to send any kind of data (including the patterns)." }, - "_dB5IoEaTEeq5fPlXIeQCXQ": { - "Description": "The library {\\tt stringtools} shall have a method {\\tt physical\\_repr}, transforming a float or integer value to a string with a 1 to 3 digit value followed by the physical prefix for the unit.", - "Heading": "Physical representation", - "ID": "REQ-19", - "last_change": "2020-02-03T18:23:12.625+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_dB5IoEaTEeq5fPlXIeQCXQ", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0016": { + "description": "On receiving an incorrect start pattern, STP shall stay in ESCAPE\\_1, in case of data sync was received twice or back to state IDLE in all other faulty start patterns starting with data sync. A warning shall be given to the logger.", + "heading": "Frame processing - Incorrect start patterns", + "reason": "Robustness against wrong or corrupted data." }, - "_dpJzwCcUEeqsHsnJQYCN8Q": { - "Description": "On receiving an incorrect end pattern, STP shall change to state STORE\\_DATA, in case of a start pattern, to ESCAPE\\_1, in case of data sync was received twice or back to state IDLE in all other faulty end patterns starting with data sync. A warning shall be given to the logger.", - "Heading": "Frame processing - Incorrect end pattern", - "ID": "REQ-17", - "ReasonForImplementation": "Robustness against wrong or corrupted data.", - "last_change": "2019-12-25T15:43:17.516+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_dpJzwCcUEeqsHsnJQYCN8Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0017": { + "description": "On receiving an incorrect end pattern, STP shall change to state STORE\\_DATA, in case of a start pattern, to ESCAPE\\_1, in case of data sync was received twice or back to state IDLE in all other faulty end patterns starting with data sync. A warning shall be given to the logger.", + "heading": "Frame processing - Incorrect end pattern", + "reason": "Robustness against wrong or corrupted data." }, - "_fp-i0Hu8Eemborg4LxXa3A": { - "Description": "The module stringtools shall have a method extracting a Stream with gzip.", - "Fitcriterion": "Extracted Stream is equal to the original compressed data.", - "Heading": "Extract", - "ID": "REQ-4", - "ReasonForImplementation": "Speed up transfer with low transfer rate.", - "last_change": "2019-06-15T14:02:20.451+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_fp-i0Hu8Eemborg4LxXa3A", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0018": { + "description": "The state of STP shall be set to IDLE, after an unknown state was recognised. The currently processed data shall be processed again. An error shall be given to the logger.", + "heading": "Frame processing - After state corruption", + "reason": "Robustness against wrong or corrupted data." }, - "_hpUmwEaTEeq5fPlXIeQCXQ": { - "Description": "The library {\\tt stringtools} shall have a method {\\tt physical\\_repr}, transforming an integer value to a time string like {\\tt HH:MM:SS}.", - "Heading": "Time representation", - "ID": "REQ-20", - "last_change": "2020-02-03T15:43:17.157+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_hpUmwEaTEeq5fPlXIeQCXQ", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0019": { + "description": "The library {\\tt stringtools} shall have a method {\\tt physical\\_repr}, transforming a float or integer value to a string with a 1 to 3 digit value followed by the physical prefix for the unit.", + "heading": "Physical representation" }, - "_iXxBIEaTEeq5fPlXIeQCXQ": { - "Description": "The library {\\tt stringtools} shall have a method {\\tt frac\\_repr}, transforming a float or integer value to a fraction string with a limited denominator.", - "Heading": "Fraction representation", - "ID": "REQ-21", - "last_change": "2020-02-03T18:25:07.836+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_iXxBIEaTEeq5fPlXIeQCXQ", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0020": { + "description": "The library {\\tt stringtools} shall have a method {\\tt physical\\_repr}, transforming an integer value to a time string like {\\tt HH:MM:SS}.", + "heading": "Time representation" }, - "_n3BdUCcREeqsHsnJQYCN8Q": { - "Description": "On receiving an incorrect start pattern, STP shall stay in ESCAPE\\_1, in case of data sync was received twice or back to state IDLE in all other faulty start patterns starting with data sync. A warning shall be given to the logger.", - "Heading": "Frame processing - Incorrect start patterns", - "ID": "REQ-16", - "ReasonForImplementation": "Robustness against wrong or corrupted data.", - "last_change": "2019-12-25T15:48:30.374+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_n3BdUCcREeqsHsnJQYCN8Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "REQ-0021": { + "description": "The library {\\tt stringtools} shall have a method {\\tt frac\\_repr}, transforming a float or integer value to a fraction string with a limited denominator.", + "heading": "Fraction representation" }, - "_pavPUHsZEemK6PYOxF9rHw": { - "Description": "The Length of a Stream surrounded by brakets shall be included in the human readable string.", - "Fitcriterion": "The described pattern including the decimal number of bytes is included in the string for at least one Stream.", - "Heading": "Number of Bytes", - "ID": "REQ-2", - "ReasonForImplementation": "Show the length of a Stream without counting the seperated values.", - "last_change": "2019-05-20T21:37:34.879+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_pavPUHsZEemK6PYOxF9rHw", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "SEC-0001": { + "childs": [ + "REQ-0019", + "REQ-0020", + "REQ-0021" + ], + "heading": "Stream Definition" }, - "_rhV88Hu9Eemborg4LxXa3A": { - "Description": "The module stringtools shall have a method to replace carriage return and line feed to their escaped representation.", - "Fitcriterion": "Filter at least one string and check at least one CR and one LF representation.", - "Heading": "CRLF-Filter", - "ID": "REQ-5", - "ReasonForImplementation": "Replace these characters to make output printable (e.g. for logging a string based protocol).", - "last_change": "2019-06-15T14:53:55.282+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_rhV88Hu9Eemborg4LxXa3A", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "SEC-0002": { + "childs": [], + "heading": "Human readable value representations" }, - "_wMotUCclEeqsHsnJQYCN8Q": { - "Description": "The state of STP shall be set to IDLE, after an unknown state was recognised. The currently processed data shall be processed again. An error shall be given to the logger.", - "Heading": "Frame processing - After state corruption", - "ID": "REQ-18", - "ReasonForImplementation": "Robustness against wrong or corrupted data.", - "last_change": "2019-12-25T15:55:19.497+01:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_wMotUCclEeqsHsnJQYCN8Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "SEC-0003": { + "childs": [ + "REQ-0001", + "REQ-0002", + "REQ-0005" + ], + "heading": "Stream to Human readable String" }, - "_xOCgkI9yEemg3cv-3xZ25Q": { - "Heading": "Frame processing - Start pattern and end pattern inside a message", - "ID": "REQ-13", - "ReasonForImplementation": "Possibility to send any kind of data (including the patterns).", - "last_change": "2019-06-15T15:37:47.161+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_xOCgkI9yEemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "SEC-0004": { + "childs": [ + "REQ-0003", + "REQ-0004" + ], + "heading": "Stream Compression" }, - "_xR3PcH5BEemxr4bbKXhxkg": { - "Description": "The Carriagereturn Seperation Protocol shall use carriage return as the end pattern for message seperation.", - "Heading": "Carriagereturn Seperation Protocol (CSP)", - "last_change": "2019-06-15T19:56:23.071+02:00", - "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", - "system_uid": "_xR3PcH5BEemxr4bbKXhxkg", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "SEC-0005": { + "childs": [ + "REQ-0006", + "REQ-0007", + "REQ-0008", + "REQ-0009" + ], + "heading": "Carriagereturn Seperation Protocol (CSP)" }, - "_xiZqMI92Eemg3cv-3xZ25Q": { - "Description": "The frame creation method shall support existance of the start or end pattern in the data to be framed.", - "Fitcriterion": "Creation of a testframe out of data including at least one start pattern and one end pattern and checking the result.", - "Heading": "Frame creation - Start pattern and end pattern inside a message", - "ID": "REQ-15", - "ReasonForImplementation": "Possibility to send any kind of data (including the patterns).", - "last_change": "2019-06-15T19:53:08.277+02:00", - "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", - "system_uid": "_xiZqMI92Eemg3cv-3xZ25Q", - "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + "SEC-0006": { + "childs": [ + "REQ-0010", + "REQ-0015", + "REQ-0011", + "REQ-0012", + "REQ-0013", + "REQ-0014", + "REQ-0016", + "REQ-0017", + "REQ-0018" + ], + "heading": "Serial Transfer Protocol (STP)" } }, - "titel": "Title", - "uid_list_sorted": [ - "_TzZlUI9jEemg3cv-3xZ25Q", - "_dB5IoEaTEeq5fPlXIeQCXQ", - "_hpUmwEaTEeq5fPlXIeQCXQ", - "_iXxBIEaTEeq5fPlXIeQCXQ", - "_ViQHQEaTEeq5fPlXIeQCXQ", - "_MR7eOHYYEem_kd-7nxt1sg", - "_XzMFcHYZEem_kd-7nxt1sg", - "_pavPUHsZEemK6PYOxF9rHw", - "_rhV88Hu9Eemborg4LxXa3A", - "_0CnJgHu0Eemborg4LxXa3A", - "_9ahP4Hu7Eemborg4LxXa3A", - "_fp-i0Hu8Eemborg4LxXa3A", - "_xR3PcH5BEemxr4bbKXhxkg", - "_Y_h3gH5CEemxr4bbKXhxkg", - "_G40UUH5DEemxr4bbKXhxkg", - "_QjJiIIwZEem5qYOdmXl77A", - "_ZhyRAI9OEemAMMFgxXT6lA", - "_2x4icH5BEemxr4bbKXhxkg", - "_-yWo4I9sEemg3cv-3xZ25Q", - "_xiZqMI92Eemg3cv-3xZ25Q", - "_Bd9TgI9tEemg3cv-3xZ25Q", - "_NpOWgI9tEemg3cv-3xZ25Q", - "_xOCgkI9yEemg3cv-3xZ25Q", - "_5_z4MI9yEemg3cv-3xZ25Q", - "_n3BdUCcREeqsHsnJQYCN8Q", - "_dpJzwCcUEeqsHsnJQYCN8Q", - "_wMotUCclEeqsHsnJQYCN8Q" - ] + "sections": [ + "SEC-0001", + "SEC-0002", + "SEC-0003", + "SEC-0004", + "SEC-0005", + "SEC-0006" + ], + "title": "Title" }, "system_information": { "Architecture": "64bit", - "Distribution": "Linux Mint 20.1 ulyssa", - "Hostname": "erle", - "Kernel": "5.8.0-44-generic (#50~20.04.1-Ubuntu SMP Wed Feb 10 21:07:30 UTC 2021)", + "Distribution": "Debian GNU/Linux 12 bookworm", + "Hostname": "ahorn", + "Kernel": "6.1.0-17-amd64 (#1 SMP PREEMPT_DYNAMIC Debian 6.1.69-1 (2023-12-30))", "Machine": "x86_64", - "Path": "/usr/data/dirk/prj/unittest/stringtools/unittest", + "Path": "/home/dirk/my_repositories/unittest/stringtools", "System": "Linux", "Username": "dirk" }, @@ -1146,41 +853,13 @@ "Description": "The Module {\\tt stringtools} is designed to support functionality for strings (e.g. transfer strings via a bytestream, compressing, extracting, ...).\nFor more Information read the sphinx documentation.", "Name": "stringtools", "State": "Released", - "Supported Interpreters": "python2, python3", - "Version": "09b4d1c41b828c8d1ccb723fa1fd79a9" + "Supported Interpreters": "python3", + "Version": "c921371089d249833cf85a16e7ee72e7" }, "testrun_list": [ { - "heading_dict": { - "_-yWo4I9sEemg3cv-3xZ25Q": "Frame creation", - "_0CnJgHu0Eemborg4LxXa3A": "Stream Compression", - "_2x4icH5BEemxr4bbKXhxkg": "Serial Transfer Protocol (STP)", - "_5_z4MI9yEemg3cv-3xZ25Q": "Frame processing - Data before the start pattern", - "_9ahP4Hu7Eemborg4LxXa3A": "Compress", - "_Bd9TgI9tEemg3cv-3xZ25Q": "Frame processing", - "_G40UUH5DEemxr4bbKXhxkg": "Frame creation error", - "_MR7eOHYYEem_kd-7nxt1sg": "Stream to Human readable String", - "_NpOWgI9tEemg3cv-3xZ25Q": "Frame processing - Input data type error", - "_QjJiIIwZEem5qYOdmXl77A": "Frame processing", - "_TzZlUI9jEemg3cv-3xZ25Q": "Stream Definition", - "_ViQHQEaTEeq5fPlXIeQCXQ": "Human readable value representations", - "_XzMFcHYZEem_kd-7nxt1sg": "Hexadecimal Values", - "_Y_h3gH5CEemxr4bbKXhxkg": "Frame creation", - "_ZhyRAI9OEemAMMFgxXT6lA": "Frame processing - Input data type error", - "_dB5IoEaTEeq5fPlXIeQCXQ": "Physical representation", - "_dpJzwCcUEeqsHsnJQYCN8Q": "Frame processing - Incorrect end pattern", - "_fp-i0Hu8Eemborg4LxXa3A": "Extract", - "_hpUmwEaTEeq5fPlXIeQCXQ": "Time representation", - "_iXxBIEaTEeq5fPlXIeQCXQ": "Fraction representation", - "_n3BdUCcREeqsHsnJQYCN8Q": "Frame processing - Incorrect start patterns", - "_pavPUHsZEemK6PYOxF9rHw": "Number of Bytes", - "_rhV88Hu9Eemborg4LxXa3A": "CRLF-Filter", - "_wMotUCclEeqsHsnJQYCN8Q": "Frame processing - After state corruption", - "_xOCgkI9yEemg3cv-3xZ25Q": "Frame processing - Start pattern and end pattern inside a message", - "_xR3PcH5BEemxr4bbKXhxkg": "Carriagereturn Seperation Protocol (CSP)", - "_xiZqMI92Eemg3cv-3xZ25Q": "Frame creation - Start pattern and end pattern inside a message" - }, - "interpreter": "python 2.7.18 (final)", + "heading_dict": {}, + "interpreter": "python 3.11.2 (final)", "name": "Default Testsession name", "number_of_failed_tests": 0, "number_of_possibly_failed_tests": 0, @@ -1194,2114 +873,60 @@ "90": "Full Test (all defined tests)" }, "testcases": { - "_-yWo4I9sEemg3cv-3xZ25Q": { + "REQ-0001": { "args": null, - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893634, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.223091, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 46, - "message": "_-yWo4I9sEemg3cv-3xZ25Q", + "lineno": 327, + "message": "REQ-0001", "module": "__init__", "moduleLogger": [], - "msecs": 893.6340808868408, - "msg": "_-yWo4I9sEemg3cv-3xZ25Q", + "msecs": 223.0, + "msg": "REQ-0001", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 57.955026626586914, - "testcaseLogger": [ - { - "args": [ - "'testframe for stp'" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893817, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "build_frame_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 17, - "message": "Creating testframe for \"'testframe for stp'\"", - "module": "test_stp", - "moduleLogger": [], - "msecs": 893.8169479370117, - "msg": "Creating testframe for \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.13789367675781, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "':'", - "" - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894065, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "STP-Frame is correct (Content ':' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "STP-Frame", - "':'", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893931, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (STP-Frame): ':' ()", - "module": "test", - "msecs": 893.9309120178223, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.25185775756836, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP-Frame", - "':'", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893999, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (STP-Frame): result = ':' ()", - "module": "test", - "msecs": 893.9990997314453, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.320045471191406, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 894.0649032592773, - "msg": "STP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.38584899902344, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.580352783203125e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00043082237243652344, - "time_finished": "2021-02-28 18:29:55,894", - "time_start": "2021-02-28 18:29:55,893" - }, - "_5_z4MI9yEemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,899", - "created": 1614533395.899273, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 51, - "message": "_5_z4MI9yEemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 899.2729187011719, - "msg": "_5_z4MI9yEemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 63.59386444091797, - "testcaseLogger": [ - { - "args": [ - "'_:'" - ], - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.900179, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_frame_data_before_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 46, - "message": "Processing testframe: \"'_:'\"", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "STP:", - 95 - ], - "asctime": "2021-02-28 18:29:55,899", - "created": 1614533395.899617, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 103, - "message": "STP: no data sync (5f) received => ignoring byte", - "module": "stp", - "msecs": 899.6169567108154, - "msg": "%s no data sync (%02x) received => ignoring byte", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 63.93790245056152, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,899", - "created": 1614533395.899706, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 899.7058868408203, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.0268325805664, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,899", - "created": 1614533395.899784, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 899.7840881347656, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.10503387451172, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,899", - "created": 1614533395.899909, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 899.9090194702148, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.22996520996094, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 62 - ], - "asctime": "2021-02-28 18:29:55,899", - "created": 1614533395.89998, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 899.9800682067871, - "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.3010139465332, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70" - ], - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.900097, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "INFO", - "levelno": 20, - "lineno": 148, - "message": "STP: message identified - (17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70", - "module": "stp", - "msecs": 900.0968933105469, - "msg": "%s message identified - %s", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.41783905029297, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 900.1789093017578, - "msg": "Processing testframe: \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.4998550415039, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.20159912109375e-05 - }, - { - "args": [ - "['testframe for stp']", - "" - ], - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.900535, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Processed STP-Frame is correct (Content ['testframe for stp'] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Processed STP-Frame", - "[ 'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.90035, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Processed STP-Frame): [ 'testframe for stp' ] ()", - "module": "test", - "msecs": 900.3500938415527, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.67103958129883, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Processed STP-Frame", - "[ 'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.900433, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Processed STP-Frame): result = [ 'testframe for stp' ] ()", - "module": "test", - "msecs": 900.4330635070801, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.75400924682617, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 900.5351066589355, - "msg": "Processed STP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 64.85605239868164, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00010204315185546875 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0012621879577636719, - "time_finished": "2021-02-28 18:29:55,900", - "time_start": "2021-02-28 18:29:55,899" - }, - "_9ahP4Hu7Eemborg4LxXa3A": { - "args": null, - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.8872, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 34, - "message": "_9ahP4Hu7Eemborg4LxXa3A", - "module": "__init__", - "moduleLogger": [], - "msecs": 887.200117111206, - "msg": "_9ahP4Hu7Eemborg4LxXa3A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.52106285095215, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887284, - "exc_info": null, - "exc_text": null, - "filename": "test_gzip.py", - "funcName": "compress_extract_check", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 12, - "message": "Compressing Streams result in differnt streams with the same input stream. Therefore the test will compare the decompressed data.", - "module": "test_gzip", - "moduleLogger": [], - "msecs": 887.2840404510498, - "msg": "Compressing Streams result in differnt streams with the same input stream. Therefore the test will compare the decompressed data.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.6049861907959, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff" - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887586, - "exc_info": null, - "exc_text": null, - "filename": "test_gzip.py", - "funcName": "compress_extract_check", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 14, - "message": "Compressing stream: (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ", - "module": "test_gzip", - "moduleLogger": [ - { - "args": [ - 0.8666666666666667, - 0.0001201629638671875 - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887478, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "gzip_compress", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 148, - "message": "GZIP: Finished to compress a string (compression_rate=0.867, consumed_time=0.0s).", - "module": "__init__", - "msecs": 887.4781131744385, - "msg": "GZIP: Finished to compress a string (compression_rate=%.3f, consumed_time=%.1fs).", - "name": "root.stringtools", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.79905891418457, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 887.5861167907715, - "msg": "Compressing stream: %s ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.90706253051758, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00010800361633300781 - }, - { - "args": [ - "(26): 1f 8b 08 00 13 d3 3b 60 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00" - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887851, - "exc_info": null, - "exc_text": null, - "filename": "test_gzip.py", - "funcName": "compress_extract_check", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 16, - "message": "Extracting stream: (26): 1f 8b 08 00 13 d3 3b 60 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00", - "module": "test_gzip", - "moduleLogger": [ - { - "args": [ - 0.8666666666666667, - 7.295608520507812e-05 - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887747, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "gzip_extract", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 181, - "message": "GZIP: Finished to extract a string (compression_rate=0.867, consumed_time=0.0s).", - "module": "__init__", - "msecs": 887.747049331665, - "msg": "GZIP: Finished to extract a string (compression_rate=%.3f, consumed_time=%.1fs).", - "name": "root.stringtools", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.06799507141113, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 887.8509998321533, - "msg": "Extracting stream: %s", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.171945571899414, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00010395050048828125 - }, - { - "args": [ - "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff", - "" - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888171, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Extracted data is correct (Content (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Extracted data", - "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff", - "" - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887983, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Extracted data): (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ()", - "module": "test", - "msecs": 887.9830837249756, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.30402946472168, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Extracted data", - "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff", - "" - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888077, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Extracted data): result = (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ()", - "module": "test", - "msecs": 888.0770206451416, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.397966384887695, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 888.1709575653076, - "msg": "Extracted data is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.49190330505371, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 9.393692016601562e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0009708404541015625, - "time_finished": "2021-02-28 18:29:55,888", - "time_start": "2021-02-28 18:29:55,887" - }, - "_Bd9TgI9tEemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894653, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 48, - "message": "_Bd9TgI9tEemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 894.6530818939209, - "msg": "_Bd9TgI9tEemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.97402763366699, - "testcaseLogger": [ - { - "args": [ - "':'" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895101, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_frame_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 31, - "message": "Processing testframe: \"':'\"", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.89475, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 894.7501182556152, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.07106399536133, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894808, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 894.8080539703369, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.12899971008301, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894918, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 894.9179649353027, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.23891067504883, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 62 - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894972, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 894.9720859527588, - "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.29303169250488, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895051, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "INFO", - "levelno": 20, - "lineno": 148, - "message": "STP: message identified - (17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70", - "module": "stp", - "msecs": 895.0510025024414, - "msg": "%s message identified - %s", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.3719482421875, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 895.1010704040527, - "msg": "Processing testframe: \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.42201614379883, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.0067901611328125e-05 - }, - { - "args": [ - "[]", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895304, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "First processed STP snippet is correct (Content [] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "First processed STP snippet", - "[ ]", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895192, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (First processed STP snippet): [ ] ()", - "module": "test", - "msecs": 895.1919078826904, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.51285362243652, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "First processed STP snippet", - "[ ]", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895241, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (First processed STP snippet): result = [ ] ()", - "module": "test", - "msecs": 895.2410221099854, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.561967849731445, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 895.3039646148682, - "msg": "First processed STP snippet is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.62491035461426, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.29425048828125e-05 - }, - { - "args": [ - "['testframe for stp']", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895513, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Final processed STP snippet is correct (Content ['testframe for stp'] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Final processed STP snippet", - "[ 'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895402, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Final processed STP snippet): [ 'testframe for stp' ] ()", - "module": "test", - "msecs": 895.4019546508789, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.722900390625, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Final processed STP snippet", - "[ 'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895453, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Final processed STP snippet): result = [ 'testframe for stp' ] ()", - "module": "test", - "msecs": 895.4529762268066, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.773921966552734, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 895.5130577087402, - "msg": "Final processed STP snippet is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.83400344848633, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.008148193359375e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0008599758148193359, - "time_finished": "2021-02-28 18:29:55,895", - "time_start": "2021-02-28 18:29:55,894" - }, - "_G40UUH5DEemxr4bbKXhxkg": { - "args": null, - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.889788, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 40, - "message": "_G40UUH5DEemxr4bbKXhxkg", - "module": "__init__", - "moduleLogger": [], - "msecs": 889.7879123687744, - "msg": "_G40UUH5DEemxr4bbKXhxkg", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.10885810852051, - "testcaseLogger": [ - { - "args": [ - "':testframe: for csp'" - ], - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.889924, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "build_frame_chk_error", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 23, - "message": "Creating testframe for \"':testframe: for csp'\"", - "module": "test_csp", - "moduleLogger": [], - "msecs": 889.9240493774414, - "msg": "Creating testframe for \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.2449951171875, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890243, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "CSP-Frame is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "CSP-Frame", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890072, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (CSP-Frame): ()", - "module": "test", - "msecs": 890.0721073150635, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.39305305480957, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "CSP-Frame", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890161, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (CSP-Frame): result = ()", - "module": "test", - "msecs": 890.1610374450684, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.48198318481445, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 890.2430534362793, - "msg": "CSP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.56399917602539, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.20159912109375e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0004551410675048828, - "time_finished": "2021-02-28 18:29:55,890", - "time_start": "2021-02-28 18:29:55,889" - }, - "_NpOWgI9tEemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895663, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 49, - "message": "_NpOWgI9tEemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 895.6630229949951, - "msg": "_NpOWgI9tEemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 59.98396873474121, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895756, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 53, - "message": "Processing wrong data (list)", - "module": "test_stp", - "moduleLogger": [], - "msecs": 895.7560062408447, - "msg": "Processing wrong data (list)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.07695198059082, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895946, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895846, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 895.845890045166, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.16683578491211, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,895", - "created": 1614533395.895897, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 895.8969116210938, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.217857360839844, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 895.9460258483887, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.266971588134766, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.9114227294921875e-05 - }, - { - "args": [ - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896119, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content '' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896024, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): '' ()", - "module": "test", - "msecs": 896.0239887237549, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.34493446350098, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896072, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = '' ()", - "module": "test", - "msecs": 896.0719108581543, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.39285659790039, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 896.1191177368164, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.4400634765625, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.7206878662109375e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.89619, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 63, - "message": "Processing wrong data (int)", - "module": "test_stp", - "moduleLogger": [], - "msecs": 896.1899280548096, - "msg": "Processing wrong data (int)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.510873794555664, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896388, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896272, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 896.2719440460205, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.5928897857666, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896322, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 896.3220119476318, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.64295768737793, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 896.388053894043, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.70899963378906, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.604194641113281e-05 - }, - { - "args": [ - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896565, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content '' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896467, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): '' ()", - "module": "test", - "msecs": 896.4669704437256, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.78791618347168, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896517, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = '' ()", - "module": "test", - "msecs": 896.5170383453369, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.83798408508301, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 896.5649604797363, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 60.88590621948242, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,896", - "created": 1614533395.896905, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 84, - "message": "Processing wrong data (unicode)", - "module": "test_stp", - "moduleLogger": [], - "msecs": 896.9049453735352, - "msg": "Processing wrong data (unicode)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.22589111328125, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897174, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897055, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 897.05491065979, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.37585639953613, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897121, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 897.1209526062012, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.441898345947266, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 897.1738815307617, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.49482727050781, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.2928924560546875e-05 - }, - { - "args": [ - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.89736, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content '' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897258, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): '' ()", - "module": "test", - "msecs": 897.2580432891846, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.578989028930664, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897309, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = '' ()", - "module": "test", - "msecs": 897.3090648651123, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.6300106048584, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 897.36008644104, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.68103218078613, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.1021575927734375e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0016970634460449219, - "time_finished": "2021-02-28 18:29:55,897", - "time_start": "2021-02-28 18:29:55,895" - }, - "_QjJiIIwZEem5qYOdmXl77A": { - "args": null, - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890477, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 41, - "message": "_QjJiIIwZEem5qYOdmXl77A", - "module": "__init__", - "moduleLogger": [], - "msecs": 890.4769420623779, - "msg": "_QjJiIIwZEem5qYOdmXl77A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.79788780212402, - "testcaseLogger": [ - { - "args": [ - "':testframe: for csp\\n'" - ], - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890907, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "process_frame_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 36, - "message": "Processing testframe: \"':testframe: for csp\\n'\" in two snippets", - "module": "test_csp", - "moduleLogger": [ - { - "args": [ - "CSP:", - "(10): 3a 74 65 73 74 66 72 61 6d 65" - ], - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890671, - "exc_info": null, - "exc_text": null, - "filename": "csp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 68, - "message": "CSP: Leaving data in buffer (to be processed next time): (10): 3a 74 65 73 74 66 72 61 6d 65", - "module": "csp", - "msecs": 890.6710147857666, - "msg": "%s Leaving data in buffer (to be processed next time): %s", - "name": "root.stringtools.csp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 54.991960525512695, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "CSP:", - "(19): 3a 74 65 73 74 66 72 61 6d 65 3a 20 66 6f 72 20 63 73 70" - ], - "asctime": "2021-02-28 18:29:55,890", - "created": 1614533395.890821, - "exc_info": null, - "exc_text": null, - "filename": "csp.py", - "funcName": "process", - "levelname": "INFO", - "levelno": 20, - "lineno": 70, - "message": "CSP: message identified - (19): 3a 74 65 73 74 66 72 61 6d 65 3a 20 66 6f 72 20 63 73 70", - "module": "csp", - "msecs": 890.8209800720215, - "msg": "%s message identified - %s", - "name": "root.stringtools.csp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.14192581176758, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 890.9070491790771, - "msg": "Processing testframe: \"%s\" in two snippets", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.22799491882324, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.606910705566406e-05 - }, - { - "args": [ - "[]", - "" - ], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891211, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "First processed CSP-Snippet is correct (Content [] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "First processed CSP-Snippet", - "[ ]", - "" - ], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891045, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (First processed CSP-Snippet): [ ] ()", - "module": "test", - "msecs": 891.045093536377, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.36603927612305, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "First processed CSP-Snippet", - "[ ]", - "" - ], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891122, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (First processed CSP-Snippet): result = [ ] ()", - "module": "test", - "msecs": 891.1221027374268, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.44304847717285, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 891.2110328674316, - "msg": "First processed CSP-Snippet is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.531978607177734, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.893013000488281e-05 - }, - { - "args": [ - "[':testframe: for csp']", - "" - ], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891535, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Final processed CSP-Frame is correct (Content [':testframe: for csp'] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Final processed CSP-Frame", - "[ ':testframe: for csp' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891354, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Final processed CSP-Frame): [ ':testframe: for csp' ] ()", - "module": "test", - "msecs": 891.3540840148926, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.67502975463867, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Final processed CSP-Frame", - "[ ':testframe: for csp' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.89144, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Final processed CSP-Frame): result = [ ':testframe: for csp' ] ()", - "module": "test", - "msecs": 891.4399147033691, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.760860443115234, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 891.5350437164307, - "msg": "Final processed CSP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 55.85598945617676, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 9.512901306152344e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0010581016540527344, - "time_finished": "2021-02-28 18:29:55,891", - "time_start": "2021-02-28 18:29:55,890" - }, - "_XzMFcHYZEem_kd-7nxt1sg": { - "args": null, - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885646, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 29, - "message": "_XzMFcHYZEem_kd-7nxt1sg", - "module": "__init__", - "moduleLogger": [], - "msecs": 885.6461048126221, - "msg": "_XzMFcHYZEem_kd-7nxt1sg", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.967050552368164, + "relativeCreated": 74.14078712463379, + "stack_info": null, "testcaseLogger": [ { "args": [ "de ad be ef", - "" + "" ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885791, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.223226, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", "levelname": "DEBUG", "levelno": 10, "lineno": 27, - "message": "Checking test pattern de ad be ef ().", + "message": "Checking test pattern de ad be ef ().", "module": "test_hexlify", "moduleLogger": [], - "msecs": 885.7910633087158, + "msecs": 223.0, "msg": "Checking test pattern %s (%s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.112009048461914, - "thread": 139725527095104, + "relativeCreated": 74.27597045898438, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, { "args": [], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886249, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2237015, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3315,9 +940,8 @@ "args": [ "(4): de ad be ef" ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885888, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.223318, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3326,23 +950,23 @@ "lineno": 29, "message": "Return value of hexlify is (4): de ad be ef", "module": "test_hexlify", - "msecs": 885.8880996704102, + "msecs": 223.0, "msg": "Return value of hexlify is %s", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.20904541015625, - "thread": 139725527095104, + "relativeCreated": 74.36800003051758, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "(4): DE AD BE EF" ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886006, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2234514, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3351,14 +975,15 @@ "lineno": 31, "message": "Using upper string for comparison: (4): DE AD BE EF", "module": "test_hexlify", - "msecs": 886.0061168670654, + "msecs": 223.0, "msg": "Using upper string for comparison: %s", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.32706260681152, - "thread": 139725527095104, + "relativeCreated": 74.50127601623535, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -3366,9 +991,8 @@ "DE", "(4): DE AD BE EF" ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886064, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2235143, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3377,14 +1001,15 @@ "lineno": 41, "message": "\"DE\" found in \"(4): DE AD BE EF\"... Reducing pattern", "module": "test_hexlify", - "msecs": 886.0640525817871, + "msecs": 223.0, "msg": "\"%s\" found in \"%s\"... Reducing pattern", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.3849983215332, - "thread": 139725527095104, + "relativeCreated": 74.56421852111816, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -3392,9 +1017,8 @@ "AD", "AD BE EF" ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886111, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2235641, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3403,14 +1027,15 @@ "lineno": 41, "message": "\"AD\" found in \"AD BE EF\"... Reducing pattern", "module": "test_hexlify", - "msecs": 886.1110210418701, + "msecs": 223.0, "msg": "\"%s\" found in \"%s\"... Reducing pattern", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.43196678161621, - "thread": 139725527095104, + "relativeCreated": 74.61404800415039, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -3418,9 +1043,8 @@ "BE", "BE EF" ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886157, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2236102, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3429,14 +1053,15 @@ "lineno": 41, "message": "\"BE\" found in \"BE EF\"... Reducing pattern", "module": "test_hexlify", - "msecs": 886.1570358276367, + "msecs": 223.0, "msg": "\"%s\" found in \"%s\"... Reducing pattern", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.47798156738281, - "thread": 139725527095104, + "relativeCreated": 74.66006278991699, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -3444,9 +1069,8 @@ "EF", "EF" ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886203, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2236564, "exc_text": null, "filename": "test_hexlify.py", "funcName": "data_chk", @@ -3455,5024 +1079,65 @@ "lineno": 41, "message": "\"EF\" found in \"EF\"... Reducing pattern", "module": "test_hexlify", - "msecs": 886.2030506134033, + "msecs": 223.0, "msg": "\"%s\" found in \"%s\"... Reducing pattern", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.523996353149414, - "thread": 139725527095104, + "relativeCreated": 74.7063159942627, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 886.2490653991699, + "msecs": 223.0, "msg": "Pattern included all relevant information in the correct order.", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.570011138916016, - "thread": 139725527095104, + "relativeCreated": 74.75137710571289, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 + "time_consumption": 4.506111145019531e-05 } ], - "thread": 139725527095104, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.0006029605865478516, - "time_finished": "2021-02-28 18:29:55,886", - "time_start": "2021-02-28 18:29:55,885" + "time_consumption": 0.0006105899810791016, + "time_finished": "2025-03-24 14:49:33,223", + "time_start": "2025-03-24 14:49:33,223" }, - "_Y_h3gH5CEemxr4bbKXhxkg": { + "REQ-0002": { "args": null, - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.88911, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,223", + "created": 1742824173.2238715, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 39, - "message": "_Y_h3gH5CEemxr4bbKXhxkg", + "lineno": 327, + "message": "REQ-0002", "module": "__init__", "moduleLogger": [], - "msecs": 889.1100883483887, - "msg": "_Y_h3gH5CEemxr4bbKXhxkg", + "msecs": 223.0, + "msg": "REQ-0002", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 53.431034088134766, - "testcaseLogger": [ - { - "args": [ - "':testframe: for csp'" - ], - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.889253, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "build_frame_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 17, - "message": "Creating testframe for \"':testframe: for csp'\"", - "module": "test_csp", - "moduleLogger": [], - "msecs": 889.2529010772705, - "msg": "Creating testframe for \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.5738468170166, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "':testframe: for csp\\n'", - "" - ], - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.889555, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "CSP-Frame is correct (Content ':testframe: for csp\\n' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "CSP-Frame", - "':testframe: for csp\\n'", - "" - ], - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.889396, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (CSP-Frame): ':testframe: for csp\\n' ()", - "module": "test", - "msecs": 889.3959522247314, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.71689796447754, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "CSP-Frame", - "':testframe: for csp\\n'", - "" - ], - "asctime": "2021-02-28 18:29:55,889", - "created": 1614533395.889478, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (CSP-Frame): result = ':testframe: for csp\\n' ()", - "module": "test", - "msecs": 889.4779682159424, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.79891395568848, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 889.5549774169922, - "msg": "CSP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.87592315673828, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.700920104980469e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0004448890686035156, - "time_finished": "2021-02-28 18:29:55,889", - "time_start": "2021-02-28 18:29:55,889" - }, - "_ZhyRAI9OEemAMMFgxXT6lA": { - "args": null, - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891771, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 42, - "message": "_ZhyRAI9OEemAMMFgxXT6lA", - "module": "__init__", - "moduleLogger": [], - "msecs": 891.7710781097412, - "msg": "_ZhyRAI9OEemAMMFgxXT6lA", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.092023849487305, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:55,891", - "created": 1614533395.891914, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 44, - "message": "Processing wrong data (list)", - "module": "test_csp", - "moduleLogger": [], - "msecs": 891.913890838623, - "msg": "Processing wrong data (list)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.23483657836914, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892227, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892053, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 892.0528888702393, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.37383460998535, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.89214, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 892.1399116516113, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.46085739135742, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 892.2269344329834, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.54788017272949, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.702278137207031e-05 - }, - { - "args": [ - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892527, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content '' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892355, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): '' ()", - "module": "test", - "msecs": 892.3549652099609, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.67591094970703, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.89244, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = '' ()", - "module": "test", - "msecs": 892.4400806427002, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.76102638244629, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 892.5271034240723, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.84804916381836, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.702278137207031e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892656, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 54, - "message": "Processing wrong data (int)", - "module": "test_csp", - "moduleLogger": [], - "msecs": 892.6560878753662, - "msg": "Processing wrong data (int)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 56.977033615112305, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892863, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892758, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 892.7578926086426, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.07883834838867, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892812, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 892.8120136260986, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.13295936584473, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 892.8630352020264, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.18398094177246, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.1021575927734375e-05 - }, - { - "args": [ - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893042, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content '' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892945, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): '' ()", - "module": "test", - "msecs": 892.9450511932373, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.2659969329834, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,892", - "created": 1614533395.892994, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = '' ()", - "module": "test", - "msecs": 892.9939270019531, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.31487274169922, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 893.0420875549316, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.363033294677734, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.8160552978515625e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893118, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 75, - "message": "Processing wrong data (unicode)", - "module": "test_csp", - "moduleLogger": [], - "msecs": 893.1179046630859, - "msg": "Processing wrong data (unicode)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.43885040283203, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.8933, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893201, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 893.2011127471924, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.52205848693848, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893252, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 893.251895904541, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.57284164428711, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 893.3000564575195, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.621002197265625, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.8160552978515625e-05 - }, - { - "args": [ - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893475, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content '' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893378, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): '' ()", - "module": "test", - "msecs": 893.3780193328857, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.698965072631836, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "''", - "" - ], - "asctime": "2021-02-28 18:29:55,893", - "created": 1614533395.893425, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = '' ()", - "module": "test", - "msecs": 893.4249877929688, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.745933532714844, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 893.4750556945801, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 57.79600143432617, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.0067901611328125e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0017039775848388672, - "time_finished": "2021-02-28 18:29:55,893", - "time_start": "2021-02-28 18:29:55,891" - }, - "_dB5IoEaTEeq5fPlXIeQCXQ": { - "args": null, - "asctime": "2021-02-28 18:29:55,879", - "created": 1614533395.879564, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 24, - "message": "_dB5IoEaTEeq5fPlXIeQCXQ", - "module": "__init__", - "moduleLogger": [], - "msecs": 879.5640468597412, - "msg": "_dB5IoEaTEeq5fPlXIeQCXQ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 43.884992599487305, - "testcaseLogger": [ - { - "args": [ - "'117p'", - "" - ], - "asctime": "2021-02-28 18:29:55,879", - "created": 1614533395.879955, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1.17e-10 is correct (Content '117p' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1.17e-10", - "'117p'", - "" - ], - "asctime": "2021-02-28 18:29:55,879", - "created": 1614533395.879823, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1.17e-10): '117p' ()", - "module": "test", - "msecs": 879.8229694366455, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.1439151763916, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1.17e-10", - "'117p'", - "" - ], - "asctime": "2021-02-28 18:29:55,879", - "created": 1614533395.879895, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1.17e-10): result = '117p' ()", - "module": "test", - "msecs": 879.8949718475342, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.21591758728027, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 879.9550533294678, - "msg": "Physical representation for 1.17e-10 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.27599906921387, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.008148193359375e-05 - }, - { - "args": [ - "'54n'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.88017, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 5.4e-08 is correct (Content '54n' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 5.4e-08", - "'54n'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880063, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 5.4e-08): '54n' ()", - "module": "test", - "msecs": 880.0630569458008, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.384002685546875, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 5.4e-08", - "'54n'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880118, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 5.4e-08): result = '54n' ()", - "module": "test", - "msecs": 880.1178932189941, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.438838958740234, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 880.1701068878174, - "msg": "Physical representation for 5.4e-08 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.49105262756348, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.221366882324219e-05 - }, - { - "args": [ - "'25.3u'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880363, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 2.53e-05 is correct (Content '25.3u' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 2.53e-05", - "'25.3u'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880264, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 2.53e-05): '25.3u' ()", - "module": "test", - "msecs": 880.2640438079834, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.58498954772949, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 2.53e-05", - "'25.3u'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880315, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 2.53e-05): result = '25.3u' ()", - "module": "test", - "msecs": 880.3150653839111, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.63601112365723, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 880.3629875183105, - "msg": "Physical representation for 2.53e-05 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.68393325805664, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 - }, - { - "args": [ - "'100m'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880555, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 0.1 is correct (Content '100m' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 0.1", - "'100m'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880457, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 0.1): '100m' ()", - "module": "test", - "msecs": 880.4569244384766, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.777870178222656, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 0.1", - "'100m'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880506, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 0.1): result = '100m' ()", - "module": "test", - "msecs": 880.5060386657715, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.82698440551758, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 880.5549144744873, - "msg": "Physical representation for 0.1 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.8758602142334, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.887580871582031e-05 - }, - { - "args": [ - "'0'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880742, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 0 is correct (Content '0' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 0", - "'0'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880646, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 0): '0' ()", - "module": "test", - "msecs": 880.6459903717041, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 44.966936111450195, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 0", - "'0'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880695, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 0): result = '0' ()", - "module": "test", - "msecs": 880.695104598999, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.01605033874512, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 880.742073059082, - "msg": "Physical representation for 0 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.063018798828125, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.696846008300781e-05 - }, - { - "args": [ - "'1'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880933, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1 is correct (Content '1' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1", - "'1'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880834, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1): '1' ()", - "module": "test", - "msecs": 880.8341026306152, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.15504837036133, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1", - "'1'", - "" - ], - "asctime": "2021-02-28 18:29:55,880", - "created": 1614533395.880884, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1): result = '1' ()", - "module": "test", - "msecs": 880.8839321136475, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.204877853393555, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 880.9330463409424, - "msg": "Physical representation for 1 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.25399208068848, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.9114227294921875e-05 - }, - { - "args": [ - "'1k'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881117, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1000 is correct (Content '1k' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1000", - "'1k'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881022, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1000): '1k' ()", - "module": "test", - "msecs": 881.0219764709473, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.34292221069336, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1000", - "'1k'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881071, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1000): result = '1k' ()", - "module": "test", - "msecs": 881.0710906982422, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.39203643798828, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 881.1171054840088, - "msg": "Physical representation for 1000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.43805122375488, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'1.01M'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881296, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1005001 is correct (Content '1.01M' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1005001", - "'1.01M'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881203, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1005001): '1.01M' ()", - "module": "test", - "msecs": 881.2029361724854, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.523881912231445, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1005001", - "'1.01M'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.88125, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1005001): result = '1.01M' ()", - "module": "test", - "msecs": 881.2499046325684, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.57085037231445, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 881.295919418335, - "msg": "Physical representation for 1005001 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.616865158081055, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'1G'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881487, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1004000000 is correct (Content '1G' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1004000000", - "'1G'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881392, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1004000000): '1G' ()", - "module": "test", - "msecs": 881.3920021057129, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.712947845458984, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1004000000", - "'1G'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.88144, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1004000000): result = '1G' ()", - "module": "test", - "msecs": 881.4399242401123, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.7608699798584, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 881.4868927001953, - "msg": "Physical representation for 1004000000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.807838439941406, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.696846008300781e-05 - }, - { - "args": [ - "'1T'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881688, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1003000000000 is correct (Content '1T' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1003000000000", - "'1T'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.88158, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1003000000000): '1T' ()", - "module": "test", - "msecs": 881.580114364624, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.90106010437012, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1003000000000", - "'1T'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881628, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1003000000000): result = '1T' ()", - "module": "test", - "msecs": 881.6280364990234, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 45.94898223876953, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 881.688117980957, - "msg": "Physical representation for 1003000000000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.009063720703125, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.008148193359375e-05 - }, - { - "args": [ - "'10P'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.88189, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 10000000000000000 is correct (Content '10P' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 10000000000000000", - "'10P'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881793, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 10000000000000000): '10P' ()", - "module": "test", - "msecs": 881.7930221557617, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.11396789550781, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 10000000000000000", - "'10P'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881842, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 10000000000000000): result = '10P' ()", - "module": "test", - "msecs": 881.8418979644775, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.16284370422363, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 881.890058517456, - "msg": "Physical representation for 10000000000000000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.21100425720215, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.8160552978515625e-05 - }, - { - "args": [ - "'17.17'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882072, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 17.17 is correct (Content '17.17' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 17.17", - "'17.17'", - "" - ], - "asctime": "2021-02-28 18:29:55,881", - "created": 1614533395.881978, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 17.17): '17.17' ()", - "module": "test", - "msecs": 881.9780349731445, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.298980712890625, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 17.17", - "'17.17'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882025, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 17.17): result = '17.17' ()", - "module": "test", - "msecs": 882.0250034332275, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.34594917297363, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 882.0719718933105, - "msg": "Physical representation for 17.17 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.39291763305664, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.696846008300781e-05 - }, - { - "args": [ - "'117k'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882261, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 117000 is correct (Content '117k' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 117000", - "'117k'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882163, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 117000): '117k' ()", - "module": "test", - "msecs": 882.1630477905273, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.48399353027344, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 117000", - "'117k'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882211, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 117000): result = '117k' ()", - "module": "test", - "msecs": 882.2109699249268, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.53191566467285, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 882.2610378265381, - "msg": "Physical representation for 117000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.58198356628418, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.0067901611328125e-05 - }, - { - "args": [ - "'117.2'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.88244, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 117.17 is correct (Content '117.2' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 117.17", - "'117.2'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882345, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 117.17): '117.2' ()", - "module": "test", - "msecs": 882.3449611663818, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.66590690612793, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 117.17", - "'117.2'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882393, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 117.17): result = '117.2' ()", - "module": "test", - "msecs": 882.3928833007812, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.713829040527344, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 882.4400901794434, - "msg": "Physical representation for 117.17 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.76103591918945, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.7206878662109375e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0028760433197021484, - "time_finished": "2021-02-28 18:29:55,882", - "time_start": "2021-02-28 18:29:55,879" - }, - "_dpJzwCcUEeqsHsnJQYCN8Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903103, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 53, - "message": "_dpJzwCcUEeqsHsnJQYCN8Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 903.1031131744385, - "msg": "_dpJzwCcUEeqsHsnJQYCN8Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.42405891418457, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903661, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_incorrect_end_frame_pattern", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 126, - "message": "Processing data with an insufficient end pattern.", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 903.3129215240479, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.63386726379395, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903375, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 903.3749103546143, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.69585609436035, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903451, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 903.4509658813477, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.77191162109375, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 100 - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903514, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 140, - "message": "STP: data (64) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 903.5139083862305, - "msg": "%s data (%02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.83485412597656, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903584, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 903.5840034484863, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.90494918823242, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 903.6610126495361, - "msg": "Processing data with an insufficient end pattern.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.98195838928223, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.700920104980469e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903964, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing data_sync and data again after start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing data_sync and data again after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903809, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing data_sync and data again after start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 903.8090705871582, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.1300163269043, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing data_sync and data again after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,903", - "created": 1614533395.903879, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing data_sync and data again after start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 903.878927230835, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.19987297058105, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 903.9640426635742, - "msg": "Return value list if processing data_sync and data again after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.28498840332031, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.511543273925781e-05 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,904", - "created": 1614533395.904235, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing data_sync and data again after start of frame is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing data_sync and data again after start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,904", - "created": 1614533395.904087, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing data_sync and data again after start of frame): 0 ()", - "module": "test", - "msecs": 904.0870666503906, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.40801239013672, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing data_sync and data again after start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,904", - "created": 1614533395.904156, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing data_sync and data again after start of frame): result = 0 ()", - "module": "test", - "msecs": 904.155969619751, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.47691535949707, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 904.2348861694336, - "msg": "State after processing data_sync and data again after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.55583190917969, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.891654968261719e-05 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,904", - "created": 1614533395.904577, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer size after processing data with insufficient end pattern is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer size after processing data with insufficient end pattern", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,904", - "created": 1614533395.904362, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer size after processing data with insufficient end pattern): 0 ()", - "module": "test", - "msecs": 904.3619632720947, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.68290901184082, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer size after processing data with insufficient end pattern", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,904", - "created": 1614533395.904467, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer size after processing data with insufficient end pattern): result = 0 ()", - "module": "test", - "msecs": 904.4671058654785, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.78805160522461, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 904.5770168304443, - "msg": "Buffer size after processing data with insufficient end pattern is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 68.89796257019043, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00010991096496582031 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905596, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_incorrect_end_frame_pattern", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 138, - "message": "Processing data with an insufficient end pattern (start pattern instead of end pattern).", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 904.9780368804932, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 69.29898262023926, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.9051, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 905.1001071929932, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 69.42105293273926, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905233, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 905.2329063415527, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 69.55385208129883, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905372, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 122, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 905.371904373169, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 69.69285011291504, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905504, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 905.5039882659912, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 69.8249340057373, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 905.5960178375244, - "msg": "Processing data with an insufficient end pattern (start pattern instead of end pattern).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 69.91696357727051, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 9.202957153320312e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905997, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing 2nd start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing 2nd start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905778, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing 2nd start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 905.7779312133789, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.098876953125, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing 2nd start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,905", - "created": 1614533395.905872, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing 2nd start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 905.872106552124, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.19305229187012, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 905.9970378875732, - "msg": "Return value list if processing 2nd start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.31798362731934, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00012493133544921875 - }, - { - "args": [ - "3", - "" - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906318, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing 2nd start of frame is correct (Content 3 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing 2nd start of frame", - "3", - "" - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906142, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing 2nd start of frame): 3 ()", - "module": "test", - "msecs": 906.141996383667, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.46294212341309, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing 2nd start of frame", - "3", - "" - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906229, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing 2nd start of frame): result = 3 ()", - "module": "test", - "msecs": 906.2290191650391, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.54996490478516, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 906.317949295044, - "msg": "State after processing 2nd start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.63889503479004, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.893013000488281e-05 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906629, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer size after processing 2nd start of frame is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer size after processing 2nd start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906457, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer size after processing 2nd start of frame): 0 ()", - "module": "test", - "msecs": 906.4569473266602, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.77789306640625, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer size after processing 2nd start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906547, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer size after processing 2nd start of frame): result = 0 ()", - "module": "test", - "msecs": 906.5470695495605, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.86801528930664, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 906.6290855407715, - "msg": "Buffer size after processing 2nd start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 70.95003128051758, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.20159912109375e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907217, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_incorrect_end_frame_pattern", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 150, - "message": "Processing data with an insufficient end pattern (two times sync instead of end pattern).", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 906.8760871887207, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.1970329284668, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,906", - "created": 1614533395.906964, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 906.9640636444092, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.28500938415527, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907041, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 907.041072845459, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.36201858520508, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907099, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 136, - "message": "STP: second data sync (3a) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 907.0990085601807, - "msg": "%s second data sync (%02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.41995429992676, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907161, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 907.1609973907471, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.48194313049316, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 907.2170257568359, - "msg": "Processing data with an insufficient end pattern (two times sync instead of end pattern).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.53797149658203, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.602836608886719e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907431, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing data_sync twice after start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing data_sync twice after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907312, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing data_sync twice after start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 907.3119163513184, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.63286209106445, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing data_sync twice after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907366, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing data_sync twice after start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 907.3660373687744, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.68698310852051, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 907.43088722229, - "msg": "Return value list if processing data_sync twice after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.75183296203613, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.4849853515625e-05 - }, - { - "args": [ - "1", - "" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.90762, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing data_sync twice after start of frame is correct (Content 1 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing data_sync twice after start of frame", - "1", - "" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907519, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing data_sync twice after start of frame): 1 ()", - "module": "test", - "msecs": 907.5191020965576, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.84004783630371, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing data_sync twice after start of frame", - "1", - "" - ], - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.907571, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing data_sync twice after start of frame): result = 1 ()", - "module": "test", - "msecs": 907.5710773468018, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.89202308654785, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 907.6199531555176, - "msg": "State after processing data_sync twice after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 71.94089889526367, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.887580871582031e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0045168399810791016, - "time_finished": "2021-02-28 18:29:55,907", - "time_start": "2021-02-28 18:29:55,903" - }, - "_fp-i0Hu8Eemborg4LxXa3A": { - "args": null, - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888324, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 35, - "message": "_fp-i0Hu8Eemborg4LxXa3A", - "module": "__init__", - "moduleLogger": [], - "msecs": 888.3240222930908, - "msg": "_fp-i0Hu8Eemborg4LxXa3A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.644968032836914, - "testcaseLogger": [ - { - "args": [ - "(26): 1f 8b 08 00 34 e0 04 5d 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00" - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888576, - "exc_info": null, - "exc_text": null, - "filename": "test_gzip.py", - "funcName": "gzip_extract_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 23, - "message": "Extracting stream: (26): 1f 8b 08 00 34 e0 04 5d 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00", - "module": "test_gzip", - "moduleLogger": [ - { - "args": [ - 0.8666666666666667, - 6.103515625e-05 - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888475, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "gzip_extract", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 181, - "message": "GZIP: Finished to extract a string (compression_rate=0.867, consumed_time=0.0s).", - "module": "__init__", - "msecs": 888.4749412536621, - "msg": "GZIP: Finished to extract a string (compression_rate=%.3f, consumed_time=%.1fs).", - "name": "root.stringtools", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.7958869934082, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 888.5760307312012, - "msg": "Extracting stream: %s", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 52.896976470947266, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0001010894775390625 - }, - { - "args": [ - "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", - "" - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888883, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Extracted data is correct (Content '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Extracted data", - "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", - "" - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.88875, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Extracted data): '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' ()", - "module": "test", - "msecs": 888.7500762939453, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.071022033691406, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Extracted data", - "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", - "" - ], - "asctime": "2021-02-28 18:29:55,888", - "created": 1614533395.888805, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Extracted data): result = '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' ()", - "module": "test", - "msecs": 888.8049125671387, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.125858306884766, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 888.883113861084, - "msg": "Extracted data is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 53.20405960083008, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.82012939453125e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0005590915679931641, - "time_finished": "2021-02-28 18:29:55,888", - "time_start": "2021-02-28 18:29:55,888" - }, - "_hpUmwEaTEeq5fPlXIeQCXQ": { - "args": null, - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882597, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 25, - "message": "_hpUmwEaTEeq5fPlXIeQCXQ", - "module": "__init__", - "moduleLogger": [], - "msecs": 882.5969696044922, - "msg": "_hpUmwEaTEeq5fPlXIeQCXQ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 46.91791534423828, - "testcaseLogger": [ - { - "args": [ - "'00:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882799, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 59 is correct (Content '00:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 59", - "'00:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.8827, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 59): '00:59' ()", - "module": "test", - "msecs": 882.6999664306641, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.020912170410156, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 59", - "'00:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882751, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 59): result = '00:59' ()", - "module": "test", - "msecs": 882.7509880065918, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.07193374633789, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 882.7989101409912, - "msg": "Time representation for 59 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.119855880737305, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 - }, - { - "args": [ - "'01:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882979, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 60 is correct (Content '01:00' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 60", - "'01:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882883, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 60): '01:00' ()", - "module": "test", - "msecs": 882.8830718994141, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.204017639160156, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 60", - "'01:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,882", - "created": 1614533395.882931, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 60): result = '01:00' ()", - "module": "test", - "msecs": 882.9309940338135, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.25193977355957, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 882.9789161682129, - "msg": "Time representation for 60 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.299861907958984, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 - }, - { - "args": [ - "'59:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883155, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 3599 is correct (Content '59:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 3599", - "'59:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883063, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 3599): '59:59' ()", - "module": "test", - "msecs": 883.0630779266357, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.384023666381836, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 3599", - "'59:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883109, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 3599): result = '59:59' ()", - "module": "test", - "msecs": 883.1090927124023, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.43003845214844, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 883.155107498169, - "msg": "Time representation for 3599 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.47605323791504, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.88333, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 3600 is correct (Content '01:00:00' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 3600", - "'01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883238, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 3600): '01:00:00' ()", - "module": "test", - "msecs": 883.2380771636963, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.55902290344238, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 3600", - "'01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883284, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 3600): result = '01:00:00' ()", - "module": "test", - "msecs": 883.2840919494629, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.605037689208984, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 883.3301067352295, - "msg": "Time representation for 3600 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.651052474975586, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'23:59:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883506, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 86399 is correct (Content '23:59:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 86399", - "'23:59:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883413, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 86399): '23:59:59' ()", - "module": "test", - "msecs": 883.4130764007568, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.73402214050293, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 86399", - "'23:59:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.88346, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 86399): result = '23:59:59' ()", - "module": "test", - "msecs": 883.4600448608398, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.78099060058594, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 883.5060596466064, - "msg": "Time representation for 86399 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.82700538635254, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'1D'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883681, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 86400 is correct (Content '1D' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 86400", - "'1D'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883588, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 86400): '1D' ()", - "module": "test", - "msecs": 883.5880756378174, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.90902137756348, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 86400", - "'1D'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883635, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 86400): result = '1D' ()", - "module": "test", - "msecs": 883.6350440979004, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 47.955989837646484, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 883.681058883667, - "msg": "Time representation for 86400 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.002004623413086, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'1D 00:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883858, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 86459 is correct (Content '1D 00:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 86459", - "'1D 00:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883765, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 86459): '1D 00:59' ()", - "module": "test", - "msecs": 883.7649822235107, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.085927963256836, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 86459", - "'1D 00:59'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883812, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 86459): result = '1D 00:59' ()", - "module": "test", - "msecs": 883.8119506835938, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.132896423339844, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 883.8579654693604, - "msg": "Time representation for 86459 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.178911209106445, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - }, - { - "args": [ - "'1D 01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884034, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 90000 is correct (Content '1D 01:00:00' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 90000", - "'1D 01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883942, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 90000): '1D 01:00:00' ()", - "module": "test", - "msecs": 883.9418888092041, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.262834548950195, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 90000", - "'1D 01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:55,883", - "created": 1614533395.883988, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 90000): result = '1D 01:00:00' ()", - "module": "test", - "msecs": 883.9879035949707, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.3088493347168, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 884.0339183807373, - "msg": "Time representation for 90000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.3548641204834, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0014369487762451172, - "time_finished": "2021-02-28 18:29:55,884", - "time_start": "2021-02-28 18:29:55,882" - }, - "_iXxBIEaTEeq5fPlXIeQCXQ": { - "args": null, - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884176, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 26, - "message": "_iXxBIEaTEeq5fPlXIeQCXQ", - "module": "__init__", - "moduleLogger": [], - "msecs": 884.1760158538818, - "msg": "_iXxBIEaTEeq5fPlXIeQCXQ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.49696159362793, - "testcaseLogger": [ - { - "args": [ - "'87/5'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884652, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 17.4 is correct (Content '87/5' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 17.4", - "'87/5'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884526, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 17.4): '87/5' ()", - "module": "test", - "msecs": 884.5260143280029, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.84696006774902, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 17.4", - "'87/5'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884595, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 17.4): result = '87/5' ()", - "module": "test", - "msecs": 884.5949172973633, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.915863037109375, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 884.6518993377686, - "msg": "Fraction representation for 17.4 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 48.97284507751465, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.698204040527344e-05 - }, - { - "args": [ - "'1/4'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.88489, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 0.25 is correct (Content '1/4' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 0.25", - "'1/4'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884778, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 0.25): '1/4' ()", - "module": "test", - "msecs": 884.7780227661133, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.098968505859375, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 0.25", - "'1/4'", - "" - ], - "asctime": "2021-02-28 18:29:55,884", - "created": 1614533395.884837, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 0.25): result = '1/4' ()", - "module": "test", - "msecs": 884.8369121551514, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.15785789489746, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 884.890079498291, - "msg": "Fraction representation for 0.25 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.21102523803711, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.316734313964844e-05 - }, - { - "args": [ - "'1/10'", - "" - ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885188, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 0.1 is correct (Content '1/10' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 0.1", - "'1/10'", - "" - ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885077, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 0.1): '1/10' ()", - "module": "test", - "msecs": 885.0769996643066, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.397945404052734, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 0.1", - "'1/10'", - "" - ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885134, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 0.1): result = '1/10' ()", - "module": "test", - "msecs": 885.1339817047119, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.45492744445801, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 885.188102722168, - "msg": "Fraction representation for 0.1 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.50904846191406, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.412101745605469e-05 - }, - { - "args": [ - "'1/60'", - "" - ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885499, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 0.01666667 is correct (Content '1/60' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 0.01666667", - "'1/60'", - "" - ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885389, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 0.01666667): '1/60' ()", - "module": "test", - "msecs": 885.3890895843506, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.71003532409668, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 0.01666667", - "'1/60'", - "" - ], - "asctime": "2021-02-28 18:29:55,885", - "created": 1614533395.885445, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 0.01666667): result = '1/60' ()", - "module": "test", - "msecs": 885.4451179504395, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.76606369018555, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 885.4990005493164, - "msg": "Fraction representation for 0.01666667 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 49.8199462890625, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.3882598876953125e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0013229846954345703, - "time_finished": "2021-02-28 18:29:55,885", - "time_start": "2021-02-28 18:29:55,884" - }, - "_n3BdUCcREeqsHsnJQYCN8Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.90076, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 52, - "message": "_n3BdUCcREeqsHsnJQYCN8Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 900.7599353790283, - "msg": "_n3BdUCcREeqsHsnJQYCN8Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.08088111877441, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.90119, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 103, - "message": "Processing data with an insufficient start pattern.", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "':1'" - ], - "asctime": "2021-02-28 18:29:55,900", - "created": 1614533395.900912, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 100, - "message": "Sending ':1' to stp.", - "module": "test_stp", - "msecs": 900.9120464324951, - "msg": "Sending %s to stp.", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.23299217224121, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901031, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 901.0310173034668, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.35196304321289, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 49 - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901113, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 111, - "message": "STP: no start pattern (3a 31) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 901.1130332946777, - "msg": "%s no start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.43397903442383, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 901.1900424957275, - "msg": "Processing data with an insufficient start pattern.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.51098823547363, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.700920104980469e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901542, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing incorrect start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing incorrect start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901342, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing incorrect start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 901.3419151306152, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.66286087036133, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing incorrect start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901433, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing incorrect start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 901.432991027832, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.75393676757812, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 901.5419483184814, - "msg": "Return value list if processing incorrect start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 65.86289405822754, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00010895729064941406 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901882, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing incorrect start of frame is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing incorrect start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901719, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing incorrect start of frame): 0 ()", - "module": "test", - "msecs": 901.7190933227539, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.0400390625, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing incorrect start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:55,901", - "created": 1614533395.901807, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing incorrect start of frame): result = 0 ()", - "module": "test", - "msecs": 901.8070697784424, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.12801551818848, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 901.8819332122803, - "msg": "State after processing incorrect start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.20287895202637, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.486343383789062e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902306, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 113, - "message": "Processing data with an insufficient start pattern (two times sync).", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "'::'" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.90201, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 110, - "message": "Sending '::' to stp.", - "module": "test_stp", - "msecs": 902.0099639892578, - "msg": "Sending %s to stp.", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.3309097290039, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902135, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 902.134895324707, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.45584106445312, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902236, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 113, - "message": "STP: 2nd data sync (3a) received => keep state", - "module": "stp", - "msecs": 902.2359848022461, - "msg": "%s 2nd data sync (%02x) received => keep state", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.55693054199219, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 902.306079864502, - "msg": "Processing data with an insufficient start pattern (two times sync).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.62702560424805, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 7.009506225585938e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902666, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing data_sync twice is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing data_sync twice", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902471, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing data_sync twice): [ [ ] ] ()", - "module": "test", - "msecs": 902.4710655212402, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.79201126098633, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing data_sync twice", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902557, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing data_sync twice): result = [ [ ] ] ()", - "module": "test", - "msecs": 902.5568962097168, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.87784194946289, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 902.6660919189453, - "msg": "Return value list if processing data_sync twice is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 66.9870376586914, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.00010919570922851562 - }, - { - "args": [ - "1", - "" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902914, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing data_sync twice is correct (Content 1 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing data_sync twice", - "1", - "" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.902804, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing data_sync twice): 1 ()", - "module": "test", - "msecs": 902.803897857666, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.12484359741211, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing data_sync twice", - "1", - "" - ], - "asctime": "2021-02-28 18:29:55,902", - "created": 1614533395.90286, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing data_sync twice): result = 1 ()", - "module": "test", - "msecs": 902.8599262237549, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.18087196350098, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 902.9140472412109, - "msg": "State after processing data_sync twice is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 67.23499298095703, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.412101745605469e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.002154111862182617, - "time_finished": "2021-02-28 18:29:55,902", - "time_start": "2021-02-28 18:29:55,900" - }, - "_pavPUHsZEemK6PYOxF9rHw": { - "args": null, - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886396, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 30, - "message": "_pavPUHsZEemK6PYOxF9rHw", - "module": "__init__", - "moduleLogger": [], - "msecs": 886.3959312438965, - "msg": "_pavPUHsZEemK6PYOxF9rHw", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 50.71687698364258, + "relativeCreated": 74.9213695526123, + "stack_info": null, "testcaseLogger": [ { "args": [ 4 ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886486, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2240062, "exc_text": null, "filename": "test_hexlify.py", "funcName": "length_chk", @@ -8482,14 +1147,15 @@ "message": "Checking test pattern with length 4.", "module": "test_hexlify", "moduleLogger": [], - "msecs": 886.4860534667969, + "msecs": 224.0, "msg": "Checking test pattern with length %d.", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.80699920654297, - "thread": 139725527095104, + "relativeCreated": 75.05607604980469, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -8499,9 +1165,8 @@ "(4): de ad be ef", 0 ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886627, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2242324, "exc_text": null, "filename": "test_hexlify.py", "funcName": "length_chk", @@ -8511,1770 +1176,51 @@ "message": "\"(4)\" is in \"(4): de ad be ef\" at position 0", "module": "test_hexlify", "moduleLogger": [], - "msecs": 886.6269588470459, + "msecs": 224.0, "msg": "\"%s\" is in \"%s\" at position %d", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_hexlify.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 50.94790458679199, - "thread": 139725527095104, + "relativeCreated": 75.28233528137207, + "stack_info": null, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 } ], - "thread": 139725527095104, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.00023102760314941406, - "time_finished": "2021-02-28 18:29:55,886", - "time_start": "2021-02-28 18:29:55,886" + "time_consumption": 0.0003609657287597656, + "time_finished": "2025-03-24 14:49:33,224", + "time_start": "2025-03-24 14:49:33,223" }, - "_rhV88Hu9Eemborg4LxXa3A": { + "REQ-0003": { "args": null, - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886775, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.2250237, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 31, - "message": "_rhV88Hu9Eemborg4LxXa3A", + "lineno": 327, + "message": "REQ-0003", "module": "__init__", "moduleLogger": [], - "msecs": 886.775016784668, - "msg": "_rhV88Hu9Eemborg4LxXa3A", + "msecs": 225.0, + "msg": "REQ-0003", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 51.09596252441406, - "testcaseLogger": [ - { - "args": [ - 4 - ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.88686, - "exc_info": null, - "exc_text": null, - "filename": "test_linefeed_filter.py", - "funcName": "returnvalue_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 11, - "message": "Checking test pattern with length 4.", - "module": "test_linefeed_filter", - "moduleLogger": [], - "msecs": 886.8598937988281, - "msg": "Checking test pattern with length %d.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_linefeed_filter.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.18083953857422, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "'test\\\\r\\\\n123\\\\r\\\\n'", - "" - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887058, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Returnvalue of linefeed_filter is correct (Content 'test\\\\r\\\\n123\\\\r\\\\n' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Returnvalue of linefeed_filter", - "'test\\\\r\\\\n123\\\\r\\\\n'", - "" - ], - "asctime": "2021-02-28 18:29:55,886", - "created": 1614533395.886949, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Returnvalue of linefeed_filter): 'test\\\\r\\\\n123\\\\r\\\\n' ()", - "module": "test", - "msecs": 886.9490623474121, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.2700080871582, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of linefeed_filter", - "'test\\\\r\\\\n123\\\\r\\\\n'", - "" - ], - "asctime": "2021-02-28 18:29:55,887", - "created": 1614533395.887001, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Returnvalue of linefeed_filter): result = 'test\\\\r\\\\n123\\\\r\\\\n' ()", - "module": "test", - "msecs": 887.0010375976562, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.321983337402344, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 887.0580196380615, - "msg": "Returnvalue of linefeed_filter is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 51.37896537780762, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.698204040527344e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0002830028533935547, - "time_finished": "2021-02-28 18:29:55,887", - "time_start": "2021-02-28 18:29:55,886" - }, - "_wMotUCclEeqsHsnJQYCN8Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,907", - "created": 1614533395.90779, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 54, - "message": "_wMotUCclEeqsHsnJQYCN8Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 907.789945602417, - "msg": "_wMotUCclEeqsHsnJQYCN8Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.11089134216309, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908452, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_after_state_corruption", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 167, - "message": "Corrupting stp state and processing data.", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 907.9549312591553, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.27587699890137, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908024, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 908.0240726470947, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.34501838684082, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "255" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908086, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_after_state_corruption", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 163, - "message": "Setting state of stp to 255.", - "module": "test_stp", - "msecs": 908.0860614776611, - "msg": "Setting state of stp to %s.", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.40700721740723, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "': adding value (3a) back to data again and changing state -> STP_STATE_IDLE", - "module": "stp", - "msecs": 908.195972442627, - "msg": "%s unknown state (%s) => adding value (%02x) back to data again and changing state -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.51691818237305, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908257, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 908.257007598877, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.57795333862305, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908324, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 908.3240032196045, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.64494895935059, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908389, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 908.3890914916992, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.71003723144531, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 908.452033996582, - "msg": "Corrupting stp state and processing data.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.77297973632812, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.29425048828125e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908675, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing start of a frame after state had been corrupted is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing start of a frame after state had been corrupted", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908552, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing start of a frame after state had been corrupted): [ [ ] ] ()", - "module": "test", - "msecs": 908.5519313812256, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.87287712097168, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing start of a frame after state had been corrupted", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908607, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing start of a frame after state had been corrupted): result = [ [ ] ] ()", - "module": "test", - "msecs": 908.607006072998, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.92795181274414, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 908.674955368042, - "msg": "Return value list if processing start of a frame after state had been corrupted is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 72.99590110778809, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 6.794929504394531e-05 - }, - { - "args": [ - "3", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908878, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing start of a frame after state had been corrupted is correct (Content 3 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing start of a frame after state had been corrupted", - "3", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908766, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing start of a frame after state had been corrupted): 3 ()", - "module": "test", - "msecs": 908.7660312652588, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 73.08697700500488, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing start of a frame after state had been corrupted", - "3", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908821, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing start of a frame after state had been corrupted): result = 3 ()", - "module": "test", - "msecs": 908.8211059570312, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 73.14205169677734, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 908.8780879974365, - "msg": "State after processing start of a frame after state had been corrupted is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 73.19903373718262, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.698204040527344e-05 - }, - { - "args": [ - "2", - "" - ], - "asctime": "2021-02-28 18:29:55,909", - "created": 1614533395.90907, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer size after corrupting stp state is correct (Content 2 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer size after corrupting stp state", - "2", - "" - ], - "asctime": "2021-02-28 18:29:55,908", - "created": 1614533395.908966, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer size after corrupting stp state): 2 ()", - "module": "test", - "msecs": 908.966064453125, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 73.2870101928711, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer size after corrupting stp state", - "2", - "" - ], - "asctime": "2021-02-28 18:29:55,909", - "created": 1614533395.909017, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer size after corrupting stp state): result = 2 ()", - "module": "test", - "msecs": 909.0170860290527, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 73.33803176879883, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 909.0700149536133, - "msg": "Buffer size after corrupting stp state is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 73.39096069335938, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 5.2928924560546875e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.001280069351196289, - "time_finished": "2021-02-28 18:29:55,909", - "time_start": "2021-02-28 18:29:55,907" - }, - "_xOCgkI9yEemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897543, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 50, - "message": "_xOCgkI9yEemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 897.5429534912109, - "msg": "_xOCgkI9yEemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.86389923095703, - "testcaseLogger": [ - { - "args": [ - "'::>'" - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898311, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_frame_pattern_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 39, - "message": "Processing testframe: \"'::>'\"", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897674, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 897.6740837097168, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 61.99502944946289, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897744, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 897.7439403533936, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.06488609313965, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897839, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 897.8390693664551, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.16001510620117, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 61 - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897892, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 132, - "message": "STP: store sync pattern (3a 3d) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 897.8919982910156, - "msg": "%s store sync pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.21294403076172, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,897", - "created": 1614533395.897954, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 897.953987121582, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.274932861328125, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 61 - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898009, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 132, - "message": "STP: store sync pattern (3a 3d) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 898.0090618133545, - "msg": "%s store sync pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.330007553100586, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898065, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 898.0650901794434, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.38603591918945, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 62 - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898113, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 898.1130123138428, - "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.43395805358887, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(21): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 3a 3c 73 74 70 3a 3e" - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898226, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "INFO", - "levelno": 20, - "lineno": 148, - "message": "STP: message identified - (21): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 3a 3c 73 74 70 3a 3e", - "module": "stp", - "msecs": 898.2260227203369, - "msg": "%s message identified - %s", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.54696846008301, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 898.3108997344971, - "msg": "Processing testframe: \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.631845474243164, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 8.487701416015625e-05 - }, - { - "args": [ - "['testframe for :']", - "" - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898961, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Processed STP-Frame is correct (Content ['testframe for :'] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Processed STP-Frame", - "[ 'testframe for :' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898623, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Processed STP-Frame): [ 'testframe for :' ] ()", - "module": "test", - "msecs": 898.622989654541, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 62.94393539428711, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "Processed STP-Frame", - "[ 'testframe for :' ]", - "" - ], - "asctime": "2021-02-28 18:29:55,898", - "created": 1614533395.898802, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Processed STP-Frame): result = [ 'testframe for :' ] ()", - "module": "test", - "msecs": 898.8020420074463, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 63.12298774719238, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 898.961067199707, - "msg": "Processed STP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 63.282012939453125, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0001590251922607422 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0014181137084960938, - "time_finished": "2021-02-28 18:29:55,898", - "time_start": "2021-02-28 18:29:55,897" - }, - "_xiZqMI92Eemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894213, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 47, - "message": "_xiZqMI92Eemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 894.2129611968994, - "msg": "_xiZqMI92Eemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.53390693664551, - "testcaseLogger": [ - { - "args": [ - "'testframe for :'" - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894326, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "build_frame_pattern_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 23, - "message": "Creating testframe including start and end pattern for \"'testframe for :'\"", - "module": "test_stp", - "moduleLogger": [], - "msecs": 894.3259716033936, - "msg": "Creating testframe including start and end pattern for \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.64691734313965, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "'::>'", - "" - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894515, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "STP-Frame is correct (Content '::>' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "STP-Frame", - "'::>'", - "" - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894415, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (STP-Frame): '::>' ()", - "module": "test", - "msecs": 894.4149017333984, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.73584747314453, - "thread": 139725527095104, - "threadName": "MainThread" - }, - { - "args": [ - "STP-Frame", - "'::>'", - "" - ], - "asctime": "2021-02-28 18:29:55,894", - "created": 1614533395.894466, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (STP-Frame): result = '::>' ()", - "module": "test", - "msecs": 894.4659233093262, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.786869049072266, - "thread": 139725527095104, - "threadName": "MainThread" - } - ], - "msecs": 894.5150375366211, - "msg": "STP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57277, - "processName": "MainProcess", - "relativeCreated": 58.83598327636719, - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 4.9114227294921875e-05 - } - ], - "thread": 139725527095104, - "threadName": "MainThread", - "time_consumption": 0.0003020763397216797, - "time_finished": "2021-02-28 18:29:55,894", - "time_start": "2021-02-28 18:29:55,894" - } - }, - "testrun_id": "p2", - "time_consumption": 0.025866270065307617, - "uid_list_sorted": [ - "_dB5IoEaTEeq5fPlXIeQCXQ", - "_hpUmwEaTEeq5fPlXIeQCXQ", - "_iXxBIEaTEeq5fPlXIeQCXQ", - "_XzMFcHYZEem_kd-7nxt1sg", - "_pavPUHsZEemK6PYOxF9rHw", - "_rhV88Hu9Eemborg4LxXa3A", - "_9ahP4Hu7Eemborg4LxXa3A", - "_fp-i0Hu8Eemborg4LxXa3A", - "_Y_h3gH5CEemxr4bbKXhxkg", - "_G40UUH5DEemxr4bbKXhxkg", - "_QjJiIIwZEem5qYOdmXl77A", - "_ZhyRAI9OEemAMMFgxXT6lA", - "_-yWo4I9sEemg3cv-3xZ25Q", - "_xiZqMI92Eemg3cv-3xZ25Q", - "_Bd9TgI9tEemg3cv-3xZ25Q", - "_NpOWgI9tEemg3cv-3xZ25Q", - "_xOCgkI9yEemg3cv-3xZ25Q", - "_5_z4MI9yEemg3cv-3xZ25Q", - "_n3BdUCcREeqsHsnJQYCN8Q", - "_dpJzwCcUEeqsHsnJQYCN8Q", - "_wMotUCclEeqsHsnJQYCN8Q" - ] - }, - { - "heading_dict": { - "_-yWo4I9sEemg3cv-3xZ25Q": "Frame creation", - "_0CnJgHu0Eemborg4LxXa3A": "Stream Compression", - "_2x4icH5BEemxr4bbKXhxkg": "Serial Transfer Protocol (STP)", - "_5_z4MI9yEemg3cv-3xZ25Q": "Frame processing - Data before the start pattern", - "_9ahP4Hu7Eemborg4LxXa3A": "Compress", - "_Bd9TgI9tEemg3cv-3xZ25Q": "Frame processing", - "_G40UUH5DEemxr4bbKXhxkg": "Frame creation error", - "_MR7eOHYYEem_kd-7nxt1sg": "Stream to Human readable String", - "_NpOWgI9tEemg3cv-3xZ25Q": "Frame processing - Input data type error", - "_QjJiIIwZEem5qYOdmXl77A": "Frame processing", - "_TzZlUI9jEemg3cv-3xZ25Q": "Stream Definition", - "_ViQHQEaTEeq5fPlXIeQCXQ": "Human readable value representations", - "_XzMFcHYZEem_kd-7nxt1sg": "Hexadecimal Values", - "_Y_h3gH5CEemxr4bbKXhxkg": "Frame creation", - "_ZhyRAI9OEemAMMFgxXT6lA": "Frame processing - Input data type error", - "_dB5IoEaTEeq5fPlXIeQCXQ": "Physical representation", - "_dpJzwCcUEeqsHsnJQYCN8Q": "Frame processing - Incorrect end pattern", - "_fp-i0Hu8Eemborg4LxXa3A": "Extract", - "_hpUmwEaTEeq5fPlXIeQCXQ": "Time representation", - "_iXxBIEaTEeq5fPlXIeQCXQ": "Fraction representation", - "_n3BdUCcREeqsHsnJQYCN8Q": "Frame processing - Incorrect start patterns", - "_pavPUHsZEemK6PYOxF9rHw": "Number of Bytes", - "_rhV88Hu9Eemborg4LxXa3A": "CRLF-Filter", - "_wMotUCclEeqsHsnJQYCN8Q": "Frame processing - After state corruption", - "_xOCgkI9yEemg3cv-3xZ25Q": "Frame processing - Start pattern and end pattern inside a message", - "_xR3PcH5BEemxr4bbKXhxkg": "Carriagereturn Seperation Protocol (CSP)", - "_xiZqMI92Eemg3cv-3xZ25Q": "Frame creation - Start pattern and end pattern inside a message" - }, - "interpreter": "python 3.8.5 (final)", - "name": "Default Testsession name", - "number_of_failed_tests": 0, - "number_of_possibly_failed_tests": 0, - "number_of_successfull_tests": 21, - "number_of_tests": 21, - "testcase_execution_level": 90, - "testcase_names": { - "0": "Single Test", - "10": "Smoke Test (Minumum subset)", - "50": "Short Test (Subset)", - "90": "Full Test (all defined tests)" - }, - "testcases": { - "_-yWo4I9sEemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4014754, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 46, - "message": "_-yWo4I9sEemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 401.4754295349121, - "msg": "_-yWo4I9sEemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 94.60687637329102, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "b'testframe for stp'" - ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4016101, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "build_frame_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 17, - "message": "Creating testframe for \"b'testframe for stp'\"", - "module": "test_stp", - "moduleLogger": [], - "msecs": 401.6101360321045, - "msg": "Creating testframe for \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 94.7415828704834, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "b':'", - "" - ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4018085, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "STP-Frame is correct (Content b':' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "STP-Frame", - "b':'", - "" - ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4017105, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (STP-Frame): b':' ()", - "module": "test", - "msecs": 401.71051025390625, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 94.84195709228516, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP-Frame", - "b':'", - "" - ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4017613, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (STP-Frame): result = b':' ()", - "module": "test", - "msecs": 401.7612934112549, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 94.89274024963379, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 401.808500289917, - "msg": "STP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 94.9399471282959, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.7206878662109375e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0003330707550048828, - "time_finished": "2021-02-28 18:29:56,401", - "time_start": "2021-02-28 18:29:56,401" - }, - "_5_z4MI9yEemg3cv-3xZ25Q": { - "args": null, - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4080577, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 51, - "message": "_5_z4MI9yEemg3cv-3xZ25Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 408.05768966674805, - "msg": "_5_z4MI9yEemg3cv-3xZ25Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.18913650512695, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "b'_:'" - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4086173, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_frame_data_before_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 46, - "message": "Processing testframe: \"b'_:'\"", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "STP:", - 95 - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.408191, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 103, - "message": "STP: no data sync (5f) received => ignoring byte", - "module": "stp", - "msecs": 408.1909656524658, - "msg": "%s no data sync (%02x) received => ignoring byte", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.32241249084473, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4082541, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 408.25414657592773, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.38559341430664, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4083135, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 408.313512802124, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.44495964050293, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4084227, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 408.42270851135254, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.55415534973145, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 62 - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.408479, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 408.4789752960205, - "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.61042213439941, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70" - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4085548, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "INFO", - "levelno": 20, - "lineno": 148, - "message": "STP: message identified - (17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70", - "module": "stp", - "msecs": 408.5547924041748, - "msg": "%s message identified - %s", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.68623924255371, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 408.6172580718994, - "msg": "Processing testframe: \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.74870491027832, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.246566772460938e-05 - }, - { - "args": [ - "[b'testframe for stp']", - "" - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4088917, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Processed STP-Frame is correct (Content [b'testframe for stp'] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Processed STP-Frame", - "[ b'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4087496, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Processed STP-Frame): [ b'testframe for stp' ] ()", - "module": "test", - "msecs": 408.7495803833008, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.88102722167969, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Processed STP-Frame", - "[ b'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:56,408", - "created": 1614533396.4088178, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Processed STP-Frame): result = [ b'testframe for stp' ] ()", - "module": "test", - "msecs": 408.8177680969238, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 101.94921493530273, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 408.8916778564453, - "msg": "Processed STP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.02312469482422, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 7.390975952148438e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0008339881896972656, - "time_finished": "2021-02-28 18:29:56,408", - "time_start": "2021-02-28 18:29:56,408" - }, - "_9ahP4Hu7Eemborg4LxXa3A": { - "args": null, - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3968828, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 34, - "message": "_9ahP4Hu7Eemborg4LxXa3A", - "module": "__init__", - "moduleLogger": [], - "msecs": 396.8827724456787, - "msg": "_9ahP4Hu7Eemborg4LxXa3A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 90.01421928405762, + "relativeCreated": 76.07364654541016, "stack_info": null, "testcaseLogger": [ { "args": [], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3969572, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.2251716, "exc_text": null, "filename": "test_gzip.py", "funcName": "compress_extract_check", @@ -10284,15 +1230,15 @@ "message": "Compressing Streams result in differnt streams with the same input stream. Therefore the test will compare the decompressed data.", "module": "test_gzip", "moduleLogger": [], - "msecs": 396.9571590423584, + "msecs": 225.0, "msg": "Compressing Streams result in differnt streams with the same input stream. Therefore the test will compare the decompressed data.", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_gzip.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.0886058807373, + "relativeCreated": 76.22146606445312, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -10300,9 +1246,8 @@ "args": [ "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff" ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.3973234, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.2255354, "exc_text": null, "filename": "test_gzip.py", "funcName": "compress_extract_check", @@ -10315,113 +1260,109 @@ { "args": [ 0.8666666666666667, - 0.0002002716064453125 + 0.00015306472778320312 ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.3972313, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.2254288, "exc_text": null, "filename": "__init__.py", "funcName": "gzip_compress", "levelname": "DEBUG", "levelno": 10, - "lineno": 148, + "lineno": 136, "message": "GZIP: Finished to compress a string (compression_rate=0.867, consumed_time=0.0s).", "module": "__init__", - "msecs": 397.2313404083252, + "msecs": 225.0, "msg": "GZIP: Finished to compress a string (compression_rate=%.3f, consumed_time=%.1fs).", - "name": "root.stringtools", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/__init__.py", - "process": 57280, + "name": "stringtools", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.3627872467041, + "relativeCreated": 76.47871971130371, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 397.3233699798584, + "msecs": 225.0, "msg": "Compressing stream: %s ", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_gzip.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.4548168182373, + "relativeCreated": 76.58529281616211, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 9.202957153320312e-05 + "time_consumption": 0.00010657310485839844 }, { "args": [ - "(26): 1f 8b 08 00 14 d3 3b 60 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00" + "(26): 1f 8b 08 00 ed 62 e1 67 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00" ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.3976007, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.2258441, "exc_text": null, "filename": "test_gzip.py", "funcName": "compress_extract_check", "levelname": "DEBUG", "levelno": 10, "lineno": 16, - "message": "Extracting stream: (26): 1f 8b 08 00 14 d3 3b 60 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00", + "message": "Extracting stream: (26): 1f 8b 08 00 ed 62 e1 67 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00", "module": "test_gzip", "moduleLogger": [ { "args": [ 0.8666666666666667, - 0.00011038780212402344 + 7.534027099609375e-05 ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.397515, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.225742, "exc_text": null, "filename": "__init__.py", "funcName": "gzip_extract", "levelname": "DEBUG", "levelno": 10, - "lineno": 181, + "lineno": 160, "message": "GZIP: Finished to extract a string (compression_rate=0.867, consumed_time=0.0s).", "module": "__init__", - "msecs": 397.51505851745605, + "msecs": 225.0, "msg": "GZIP: Finished to extract a string (compression_rate=%.3f, consumed_time=%.1fs).", - "name": "root.stringtools", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/__init__.py", - "process": 57280, + "name": "stringtools", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.64650535583496, + "relativeCreated": 76.79200172424316, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 397.6006507873535, + "msecs": 225.0, "msg": "Extracting stream: %s", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_gzip.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.73209762573242, + "relativeCreated": 76.89404487609863, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 8.559226989746094e-05 + "time_consumption": 0.00010204315185546875 }, { "args": [ "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff", "" ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.3978965, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.226101, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Extracted data is correct (Content (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff and Type is ).", "module": "test", "moduleLogger": [ @@ -10431,9 +1372,8 @@ "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff", "" ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.3977265, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,225", + "created": 1742824173.2259667, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -10442,463 +1382,540 @@ "lineno": 22, "message": "Result (Extracted data): (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ()", "module": "test", - "msecs": 397.72653579711914, + "msecs": 225.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.85798263549805, + "relativeCreated": 77.01659202575684, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Extracted data", - "(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff", + "=", + "b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff'", "" ], - "asctime": "2021-02-28 18:29:56,397", - "created": 1614533396.3978148, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.2260246, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Extracted data): result = (30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ()", + "message": "Expectation (Extracted data): result = b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff\\xff' ()", "module": "test", - "msecs": 397.8147506713867, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 226.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 90.94619750976562, + "relativeCreated": 77.07452774047852, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 397.89652824401855, + "msecs": 226.0, "msg": "Extracted data is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 91.02797508239746, + "relativeCreated": 77.15082168579102, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 8.177757263183594e-05 + "time_consumption": 7.62939453125e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.0010137557983398438, - "time_finished": "2021-02-28 18:29:56,397", - "time_start": "2021-02-28 18:29:56,396" + "time_consumption": 0.0010771751403808594, + "time_finished": "2025-03-24 14:49:33,226", + "time_start": "2025-03-24 14:49:33,225" }, - "_Bd9TgI9tEemg3cv-3xZ25Q": { + "REQ-0004": { "args": null, - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4023726, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.2262936, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 48, - "message": "_Bd9TgI9tEemg3cv-3xZ25Q", + "lineno": 327, + "message": "REQ-0004", "module": "__init__", "moduleLogger": [], - "msecs": 402.3725986480713, - "msg": "_Bd9TgI9tEemg3cv-3xZ25Q", + "msecs": 226.0, + "msg": "REQ-0004", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.5040454864502, + "relativeCreated": 77.34346389770508, "stack_info": null, "testcaseLogger": [ { "args": [ - "b':'" + "(26): 1f 8b 08 00 34 e0 04 5d 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4028273, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.2265697, "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_frame_chk", + "filename": "test_gzip.py", + "funcName": "gzip_extract_chk", "levelname": "DEBUG", "levelno": 10, - "lineno": 31, - "message": "Processing testframe: \"b':'\"", - "module": "test_stp", + "lineno": 23, + "message": "Extracting stream: (26): 1f 8b 08 00 34 e0 04 5d 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00", + "module": "test_gzip", "moduleLogger": [ { "args": [ - "STP:", - 58 + 0.8666666666666667, + 4.553794860839844e-05 ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4024792, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.226481, "exc_text": null, - "filename": "stp.py", - "funcName": "process", + "filename": "__init__.py", + "funcName": "gzip_extract", "levelname": "DEBUG", "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 402.4791717529297, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "lineno": 160, + "message": "GZIP: Finished to extract a string (compression_rate=0.867, consumed_time=0.0s).", + "module": "__init__", + "msecs": 226.0, + "msg": "GZIP: Finished to extract a string (compression_rate=%.3f, consumed_time=%.1fs).", + "name": "stringtools", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.6106185913086, + "relativeCreated": 77.5308609008789, "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4025362, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 402.53615379333496, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 95.66760063171387, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4026477, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 402.6477336883545, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 95.7791805267334, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 62 - ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4026997, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 402.69970893859863, - "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 95.83115577697754, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70" - ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4027781, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "INFO", - "levelno": 20, - "lineno": 148, - "message": "STP: message identified - (17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70", - "module": "stp", - "msecs": 402.77814865112305, - "msg": "%s message identified - %s", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 95.90959548950195, - "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 402.82726287841797, - "msg": "Processing testframe: \"%s\"", + "msecs": 226.0, + "msg": "Extracting stream: %s", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_gzip.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.95870971679688, + "relativeCreated": 77.61955261230469, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.9114227294921875e-05 + "time_consumption": 8.869171142578125e-05 }, { "args": [ - "[]", - "" + "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", + "" ], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4030297, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.2268646, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "First processed STP snippet is correct (Content [] and Type is ).", + "lineno": 184, + "message": "Extracted data is correct (Content '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - "First processed STP snippet", - "[ ]", - "" + "Extracted data", + "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", + "" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.402927, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.2267241, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (First processed STP snippet): [ ] ()", + "message": "Result (Extracted data): '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' ()", "module": "test", - "msecs": 402.9269218444824, + "msecs": 226.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 96.05836868286133, + "relativeCreated": 77.7740478515625, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ - "First processed STP snippet", - "[ ]", - "" + "Extracted data", + "=", + "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", + "" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4029784, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,226", + "created": 1742824173.226797, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (First processed STP snippet): result = [ ] ()", + "message": "Expectation (Extracted data): result = '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' ()", "module": "test", - "msecs": 402.97842025756836, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 226.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 96.10986709594727, + "relativeCreated": 77.84700393676758, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 403.0296802520752, - "msg": "First processed STP snippet is correct (Content %s and Type is %s).", + "msecs": 226.0, + "msg": "Extracted data is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 96.1611270904541, + "relativeCreated": 77.91447639465332, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 5.125999450683594e-05 - }, - { - "args": [ - "[b'testframe for stp']", - "" - ], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4032152, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Final processed STP snippet is correct (Content [b'testframe for stp'] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Final processed STP snippet", - "[ b'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4031115, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Final processed STP snippet): [ b'testframe for stp' ] ()", - "module": "test", - "msecs": 403.11145782470703, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 96.24290466308594, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Final processed STP snippet", - "[ b'testframe for stp' ]", - "" - ], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4031596, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Final processed STP snippet): result = [ b'testframe for stp' ] ()", - "module": "test", - "msecs": 403.15961837768555, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 96.29106521606445, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 403.2151699066162, - "msg": "Final processed STP snippet is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 96.34661674499512, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 5.555152893066406e-05 + "time_consumption": 6.747245788574219e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.0008425712585449219, - "time_finished": "2021-02-28 18:29:56,403", - "time_start": "2021-02-28 18:29:56,402" + "time_consumption": 0.0005710124969482422, + "time_finished": "2025-03-24 14:49:33,226", + "time_start": "2025-03-24 14:49:33,226" }, - "_G40UUH5DEemxr4bbKXhxkg": { + "REQ-0005": { "args": null, - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3990219, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2244637, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 40, - "message": "_G40UUH5DEemxr4bbKXhxkg", + "lineno": 327, + "message": "REQ-0005", "module": "__init__", "moduleLogger": [], - "msecs": 399.02186393737793, - "msg": "_G40UUH5DEemxr4bbKXhxkg", + "msecs": 224.0, + "msg": "REQ-0005", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.15331077575684, + "relativeCreated": 75.51360130310059, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + 4 + ], + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2246037, + "exc_text": null, + "filename": "test_linefeed_filter.py", + "funcName": "returnvalue_chk", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 11, + "message": "Checking test pattern with length 4.", + "module": "test_linefeed_filter", + "moduleLogger": [], + "msecs": 224.0, + "msg": "Checking test pattern with length %d.", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_linefeed_filter.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 75.6535530090332, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0 + }, + { + "args": [ + "b'test\\\\r\\\\n123\\\\r\\\\n'", + "" + ], + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2248588, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Returnvalue of linefeed_filter is correct (Content b'test\\\\r\\\\n123\\\\r\\\\n' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Returnvalue of linefeed_filter", + "b'test\\\\r\\\\n123\\\\r\\\\n'", + "" + ], + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2247324, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of linefeed_filter): b'test\\\\r\\\\n123\\\\r\\\\n' ()", + "module": "test", + "msecs": 224.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 75.78229904174805, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of linefeed_filter", + "=", + "b'test\\\\r\\\\n123\\\\r\\\\n'", + "" + ], + "asctime": "2025-03-24 14:49:33,224", + "created": 1742824173.2247944, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of linefeed_filter): result = b'test\\\\r\\\\n123\\\\r\\\\n' ()", + "module": "test", + "msecs": 224.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 75.84428787231445, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 224.0, + "msg": "Returnvalue of linefeed_filter is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 75.90866088867188, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.437301635742188e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.00039505958557128906, + "time_finished": "2025-03-24 14:49:33,224", + "time_start": "2025-03-24 14:49:33,224" + }, + "REQ-0006": { + "args": null, + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2270627, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0006", + "module": "__init__", + "moduleLogger": [], + "msecs": 227.0, + "msg": "REQ-0006", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 78.11260223388672, "stack_info": null, "testcaseLogger": [ { "args": [ "b':testframe: for csp'" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.399093, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2271898, + "exc_text": null, + "filename": "test_csp.py", + "funcName": "build_frame_chk", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 17, + "message": "Creating testframe for \"b':testframe: for csp'\"", + "module": "test_csp", + "moduleLogger": [], + "msecs": 227.0, + "msg": "Creating testframe for \"%s\"", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_csp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 78.23967933654785, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0 + }, + { + "args": [ + "b':testframe: for csp\\n'", + "" + ], + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2274587, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "CSP-Frame is correct (Content b':testframe: for csp\\n' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "CSP-Frame", + "b':testframe: for csp\\n'", + "" + ], + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2273152, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (CSP-Frame): b':testframe: for csp\\n' ()", + "module": "test", + "msecs": 227.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 78.36508750915527, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "CSP-Frame", + "=", + "b':testframe: for csp\\n'", + "" + ], + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2273734, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (CSP-Frame): result = b':testframe: for csp\\n' ()", + "module": "test", + "msecs": 227.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 78.42326164245605, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 227.0, + "msg": "CSP-Frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 78.50861549377441, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 8.535385131835938e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0003960132598876953, + "time_finished": "2025-03-24 14:49:33,227", + "time_start": "2025-03-24 14:49:33,227" + }, + "REQ-0007": { + "args": null, + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.227686, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0007", + "module": "__init__", + "moduleLogger": [], + "msecs": 227.0, + "msg": "REQ-0007", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 78.7358283996582, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "b':testframe: for csp'" + ], + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2277887, "exc_text": null, "filename": "test_csp.py", "funcName": "build_frame_chk_error", @@ -10908,15 +1925,15 @@ "message": "Creating testframe for \"b':testframe: for csp'\"", "module": "test_csp", "moduleLogger": [], - "msecs": 399.0929126739502, + "msecs": 227.0, "msg": "Creating testframe for \"%s\"", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.2243595123291, + "relativeCreated": 78.83858680725098, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -10925,15 +1942,14 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3992624, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.228029, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "CSP-Frame is correct (Content and Type is ).", "module": "test", "moduleLogger": [ @@ -10943,9 +1959,8 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3991706, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2279088, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -10954,719 +1969,93 @@ "lineno": 22, "message": "Result (CSP-Frame): ()", "module": "test", - "msecs": 399.1706371307373, + "msecs": 227.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.30208396911621, + "relativeCreated": 78.95874977111816, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "CSP-Frame", + "=", "", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3992176, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,227", + "created": 1742824173.2279732, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (CSP-Frame): result = ()", "module": "test", - "msecs": 399.2176055908203, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 227.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.34905242919922, + "relativeCreated": 79.02312278747559, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 399.2624282836914, + "msecs": 228.0, "msg": "CSP-Frame is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.39387512207031, + "relativeCreated": 79.07891273498535, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.482269287109375e-05 + "time_consumption": 5.5789947509765625e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.00024056434631347656, - "time_finished": "2021-02-28 18:29:56,399", - "time_start": "2021-02-28 18:29:56,399" + "time_consumption": 0.00034308433532714844, + "time_finished": "2025-03-24 14:49:33,228", + "time_start": "2025-03-24 14:49:33,227" }, - "_NpOWgI9tEemg3cv-3xZ25Q": { + "REQ-0008": { "args": null, - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4033804, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.2282038, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 49, - "message": "_NpOWgI9tEemg3cv-3xZ25Q", + "lineno": 327, + "message": "REQ-0008", "module": "__init__", "moduleLogger": [], - "msecs": 403.3803939819336, - "msg": "_NpOWgI9tEemg3cv-3xZ25Q", + "msecs": 228.0, + "msg": "REQ-0008", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 96.5118408203125, - "stack_info": null, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4035642, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 53, - "message": "Processing wrong data (list)", - "module": "test_stp", - "moduleLogger": [], - "msecs": 403.5642147064209, - "msg": "Processing wrong data (list)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 96.6956615447998, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:56,404", - "created": 1614533396.4040153, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.4037783, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 403.7783145904541, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 96.90976142883301, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:56,403", - "created": 1614533396.403917, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 403.9170742034912, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 97.04852104187012, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 404.01530265808105, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 97.14674949645996, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 9.822845458984375e-05 - }, - { - "args": [ - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,404", - "created": 1614533396.4049287, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content b'' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,404", - "created": 1614533396.40468, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): b'' ()", - "module": "test", - "msecs": 404.6800136566162, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 97.81146049499512, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,404", - "created": 1614533396.404867, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = b'' ()", - "module": "test", - "msecs": 404.86693382263184, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 97.99838066101074, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 404.92868423461914, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.06013107299805, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.175041198730469e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4050279, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 63, - "message": "Processing wrong data (int)", - "module": "test_stp", - "moduleLogger": [], - "msecs": 405.0278663635254, - "msg": "Processing wrong data (int)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.1593132019043, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4052818, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4051738, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 405.17377853393555, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.30522537231445, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4052339, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 405.23386001586914, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.36530685424805, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 405.28178215026855, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.41322898864746, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 - }, - { - "args": [ - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.405468, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content b'' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4053648, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): b'' ()", - "module": "test", - "msecs": 405.3647518157959, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.4961986541748, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.405417, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = b'' ()", - "module": "test", - "msecs": 405.41696548461914, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.54841232299805, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 405.4679870605469, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.59943389892578, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 5.1021575927734375e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4055474, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_wrong_data", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 74, - "message": "Processing wrong data (str)", - "module": "test_stp", - "moduleLogger": [], - "msecs": 405.5473804473877, - "msg": "Processing wrong data (str)", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.6788272857666, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4058607, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Wrong data exception is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4057064, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Wrong data exception): ()", - "module": "test", - "msecs": 405.70640563964844, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.83785247802734, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Wrong data exception", - "", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.405789, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Wrong data exception): result = ()", - "module": "test", - "msecs": 405.7888984680176, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.92034530639648, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 405.86066246032715, - "msg": "Wrong data exception is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 98.99210929870605, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 7.176399230957031e-05 - }, - { - "args": [ - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.406093, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer still empty is correct (Content b'' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer still empty", - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,405", - "created": 1614533396.4059615, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer still empty): b'' ()", - "module": "test", - "msecs": 405.9615135192871, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 99.09296035766602, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer still empty", - "b''", - "" - ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.4060276, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer still empty): result = b'' ()", - "module": "test", - "msecs": 406.02755546569824, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 99.15900230407715, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 406.09288215637207, - "msg": "Buffer still empty is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 99.22432899475098, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.532669067382812e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0027124881744384766, - "time_finished": "2021-02-28 18:29:56,406", - "time_start": "2021-02-28 18:29:56,403" - }, - "_QjJiIIwZEem5qYOdmXl77A": { - "args": null, - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3993828, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 41, - "message": "_QjJiIIwZEem5qYOdmXl77A", - "module": "__init__", - "moduleLogger": [], - "msecs": 399.3828296661377, - "msg": "_QjJiIIwZEem5qYOdmXl77A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 92.5142765045166, + "relativeCreated": 79.2536735534668, "stack_info": null, "testcaseLogger": [ { "args": [ "b':testframe: for csp\\n'" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3996096, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.2284918, "exc_text": null, "filename": "test_csp.py", "funcName": "process_frame_chk", @@ -11681,26 +2070,25 @@ "CSP:", "(10): 3a 74 65 73 74 66 72 61 6d 65" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.399484, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.228357, "exc_text": null, "filename": "csp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 68, + "lineno": 64, "message": "CSP: Leaving data in buffer (to be processed next time): (10): 3a 74 65 73 74 66 72 61 6d 65", "module": "csp", - "msecs": 399.48391914367676, + "msecs": 228.0, "msg": "%s Leaving data in buffer (to be processed next time): %s", - "name": "root.stringtools.csp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/csp.py", - "process": 57280, + "name": "stringtools.csp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.61536598205566, + "relativeCreated": 79.4069766998291, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -11708,55 +2096,53 @@ "CSP:", "(19): 3a 74 65 73 74 66 72 61 6d 65 3a 20 66 6f 72 20 63 73 70" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3995643, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.2284403, "exc_text": null, "filename": "csp.py", "funcName": "process", "levelname": "INFO", "levelno": 20, - "lineno": 70, + "lineno": 66, "message": "CSP: message identified - (19): 3a 74 65 73 74 66 72 61 6d 65 3a 20 66 6f 72 20 63 73 70", "module": "csp", - "msecs": 399.564266204834, + "msecs": 228.0, "msg": "%s message identified - %s", - "name": "root.stringtools.csp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/csp.py", - "process": 57280, + "name": "stringtools.csp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.69571304321289, + "relativeCreated": 79.49018478393555, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 399.6095657348633, + "msecs": 228.0, "msg": "Processing testframe: \"%s\" in two snippets", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.74101257324219, + "relativeCreated": 79.54168319702148, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.5299530029296875e-05 + "time_consumption": 5.14984130859375e-05 }, { "args": [ "[]", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.399795, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.228706, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "First processed CSP-Snippet is correct (Content [] and Type is ).", "module": "test", "moduleLogger": [ @@ -11766,9 +2152,8 @@ "[ ]", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3996933, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.228584, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -11777,72 +2162,71 @@ "lineno": 22, "message": "Result (First processed CSP-Snippet): [ ] ()", "module": "test", - "msecs": 399.69325065612793, + "msecs": 228.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.82469749450684, + "relativeCreated": 79.63395118713379, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "First processed CSP-Snippet", + "=", "[ ]", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.399743, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.228638, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (First processed CSP-Snippet): result = [ ] ()", "module": "test", - "msecs": 399.74308013916016, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 228.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.87452697753906, + "relativeCreated": 79.68783378601074, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 399.7950553894043, + "msecs": 228.0, "msg": "First processed CSP-Snippet is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 92.9265022277832, + "relativeCreated": 79.75578308105469, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 5.1975250244140625e-05 + "time_consumption": 6.794929504394531e-05 }, { "args": [ "[b':testframe: for csp']", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.399979, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.228922, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Final processed CSP-Frame is correct (Content [b':testframe: for csp'] and Type is ).", "module": "test", "moduleLogger": [ @@ -11852,9 +2236,8 @@ "[ b':testframe: for csp' ]", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.3998728, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.2287974, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -11863,483 +2246,91 @@ "lineno": 22, "message": "Result (Final processed CSP-Frame): [ b':testframe: for csp' ] ()", "module": "test", - "msecs": 399.8727798461914, + "msecs": 228.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.00422668457031, + "relativeCreated": 79.84733581542969, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Final processed CSP-Frame", + "=", "[ b':testframe: for csp' ]", "" ], - "asctime": "2021-02-28 18:29:56,399", - "created": 1614533396.399921, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,228", + "created": 1742824173.2288525, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Final processed CSP-Frame): result = [ b':testframe: for csp' ] ()", "module": "test", - "msecs": 399.9209403991699, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 228.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.05238723754883, + "relativeCreated": 79.90241050720215, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 399.9791145324707, + "msecs": 228.0, "msg": "Final processed CSP-Frame is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.11056137084961, + "relativeCreated": 79.9717903137207, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 5.817413330078125e-05 + "time_consumption": 6.937980651855469e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.0005962848663330078, - "time_finished": "2021-02-28 18:29:56,399", - "time_start": "2021-02-28 18:29:56,399" + "time_consumption": 0.0007181167602539062, + "time_finished": "2025-03-24 14:49:33,228", + "time_start": "2025-03-24 14:49:33,228" }, - "_XzMFcHYZEem_kd-7nxt1sg": { + "REQ-0009": { "args": null, - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3955793, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2290936, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 29, - "message": "_XzMFcHYZEem_kd-7nxt1sg", + "lineno": 327, + "message": "REQ-0009", "module": "__init__", "moduleLogger": [], - "msecs": 395.57933807373047, - "msg": "_XzMFcHYZEem_kd-7nxt1sg", + "msecs": 229.0, + "msg": "REQ-0009", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 88.71078491210938, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "de ad be ef", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3956711, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 27, - "message": "Checking test pattern de ad be ef ().", - "module": "test_hexlify", - "moduleLogger": [], - "msecs": 395.67112922668457, - "msg": "Checking test pattern %s (%s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.80257606506348, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3960686, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 47, - "message": "Pattern included all relevant information in the correct order.", - "module": "test_hexlify", - "moduleLogger": [ - { - "args": [ - "(4): de ad be ef" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.395751, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 29, - "message": "Return value of hexlify is (4): de ad be ef", - "module": "test_hexlify", - "msecs": 395.7509994506836, - "msg": "Return value of hexlify is %s", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.8824462890625, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "(4): DE AD BE EF" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.395853, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 31, - "message": "Using upper string for comparison: (4): DE AD BE EF", - "module": "test_hexlify", - "msecs": 395.85304260253906, - "msg": "Using upper string for comparison: %s", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.98448944091797, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "DE", - "(4): DE AD BE EF" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.395906, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 41, - "message": "\"DE\" found in \"(4): DE AD BE EF\"... Reducing pattern", - "module": "test_hexlify", - "msecs": 395.9059715270996, - "msg": "\"%s\" found in \"%s\"... Reducing pattern", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.03741836547852, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "AD", - "AD BE EF" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3959477, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 41, - "message": "\"AD\" found in \"AD BE EF\"... Reducing pattern", - "module": "test_hexlify", - "msecs": 395.9476947784424, - "msg": "\"%s\" found in \"%s\"... Reducing pattern", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.07914161682129, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "BE", - "BE EF" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3959875, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 41, - "message": "\"BE\" found in \"BE EF\"... Reducing pattern", - "module": "test_hexlify", - "msecs": 395.98751068115234, - "msg": "\"%s\" found in \"%s\"... Reducing pattern", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.11895751953125, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "EF", - "EF" - ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.396027, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "data_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 41, - "message": "\"EF\" found in \"EF\"... Reducing pattern", - "module": "test_hexlify", - "msecs": 396.0270881652832, - "msg": "\"%s\" found in \"%s\"... Reducing pattern", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.15853500366211, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 396.0685729980469, - "msg": "Pattern included all relevant information in the correct order.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.20001983642578, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.1484832763671875e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0004892349243164062, - "time_finished": "2021-02-28 18:29:56,396", - "time_start": "2021-02-28 18:29:56,395" - }, - "_Y_h3gH5CEemxr4bbKXhxkg": { - "args": null, - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.398643, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 39, - "message": "_Y_h3gH5CEemxr4bbKXhxkg", - "module": "__init__", - "moduleLogger": [], - "msecs": 398.64301681518555, - "msg": "_Y_h3gH5CEemxr4bbKXhxkg", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.77446365356445, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "b':testframe: for csp'" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3987238, - "exc_info": null, - "exc_text": null, - "filename": "test_csp.py", - "funcName": "build_frame_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 17, - "message": "Creating testframe for \"b':testframe: for csp'\"", - "module": "test_csp", - "moduleLogger": [], - "msecs": 398.723840713501, - "msg": "Creating testframe for \"%s\"", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.85528755187988, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - }, - { - "args": [ - "b':testframe: for csp\\n'", - "" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3988972, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "CSP-Frame is correct (Content b':testframe: for csp\\n' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "CSP-Frame", - "b':testframe: for csp\\n'", - "" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3987978, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (CSP-Frame): b':testframe: for csp\\n' ()", - "module": "test", - "msecs": 398.79775047302246, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.92919731140137, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "CSP-Frame", - "b':testframe: for csp\\n'", - "" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3988476, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (CSP-Frame): result = b':testframe: for csp\\n' ()", - "module": "test", - "msecs": 398.8475799560547, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.9790267944336, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 398.8971710205078, - "msg": "CSP-Frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 92.02861785888672, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.9591064453125e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0002541542053222656, - "time_finished": "2021-02-28 18:29:56,398", - "time_start": "2021-02-28 18:29:56,398" - }, - "_ZhyRAI9OEemAMMFgxXT6lA": { - "args": null, - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4001098, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 42, - "message": "_ZhyRAI9OEemAMMFgxXT6lA", - "module": "__init__", - "moduleLogger": [], - "msecs": 400.10976791381836, - "msg": "_ZhyRAI9OEemAMMFgxXT6lA", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 93.24121475219727, + "relativeCreated": 80.14345169067383, "stack_info": null, "testcaseLogger": [ { "args": [], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4001858, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2292092, "exc_text": null, "filename": "test_csp.py", "funcName": "process_wrong_data", @@ -12349,15 +2340,15 @@ "message": "Processing wrong data (list)", "module": "test_csp", "moduleLogger": [], - "msecs": 400.18582344055176, + "msecs": 229.0, "msg": "Processing wrong data (list)", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.31727027893066, + "relativeCreated": 80.25908470153809, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -12366,15 +2357,14 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4003549, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.229401, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Wrong data exception is correct (Content and Type is ).", "module": "test", "moduleLogger": [ @@ -12384,9 +2374,8 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.400262, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.229297, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -12395,72 +2384,71 @@ "lineno": 22, "message": "Result (Wrong data exception): ()", "module": "test", - "msecs": 400.26211738586426, + "msecs": 229.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.39356422424316, + "relativeCreated": 80.34682273864746, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Wrong data exception", + "=", "", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4003093, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2293508, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Wrong data exception): result = ()", "module": "test", - "msecs": 400.30932426452637, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 229.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.44077110290527, + "relativeCreated": 80.40070533752441, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 400.35486221313477, + "msecs": 229.0, "msg": "Wrong data exception is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.48630905151367, + "relativeCreated": 80.45101165771484, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.553794860839844e-05 + "time_consumption": 5.030632019042969e-05 }, { "args": [ "b''", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4005141, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.22958, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Buffer still empty is correct (Content b'' and Type is ).", "module": "test", "moduleLogger": [ @@ -12470,9 +2458,8 @@ "b''", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.400423, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.229479, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -12481,63 +2468,62 @@ "lineno": 22, "message": "Result (Buffer still empty): b'' ()", "module": "test", - "msecs": 400.4230499267578, + "msecs": 229.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.55449676513672, + "relativeCreated": 80.52897453308105, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Buffer still empty", + "=", "b''", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4004703, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2295306, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Buffer still empty): result = b'' ()", "module": "test", - "msecs": 400.4702568054199, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 229.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.60170364379883, + "relativeCreated": 80.58047294616699, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 400.5141258239746, + "msecs": 229.0, "msg": "Buffer still empty is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.64557266235352, + "relativeCreated": 80.62982559204102, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.38690185546875e-05 + "time_consumption": 4.935264587402344e-05 }, { "args": [], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.400579, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2296746, "exc_text": null, "filename": "test_csp.py", "funcName": "process_wrong_data", @@ -12547,15 +2533,15 @@ "message": "Processing wrong data (int)", "module": "test_csp", "moduleLogger": [], - "msecs": 400.57897567749023, + "msecs": 229.0, "msg": "Processing wrong data (int)", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.71042251586914, + "relativeCreated": 80.72447776794434, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -12564,15 +2550,14 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.400745, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2298574, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Wrong data exception is correct (Content and Type is ).", "module": "test", "moduleLogger": [ @@ -12582,9 +2567,8 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4006555, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.229757, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -12593,72 +2577,71 @@ "lineno": 22, "message": "Result (Wrong data exception): ()", "module": "test", - "msecs": 400.65550804138184, + "msecs": 229.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.78695487976074, + "relativeCreated": 80.80697059631348, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Wrong data exception", + "=", "", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4007006, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2298083, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Wrong data exception): result = ()", "module": "test", - "msecs": 400.70056915283203, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 229.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.83201599121094, + "relativeCreated": 80.85823059082031, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 400.7449150085449, + "msecs": 229.0, "msg": "Wrong data exception is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.87636184692383, + "relativeCreated": 80.90734481811523, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.4345855712890625e-05 + "time_consumption": 4.9114227294921875e-05 }, { "args": [ "b''", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4009042, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2300355, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Buffer still empty is correct (Content b'' and Type is ).", "module": "test", "moduleLogger": [ @@ -12668,9 +2651,8 @@ "b''", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4008129, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2299333, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -12679,63 +2661,62 @@ "lineno": 22, "message": "Result (Buffer still empty): b'' ()", "module": "test", - "msecs": 400.81286430358887, + "msecs": 229.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.94431114196777, + "relativeCreated": 80.98316192626953, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Buffer still empty", + "=", "b''", "" ], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.4008565, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,229", + "created": 1742824173.2299874, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Buffer still empty): result = b'' ()", "module": "test", - "msecs": 400.85649490356445, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 229.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 93.98794174194336, + "relativeCreated": 81.03728294372559, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 400.90417861938477, + "msecs": 230.0, "msg": "Buffer still empty is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.03562545776367, + "relativeCreated": 81.0854434967041, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.76837158203125e-05 + "time_consumption": 4.8160552978515625e-05 }, { "args": [], - "asctime": "2021-02-28 18:29:56,400", - "created": 1614533396.400969, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.230108, "exc_text": null, "filename": "test_csp.py", "funcName": "process_wrong_data", @@ -12745,15 +2726,15 @@ "message": "Processing wrong data (str)", "module": "test_csp", "moduleLogger": [], - "msecs": 400.9690284729004, + "msecs": 230.0, "msg": "Processing wrong data (str)", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_csp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_csp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.1004753112793, + "relativeCreated": 81.15792274475098, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -12762,15 +2743,14 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.40114, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2302852, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Wrong data exception is correct (Content and Type is ).", "module": "test", "moduleLogger": [ @@ -12780,9 +2760,8 @@ "", "" ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4010417, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2301862, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -12791,72 +2770,71 @@ "lineno": 22, "message": "Result (Wrong data exception): ()", "module": "test", - "msecs": 401.04174613952637, + "msecs": 230.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.17319297790527, + "relativeCreated": 81.23612403869629, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Wrong data exception", + "=", "", "" ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4010956, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.230236, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Wrong data exception): result = ()", "module": "test", - "msecs": 401.0956287384033, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 230.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.22707557678223, + "relativeCreated": 81.28595352172852, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 401.1399745941162, + "msecs": 230.0, "msg": "Wrong data exception is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.27142143249512, + "relativeCreated": 81.33506774902344, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.4345855712890625e-05 + "time_consumption": 4.9114227294921875e-05 }, { "args": [ "b''", "" ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4013045, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2304626, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Buffer still empty is correct (Content b'' and Type is ).", "module": "test", "moduleLogger": [ @@ -12866,9 +2844,8 @@ "b''", "" ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4012086, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.230364, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -12877,5258 +2854,1198 @@ "lineno": 22, "message": "Result (Buffer still empty): b'' ()", "module": "test", - "msecs": 401.20863914489746, + "msecs": 230.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.34008598327637, + "relativeCreated": 81.41398429870605, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, + { + "args": [ + "Buffer still empty", + "=", + "b''", + "" + ], + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.230414, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Buffer still empty): result = b'' ()", + "module": "test", + "msecs": 230.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 81.46381378173828, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 230.0, + "msg": "Buffer still empty is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 81.512451171875, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.863739013671875e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0013689994812011719, + "time_finished": "2025-03-24 14:49:33,230", + "time_start": "2025-03-24 14:49:33,229" + }, + "REQ-0010": { + "args": null, + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2306437, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0010", + "module": "__init__", + "moduleLogger": [], + "msecs": 230.0, + "msg": "REQ-0010", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 81.69364929199219, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "b'testframe for stp'" + ], + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2307742, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "build_frame_chk", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 17, + "message": "Creating testframe for \"b'testframe for stp'\"", + "module": "test_stp", + "moduleLogger": [], + "msecs": 230.0, + "msg": "Creating testframe for \"%s\"", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 81.82406425476074, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0 + }, + { + "args": [ + "b':'", + "" + ], + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2309701, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "STP-Frame is correct (Content b':' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "STP-Frame", + "b':'", + "" + ], + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2308593, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (STP-Frame): b':' ()", + "module": "test", + "msecs": 230.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 81.9091796875, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP-Frame", + "=", + "b':'", + "" + ], + "asctime": "2025-03-24 14:49:33,230", + "created": 1742824173.2309115, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (STP-Frame): result = b':' ()", + "module": "test", + "msecs": 230.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 81.96139335632324, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 230.0, + "msg": "STP-Frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 82.02004432678223, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.8650970458984375e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.00032639503479003906, + "time_finished": "2025-03-24 14:49:33,230", + "time_start": "2025-03-24 14:49:33,230" + }, + "REQ-0011": { + "args": null, + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.231614, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0011", + "module": "__init__", + "moduleLogger": [], + "msecs": 231.0, + "msg": "REQ-0011", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 82.66401290893555, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "b':'" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2320979, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_frame_chk", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 31, + "message": "Processing testframe: \"b':'\"", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.2317595, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 95, + "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 231.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 82.8094482421875, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.2318218, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 231.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 82.87167549133301, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.2319205, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 111, + "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "module": "stp", + "msecs": 231.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 82.97038078308105, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 62 + ], + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.2319767, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 121, + "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", + "module": "stp", + "msecs": 231.0, + "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.02664756774902, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + "(17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2320478, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "STP: message identified - (17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70", + "module": "stp", + "msecs": 232.0, + "msg": "%s message identified - %s", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.09769630432129, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 232.0, + "msg": "Processing testframe: \"%s\"", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.14776420593262, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.0067901611328125e-05 + }, + { + "args": [ + "[]", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2323024, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "First processed STP snippet is correct (Content [] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "First processed STP snippet", + "[ ]", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2321885, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (First processed STP snippet): [ ] ()", + "module": "test", + "msecs": 232.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.23836326599121, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "First processed STP snippet", + "=", + "[ ]", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2322466, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (First processed STP snippet): result = [ ] ()", + "module": "test", + "msecs": 232.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.29653739929199, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 232.0, + "msg": "First processed STP snippet is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.35232734680176, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.5789947509765625e-05 + }, + { + "args": [ + "[b'testframe for stp']", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2324994, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Final processed STP snippet is correct (Content [b'testframe for stp'] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Final processed STP snippet", + "[ b'testframe for stp' ]", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2323856, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Final processed STP snippet): [ b'testframe for stp' ] ()", + "module": "test", + "msecs": 232.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.4355354309082, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Final processed STP snippet", + "=", + "[ b'testframe for stp' ]", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2324398, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Final processed STP snippet): result = [ b'testframe for stp' ] ()", + "module": "test", + "msecs": 232.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.48965644836426, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 232.0, + "msg": "Final processed STP snippet is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.54926109313965, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.9604644775390625e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0008852481842041016, + "time_finished": "2025-03-24 14:49:33,232", + "time_start": "2025-03-24 14:49:33,231" + }, + "REQ-0012": { + "args": null, + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2326622, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0012", + "module": "__init__", + "moduleLogger": [], + "msecs": 232.0, + "msg": "REQ-0012", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.71210098266602, + "stack_info": null, + "testcaseLogger": [ + { + "args": [], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.232768, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_wrong_data", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 53, + "message": "Processing wrong data (list)", + "module": "test_stp", + "moduleLogger": [], + "msecs": 232.0, + "msg": "Processing wrong data (list)", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.81795883178711, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0 + }, + { + "args": [ + "", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2329743, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Wrong data exception is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Wrong data exception", + "", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2328541, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Wrong data exception): ()", + "module": "test", + "msecs": 232.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.90402793884277, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Wrong data exception", + "=", + "", + "" + ], + "asctime": "2025-03-24 14:49:33,232", + "created": 1742824173.2329228, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Wrong data exception): result = ()", + "module": "test", + "msecs": 232.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 83.97269248962402, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 232.0, + "msg": "Wrong data exception is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 84.02419090270996, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.14984130859375e-05 + }, + { + "args": [ + "b''", + "" + ], + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2331533, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Buffer still empty is correct (Content b'' and Type is ).", + "module": "test", + "moduleLogger": [ { "args": [ "Buffer still empty", "b''", "" ], - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.401261, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2330532, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Buffer still empty): b'' ()", + "module": "test", + "msecs": 233.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 84.10310745239258, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Buffer still empty", + "=", + "b''", + "" + ], + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.233104, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Buffer still empty): result = b'' ()", "module": "test", - "msecs": 401.2610912322998, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 233.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.39253807067871, + "relativeCreated": 84.15389060974121, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 401.3044834136963, + "msecs": 233.0, "msg": "Buffer still empty is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 94.4359302520752, + "relativeCreated": 84.20324325561523, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.3392181396484375e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0011947154998779297, - "time_finished": "2021-02-28 18:29:56,401", - "time_start": "2021-02-28 18:29:56,400" - }, - "_dB5IoEaTEeq5fPlXIeQCXQ": { - "args": null, - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3902016, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 24, - "message": "_dB5IoEaTEeq5fPlXIeQCXQ", - "module": "__init__", - "moduleLogger": [], - "msecs": 390.2015686035156, - "msg": "_dB5IoEaTEeq5fPlXIeQCXQ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.33301544189453, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "'117p'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3906002, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1.17e-10 is correct (Content '117p' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1.17e-10", - "'117p'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3904681, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1.17e-10): '117p' ()", - "module": "test", - "msecs": 390.4681205749512, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.59956741333008, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1.17e-10", - "'117p'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3905392, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1.17e-10): result = '117p' ()", - "module": "test", - "msecs": 390.53916931152344, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.67061614990234, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 390.60020446777344, - "msg": "Physical representation for 1.17e-10 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.73165130615234, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.103515625e-05 - }, - { - "args": [ - "'54n'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.390806, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 5.4e-08 is correct (Content '54n' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 5.4e-08", - "'54n'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3907046, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 5.4e-08): '54n' ()", - "module": "test", - "msecs": 390.7046318054199, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.83607864379883, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 5.4e-08", - "'54n'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3907578, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 5.4e-08): result = '54n' ()", - "module": "test", - "msecs": 390.75779914855957, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.88924598693848, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 390.8059597015381, - "msg": "Physical representation for 5.4e-08 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 83.93740653991699, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.8160552978515625e-05 - }, - { - "args": [ - "'25.3u'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3909886, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 2.53e-05 is correct (Content '25.3u' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 2.53e-05", - "'25.3u'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.390898, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 2.53e-05): '25.3u' ()", - "module": "test", - "msecs": 390.8979892730713, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.0294361114502, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 2.53e-05", - "'25.3u'", - "" - ], - "asctime": "2021-02-28 18:29:56,390", - "created": 1614533396.3909445, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 2.53e-05): result = '25.3u' ()", - "module": "test", - "msecs": 390.9444808959961, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.075927734375, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 390.9885883331299, - "msg": "Physical representation for 2.53e-05 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.12003517150879, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.410743713378906e-05 - }, - { - "args": [ - "'100m'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3911636, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 0.1 is correct (Content '100m' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 0.1", - "'100m'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3910754, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 0.1): '100m' ()", - "module": "test", - "msecs": 391.07537269592285, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.20681953430176, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 0.1", - "'100m'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3911204, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 0.1): result = '100m' ()", - "module": "test", - "msecs": 391.12043380737305, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.25188064575195, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 391.16358757019043, - "msg": "Physical representation for 0.1 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.29503440856934, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.315376281738281e-05 - }, - { - "args": [ - "'0'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3913398, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 0 is correct (Content '0' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 0", - "'0'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3912516, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 0): '0' ()", - "module": "test", - "msecs": 391.2515640258789, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.38301086425781, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 0", - "'0'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3912969, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 0): result = '0' ()", - "module": "test", - "msecs": 391.2968635559082, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.42831039428711, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 391.3397789001465, - "msg": "Physical representation for 0 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.47122573852539, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.291534423828125e-05 - }, - { - "args": [ - "'1'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.391519, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1 is correct (Content '1' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1", - "'1'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3914227, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1): '1' ()", - "module": "test", - "msecs": 391.4227485656738, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.55419540405273, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1", - "'1'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3914711, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1): result = '1' ()", - "module": "test", - "msecs": 391.47114753723145, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.60259437561035, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 391.51906967163086, - "msg": "Physical representation for 1 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.65051651000977, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 - }, - { - "args": [ - "'1k'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3916898, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1000 is correct (Content '1k' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1000", - "'1k'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3916032, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1000): '1k' ()", - "module": "test", - "msecs": 391.6032314300537, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.73467826843262, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1000", - "'1k'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3916473, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1000): result = '1k' ()", - "module": "test", - "msecs": 391.6473388671875, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.7787857055664, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 391.6897773742676, - "msg": "Physical representation for 1000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.82122421264648, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.2438507080078125e-05 - }, - { - "args": [ - "'1.01M'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.391862, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1005001 is correct (Content '1.01M' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1005001", - "'1.01M'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3917747, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1005001): '1.01M' ()", - "module": "test", - "msecs": 391.77465438842773, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.90610122680664, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1005001", - "'1.01M'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3918192, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1005001): result = '1.01M' ()", - "module": "test", - "msecs": 391.8192386627197, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.95068550109863, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 391.8619155883789, - "msg": "Physical representation for 1005001 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 84.99336242675781, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.267692565917969e-05 - }, - { - "args": [ - "'1G'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3920374, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1004000000 is correct (Content '1G' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1004000000", - "'1G'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3919504, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1004000000): '1G' ()", - "module": "test", - "msecs": 391.9503688812256, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.08181571960449, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1004000000", - "'1G'", - "" - ], - "asctime": "2021-02-28 18:29:56,391", - "created": 1614533396.3919947, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1004000000): result = '1G' ()", - "module": "test", - "msecs": 391.9947147369385, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.12616157531738, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 392.03739166259766, - "msg": "Physical representation for 1004000000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.16883850097656, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.267692565917969e-05 - }, - { - "args": [ - "'1T'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.392218, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 1003000000000 is correct (Content '1T' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 1003000000000", - "'1T'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3921285, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 1003000000000): '1T' ()", - "module": "test", - "msecs": 392.12846755981445, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.25991439819336, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 1003000000000", - "'1T'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3921726, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 1003000000000): result = '1T' ()", - "module": "test", - "msecs": 392.17257499694824, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.30402183532715, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 392.21811294555664, - "msg": "Physical representation for 1003000000000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.34955978393555, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.553794860839844e-05 - }, - { - "args": [ - "'10P'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3923922, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 10000000000000000 is correct (Content '10P' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 10000000000000000", - "'10P'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3923054, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 10000000000000000): '10P' ()", - "module": "test", - "msecs": 392.3053741455078, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.43682098388672, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 10000000000000000", - "'10P'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3923495, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 10000000000000000): result = '10P' ()", - "module": "test", - "msecs": 392.3494815826416, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.48092842102051, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 392.3921585083008, - "msg": "Physical representation for 10000000000000000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.52360534667969, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.267692565917969e-05 - }, - { - "args": [ - "'17.17'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3925562, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 17.17 is correct (Content '17.17' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 17.17", - "'17.17'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3924704, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 17.17): '17.17' ()", - "module": "test", - "msecs": 392.4703598022461, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.601806640625, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 17.17", - "'17.17'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.392514, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 17.17): result = '17.17' ()", - "module": "test", - "msecs": 392.5139904022217, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.64543724060059, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 392.55619049072266, - "msg": "Physical representation for 17.17 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.68763732910156, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.220008850097656e-05 - }, - { - "args": [ - "'117k'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3927295, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 117000 is correct (Content '117k' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 117000", - "'117k'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.39264, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 117000): '117k' ()", - "module": "test", - "msecs": 392.6401138305664, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.77156066894531, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 117000", - "'117k'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3926868, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 117000): result = '117k' ()", - "module": "test", - "msecs": 392.6868438720703, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.81829071044922, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 392.7295207977295, - "msg": "Physical representation for 117000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.8609676361084, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.267692565917969e-05 - }, - { - "args": [ - "'117.2'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3928993, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Physical representation for 117.17 is correct (Content '117.2' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Physical representation for 117.17", - "'117.2'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3928063, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Physical representation for 117.17): '117.2' ()", - "module": "test", - "msecs": 392.8062915802002, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.9377384185791, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Physical representation for 117.17", - "'117.2'", - "" - ], - "asctime": "2021-02-28 18:29:56,392", - "created": 1614533396.3928502, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Physical representation for 117.17): result = '117.2' ()", - "module": "test", - "msecs": 392.8501605987549, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 85.98160743713379, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 392.8992748260498, - "msg": "Physical representation for 117.17 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.03072166442871, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.9114227294921875e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0026977062225341797, - "time_finished": "2021-02-28 18:29:56,392", - "time_start": "2021-02-28 18:29:56,390" - }, - "_dpJzwCcUEeqsHsnJQYCN8Q": { - "args": null, - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4110813, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 53, - "message": "_dpJzwCcUEeqsHsnJQYCN8Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 411.08131408691406, - "msg": "_dpJzwCcUEeqsHsnJQYCN8Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.21276092529297, - "stack_info": null, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4114873, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_incorrect_end_frame_pattern", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 126, - "message": "Processing data with an insufficient end pattern.", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 411.2427234649658, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.37417030334473, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4112895, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 411.2894535064697, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.42090034484863, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4113445, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 411.3445281982422, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.4759750366211, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 100 - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4113922, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 140, - "message": "STP: data (64) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 411.3922119140625, - "msg": "%s data (%02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.5236587524414, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4114428, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 411.44275665283203, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.57420349121094, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 411.487340927124, - "msg": "Processing data with an insufficient end pattern.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.61878776550293, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.458427429199219e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4116802, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing data_sync and data again after start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing data_sync and data again after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.411569, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing data_sync and data again after start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 411.56911849975586, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.70056533813477, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing data_sync and data again after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4116216, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing data_sync and data again after start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 411.6215705871582, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.75301742553711, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 411.6802215576172, - "msg": "Return value list if processing data_sync and data again after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.8116683959961, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 5.8650970458984375e-05 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4118395, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing data_sync and data again after start of frame is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing data_sync and data again after start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4117527, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing data_sync and data again after start of frame): 0 ()", - "module": "test", - "msecs": 411.75270080566406, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.88414764404297, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing data_sync and data again after start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.411797, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing data_sync and data again after start of frame): result = 0 ()", - "module": "test", - "msecs": 411.79704666137695, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.92849349975586, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 411.83948516845703, - "msg": "State after processing data_sync and data again after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.97093200683594, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.2438507080078125e-05 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4119925, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer size after processing data with insufficient end pattern is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer size after processing data with insufficient end pattern", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.4119067, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer size after processing data with insufficient end pattern): 0 ()", - "module": "test", - "msecs": 411.9067192077637, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.03816604614258, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer size after processing data with insufficient end pattern", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,411", - "created": 1614533396.41195, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer size after processing data with insufficient end pattern): result = 0 ()", - "module": "test", - "msecs": 411.95011138916016, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.08155822753906, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 411.99254989624023, - "msg": "Buffer size after processing data with insufficient end pattern is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.12399673461914, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.2438507080078125e-05 + "time_consumption": 4.935264587402344e-05 }, { "args": [], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4124231, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2332296, "exc_text": null, "filename": "test_stp.py", - "funcName": "process_incorrect_end_frame_pattern", + "funcName": "process_wrong_data", "levelname": "DEBUG", "levelno": 10, - "lineno": 138, - "message": "Processing data with an insufficient end pattern (start pattern instead of end pattern).", + "lineno": 63, + "message": "Processing wrong data (int)", "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 412.16540336608887, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.29685020446777, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4122226, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 412.22262382507324, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.35407066345215, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4122808, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 412.280797958374, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.41224479675293, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4123268, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 122, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 412.3268127441406, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.45825958251953, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.412379, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 412.37902641296387, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.51047325134277, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 412.42313385009766, - "msg": "Processing data with an insufficient end pattern (start pattern instead of end pattern).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.55458068847656, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.410743713378906e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4126132, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing 2nd start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing 2nd start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4125023, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing 2nd start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 412.5022888183594, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.63373565673828, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing 2nd start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4125574, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing 2nd start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 412.55736351013184, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.68881034851074, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 412.6131534576416, - "msg": "Return value list if processing 2nd start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.74460029602051, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 5.5789947509765625e-05 - }, - { - "args": [ - "3", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4127722, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing 2nd start of frame is correct (Content 3 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing 2nd start of frame", - "3", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4126852, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing 2nd start of frame): 3 ()", - "module": "test", - "msecs": 412.6851558685303, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.81660270690918, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing 2nd start of frame", - "3", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4127293, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing 2nd start of frame): result = 3 ()", - "module": "test", - "msecs": 412.72926330566406, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.86071014404297, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 412.77217864990234, - "msg": "State after processing 2nd start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.90362548828125, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.291534423828125e-05 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.412929, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer size after processing 2nd start of frame is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer size after processing 2nd start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.412839, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer size after processing 2nd start of frame): 0 ()", - "module": "test", - "msecs": 412.8389358520508, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 105.97038269042969, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer size after processing 2nd start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,412", - "created": 1614533396.4128819, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer size after processing 2nd start of frame): result = 0 ()", - "module": "test", - "msecs": 412.88185119628906, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.01329803466797, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 412.9290580749512, - "msg": "Buffer size after processing 2nd start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.06050491333008, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.7206878662109375e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4132893, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_incorrect_end_frame_pattern", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 150, - "message": "Processing data with an insufficient end pattern (two times sync instead of end pattern).", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 413.0539894104004, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.1854362487793, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.413099, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 413.0990505218506, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.23049736022949, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4131525, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 117, - "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "module": "stp", - "msecs": 413.15245628356934, - "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.28390312194824, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4131992, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 136, - "message": "STP: second data sync (3a) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 413.19918632507324, - "msg": "%s second data sync (%02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.33063316345215, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.413246, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 413.24591636657715, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.37736320495605, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 413.28930854797363, - "msg": "Processing data with an insufficient end pattern (two times sync instead of end pattern).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.42075538635254, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.3392181396484375e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4135077, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing data_sync twice after start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing data_sync twice after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4133658, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing data_sync twice after start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 413.36584091186523, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.49728775024414, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing data_sync twice after start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.413447, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing data_sync twice after start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 413.44690322875977, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.57835006713867, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 413.50769996643066, - "msg": "Return value list if processing data_sync twice after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.63914680480957, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.079673767089844e-05 - }, - { - "args": [ - "1", - "" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.41369, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing data_sync twice after start of frame is correct (Content 1 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing data_sync twice after start of frame", - "1", - "" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4135835, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing data_sync twice after start of frame): 1 ()", - "module": "test", - "msecs": 413.58351707458496, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.71496391296387, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing data_sync twice after start of frame", - "1", - "" - ], - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4136324, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing data_sync twice after start of frame): result = 1 ()", - "module": "test", - "msecs": 413.6323928833008, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.76383972167969, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 413.69009017944336, - "msg": "State after processing data_sync twice after start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.82153701782227, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 5.7697296142578125e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.002608776092529297, - "time_finished": "2021-02-28 18:29:56,413", - "time_start": "2021-02-28 18:29:56,411" - }, - "_fp-i0Hu8Eemborg4LxXa3A": { - "args": null, - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3980346, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 35, - "message": "_fp-i0Hu8Eemborg4LxXa3A", - "module": "__init__", - "moduleLogger": [], - "msecs": 398.03457260131836, - "msg": "_fp-i0Hu8Eemborg4LxXa3A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.16601943969727, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "(26): 1f 8b 08 00 34 e0 04 5d 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.398277, - "exc_info": null, - "exc_text": null, - "filename": "test_gzip.py", - "funcName": "gzip_extract_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 23, - "message": "Extracting stream: (26): 1f 8b 08 00 34 e0 04 5d 02 ff 63 60 40 01 ff 51 01 00 2d 8a 7d de 1e 00 00 00", - "module": "test_gzip", - "moduleLogger": [ - { - "args": [ - 0.8666666666666667, - 7.486343383789062e-05 - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.398192, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "gzip_extract", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 181, - "message": "GZIP: Finished to extract a string (compression_rate=0.867, consumed_time=0.0s).", - "module": "__init__", - "msecs": 398.1919288635254, - "msg": "GZIP: Finished to extract a string (compression_rate=%.3f, consumed_time=%.1fs).", - "name": "root.stringtools", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.3233757019043, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 398.27704429626465, - "msg": "Extracting stream: %s", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_gzip.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.40849113464355, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 8.511543273925781e-05 - }, - { - "args": [ - "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", - "" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3985183, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Extracted data is correct (Content '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Extracted data", - "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", - "" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3984184, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Extracted data): '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' ()", - "module": "test", - "msecs": 398.4184265136719, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.54987335205078, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Extracted data", - "'(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff'", - "" - ], - "asctime": "2021-02-28 18:29:56,398", - "created": 1614533396.3984714, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Extracted data): result = '(30): 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff' ()", - "module": "test", - "msecs": 398.4713554382324, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.60280227661133, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 398.51832389831543, - "msg": "Extracted data is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 91.64977073669434, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.696846008300781e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0004837512969970703, - "time_finished": "2021-02-28 18:29:56,398", - "time_start": "2021-02-28 18:29:56,398" - }, - "_hpUmwEaTEeq5fPlXIeQCXQ": { - "args": null, - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3930526, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 25, - "message": "_hpUmwEaTEeq5fPlXIeQCXQ", - "module": "__init__", - "moduleLogger": [], - "msecs": 393.0525779724121, - "msg": "_hpUmwEaTEeq5fPlXIeQCXQ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.18402481079102, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "'00:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3932428, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 59 is correct (Content '00:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 59", - "'00:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.393148, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 59): '00:59' ()", - "module": "test", - "msecs": 393.14794540405273, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.27939224243164, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 59", - "'00:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3931978, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 59): result = '00:59' ()", - "module": "test", - "msecs": 393.19777488708496, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.32922172546387, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 393.24283599853516, - "msg": "Time representation for 59 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.37428283691406, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.506111145019531e-05 - }, - { - "args": [ - "'01:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3934095, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 60 is correct (Content '01:00' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 60", - "'01:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.393323, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 60): '01:00' ()", - "module": "test", - "msecs": 393.3229446411133, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.45439147949219, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 60", - "'01:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.393367, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 60): result = '01:00' ()", - "module": "test", - "msecs": 393.36705207824707, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.49849891662598, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 393.40949058532715, - "msg": "Time representation for 60 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.54093742370605, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.2438507080078125e-05 - }, - { - "args": [ - "'59:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3935685, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 3599 is correct (Content '59:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 3599", - "'59:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3934836, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 3599): '59:59' ()", - "module": "test", - "msecs": 393.48363876342773, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.61508560180664, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 3599", - "'59:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3935266, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 3599): result = '59:59' ()", - "module": "test", - "msecs": 393.526554107666, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.65800094604492, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 393.5685157775879, - "msg": "Time representation for 3599 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.6999626159668, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.1961669921875e-05 - }, - { - "args": [ - "'01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3937466, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 3600 is correct (Content '01:00:00' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 3600", - "'01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3936422, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 3600): '01:00:00' ()", - "module": "test", - "msecs": 393.6421871185303, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.77363395690918, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 3600", - "'01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3937035, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 3600): result = '01:00:00' ()", - "module": "test", - "msecs": 393.7034606933594, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.83490753173828, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 393.74661445617676, - "msg": "Time representation for 3600 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.87806129455566, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.315376281738281e-05 - }, - { - "args": [ - "'23:59:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3939118, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 86399 is correct (Content '23:59:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 86399", - "'23:59:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3938265, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 86399): '23:59:59' ()", - "module": "test", - "msecs": 393.8264846801758, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 86.95793151855469, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 86399", - "'23:59:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.3938696, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 86399): result = '23:59:59' ()", - "module": "test", - "msecs": 393.86963844299316, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.00108528137207, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 393.91183853149414, - "msg": "Time representation for 86399 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.04328536987305, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.220008850097656e-05 - }, - { - "args": [ - "'1D'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3940775, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 86400 is correct (Content '1D' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 86400", - "'1D'", - "" - ], - "asctime": "2021-02-28 18:29:56,393", - "created": 1614533396.393989, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 86400): '1D' ()", - "module": "test", - "msecs": 393.98908615112305, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.12053298950195, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 86400", - "'1D'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3940322, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 86400): result = '1D' ()", - "module": "test", - "msecs": 394.03223991394043, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.16368675231934, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 394.0775394439697, - "msg": "Time representation for 86400 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.20898628234863, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.5299530029296875e-05 - }, - { - "args": [ - "'1D 00:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3942385, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 86459 is correct (Content '1D 00:59' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 86459", - "'1D 00:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.394153, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 86459): '1D 00:59' ()", - "module": "test", - "msecs": 394.1531181335449, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.28456497192383, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 86459", - "'1D 00:59'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.394196, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 86459): result = '1D 00:59' ()", - "module": "test", - "msecs": 394.1960334777832, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.32748031616211, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 394.2384719848633, - "msg": "Time representation for 86459 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.36991882324219, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.2438507080078125e-05 - }, - { - "args": [ - "'1D 01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3944046, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Time representation for 90000 is correct (Content '1D 01:00:00' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Time representation for 90000", - "'1D 01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.394319, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Time representation for 90000): '1D 01:00:00' ()", - "module": "test", - "msecs": 394.3190574645996, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.45050430297852, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Time representation for 90000", - "'1D 01:00:00'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3943624, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Time representation for 90000): result = '1D 01:00:00' ()", - "module": "test", - "msecs": 394.3624496459961, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.493896484375, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 394.40464973449707, - "msg": "Time representation for 90000 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.53609657287598, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.220008850097656e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.001352071762084961, - "time_finished": "2021-02-28 18:29:56,394", - "time_start": "2021-02-28 18:29:56,393" - }, - "_iXxBIEaTEeq5fPlXIeQCXQ": { - "args": null, - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3945436, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 26, - "message": "_iXxBIEaTEeq5fPlXIeQCXQ", - "module": "__init__", - "moduleLogger": [], - "msecs": 394.5436477661133, - "msg": "_iXxBIEaTEeq5fPlXIeQCXQ", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.67509460449219, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "'87/5'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3948202, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 17.4 is correct (Content '87/5' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 17.4", - "'87/5'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3947198, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 17.4): '87/5' ()", - "module": "test", - "msecs": 394.71983909606934, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.85128593444824, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 17.4", - "'87/5'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.394773, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 17.4): result = '87/5' ()", - "module": "test", - "msecs": 394.773006439209, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.90445327758789, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 394.8202133178711, - "msg": "Fraction representation for 17.4 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 87.95166015625, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.7206878662109375e-05 - }, - { - "args": [ - "'1/4'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3950026, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 0.25 is correct (Content '1/4' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 0.25", - "'1/4'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3949122, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 0.25): '1/4' ()", - "module": "test", - "msecs": 394.9122428894043, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.0436897277832, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 0.25", - "'1/4'", - "" - ], - "asctime": "2021-02-28 18:29:56,394", - "created": 1614533396.3949594, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 0.25): result = '1/4' ()", - "module": "test", - "msecs": 394.9594497680664, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.09089660644531, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 395.0026035308838, - "msg": "Fraction representation for 0.25 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.1340503692627, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.315376281738281e-05 - }, - { - "args": [ - "'1/10'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3952312, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 0.1 is correct (Content '1/10' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 0.1", - "'1/10'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3951356, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 0.1): '1/10' ()", - "module": "test", - "msecs": 395.13564109802246, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.26708793640137, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 0.1", - "'1/10'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3951871, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 0.1): result = '1/10' ()", - "module": "test", - "msecs": 395.1871395111084, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.3185863494873, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 395.2312469482422, - "msg": "Fraction representation for 0.1 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.3626937866211, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.410743713378906e-05 - }, - { - "args": [ - "'1/60'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3954477, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Fraction representation for 0.01666667 is correct (Content '1/60' and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Fraction representation for 0.01666667", - "'1/60'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.3953567, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Fraction representation for 0.01666667): '1/60' ()", - "module": "test", - "msecs": 395.3566551208496, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.48810195922852, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Fraction representation for 0.01666667", - "'1/60'", - "" - ], - "asctime": "2021-02-28 18:29:56,395", - "created": 1614533396.395404, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Fraction representation for 0.01666667): result = '1/60' ()", - "module": "test", - "msecs": 395.4041004180908, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.53554725646973, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 395.4477310180664, - "msg": "Fraction representation for 0.01666667 is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 88.57917785644531, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.363059997558594e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.000904083251953125, - "time_finished": "2021-02-28 18:29:56,395", - "time_start": "2021-02-28 18:29:56,394" - }, - "_n3BdUCcREeqsHsnJQYCN8Q": { - "args": null, - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.409073, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 52, - "message": "_n3BdUCcREeqsHsnJQYCN8Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 409.0731143951416, - "msg": "_n3BdUCcREeqsHsnJQYCN8Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.20456123352051, - "stack_info": null, - "testcaseLogger": [ - { - "args": [], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.409406, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 103, - "message": "Processing data with an insufficient start pattern.", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "b':1'" - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.4091966, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 100, - "message": "Sending b':1' to stp.", - "module": "test_stp", - "msecs": 409.1966152191162, - "msg": "Sending %s to stp.", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.32806205749512, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.409278, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 409.27791595458984, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.40936279296875, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 49 - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.4093459, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 111, - "message": "STP: no start pattern (3a 31) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_IDLE", - "module": "stp", - "msecs": 409.3458652496338, - "msg": "%s no start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.4773120880127, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 409.4059467315674, - "msg": "Processing data with an insufficient start pattern.", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.53739356994629, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.008148193359375e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.4097927, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing incorrect start of frame is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing incorrect start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.4095628, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing incorrect start of frame): [ [ ] ] ()", - "module": "test", - "msecs": 409.5628261566162, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.69427299499512, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing incorrect start of frame", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.409644, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing incorrect start of frame): result = [ [ ] ] ()", - "module": "test", - "msecs": 409.64388847351074, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.77533531188965, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 409.7926616668701, - "msg": "Return value list if processing incorrect start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 102.92410850524902, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.000148773193359375 - }, - { - "args": [ - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4100513, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing incorrect start of frame is correct (Content 0 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing incorrect start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.4099274, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing incorrect start of frame): 0 ()", - "module": "test", - "msecs": 409.9273681640625, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.0588150024414, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing incorrect start of frame", - "0", - "" - ], - "asctime": "2021-02-28 18:29:56,409", - "created": 1614533396.4099915, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing incorrect start of frame): result = 0 ()", - "module": "test", - "msecs": 409.9915027618408, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.12294960021973, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 410.0513458251953, - "msg": "State after processing incorrect start of frame is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.18279266357422, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 5.984306335449219e-05 - }, - { - "args": [], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4104216, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 113, - "message": "Processing data with an insufficient start pattern (two times sync).", - "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "b'::'" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4101772, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_no_clear_buffer_after_first_data_sync", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 110, - "message": "Sending b'::' to stp.", - "module": "test_stp", - "msecs": 410.17723083496094, - "msg": "Sending %s to stp.", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.30867767333984, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4102855, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 410.28547286987305, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.41691970825195, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4103591, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "WARNING", - "levelno": 30, - "lineno": 113, - "message": "STP: 2nd data sync (3a) received => keep state", - "module": "stp", - "msecs": 410.35914421081543, - "msg": "%s 2nd data sync (%02x) received => keep state", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.49059104919434, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 410.42160987854004, - "msg": "Processing data with an insufficient start pattern (two times sync).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.55305671691895, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.246566772460938e-05 - }, - { - "args": [ - "[[]]", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4107144, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Return value list if processing data_sync twice is correct (Content [[]] and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Return value list if processing data_sync twice", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4105692, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Return value list if processing data_sync twice): [ [ ] ] ()", - "module": "test", - "msecs": 410.5691909790039, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.70063781738281, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Return value list if processing data_sync twice", - "[ [ ] ]", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4106493, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Return value list if processing data_sync twice): result = [ [ ] ] ()", - "module": "test", - "msecs": 410.64929962158203, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.78074645996094, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 410.71438789367676, - "msg": "Return value list if processing data_sync twice is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.84583473205566, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 6.508827209472656e-05 - }, - { - "args": [ - "1", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.410929, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "State after processing data_sync twice is correct (Content 1 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "State after processing data_sync twice", - "1", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4108095, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (State after processing data_sync twice): 1 ()", - "module": "test", - "msecs": 410.8095169067383, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 103.94096374511719, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "State after processing data_sync twice", - "1", - "" - ], - "asctime": "2021-02-28 18:29:56,410", - "created": 1614533396.4108806, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (State after processing data_sync twice): result = 1 ()", - "module": "test", - "msecs": 410.88056564331055, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.01201248168945, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 410.92896461486816, - "msg": "State after processing data_sync twice is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 104.06041145324707, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.839897155761719e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0018558502197265625, - "time_finished": "2021-02-28 18:29:56,410", - "time_start": "2021-02-28 18:29:56,409" - }, - "_pavPUHsZEemK6PYOxF9rHw": { - "args": null, - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3961966, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 30, - "message": "_pavPUHsZEemK6PYOxF9rHw", - "module": "__init__", - "moduleLogger": [], - "msecs": 396.1966037750244, - "msg": "_pavPUHsZEemK6PYOxF9rHw", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.32805061340332, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - 4 - ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3962734, - "exc_info": null, - "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "length_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 15, - "message": "Checking test pattern with length 4.", - "module": "test_hexlify", "moduleLogger": [], - "msecs": 396.2733745574951, - "msg": "Checking test pattern with length %d.", + "msecs": 233.0, + "msg": "Processing wrong data (int)", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 89.40482139587402, + "relativeCreated": 84.27953720092773, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, { "args": [ - "(4)", - "(4): de ad be ef", - 0 + "", + "" ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3963845, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2334173, "exc_text": null, - "filename": "test_hexlify.py", - "funcName": "length_chk", + "filename": "test.py", + "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 23, - "message": "\"(4)\" is in \"(4): de ad be ef\" at position 0", - "module": "test_hexlify", - "moduleLogger": [], - "msecs": 396.38447761535645, - "msg": "\"%s\" is in \"%s\" at position %d", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_hexlify.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.51592445373535, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.00018787384033203125, - "time_finished": "2021-02-28 18:29:56,396", - "time_start": "2021-02-28 18:29:56,396" - }, - "_rhV88Hu9Eemborg4LxXa3A": { - "args": null, - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3965027, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 31, - "message": "_rhV88Hu9Eemborg4LxXa3A", - "module": "__init__", - "moduleLogger": [], - "msecs": 396.5027332305908, - "msg": "_rhV88Hu9Eemborg4LxXa3A", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 89.63418006896973, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - 4 + "lineno": 184, + "message": "Wrong data exception is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Wrong data exception", + "", + "" + ], + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2333097, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Wrong data exception): ()", + "module": "test", + "msecs": 233.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 84.35964584350586, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Wrong data exception", + "=", + "", + "" + ], + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2333646, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Wrong data exception): result = ()", + "module": "test", + "msecs": 233.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 84.41448211669922, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.396576, - "exc_info": null, - "exc_text": null, - "filename": "test_linefeed_filter.py", - "funcName": "returnvalue_chk", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 11, - "message": "Checking test pattern with length 4.", - "module": "test_linefeed_filter", - "moduleLogger": [], - "msecs": 396.575927734375, - "msg": "Checking test pattern with length %d.", + "msecs": 233.0, + "msg": "Wrong data exception is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_linefeed_filter.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 89.7073745727539, + "relativeCreated": 84.46717262268066, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.0 + "time_consumption": 5.269050598144531e-05 }, { "args": [ - "b'test\\\\r\\\\n123\\\\r\\\\n'", + "b''", "" ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3967621, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2336156, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Returnvalue of linefeed_filter is correct (Content b'test\\\\r\\\\n123\\\\r\\\\n' and Type is ).", + "lineno": 184, + "message": "Buffer still empty is correct (Content b'' and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - "Returnvalue of linefeed_filter", - "b'test\\\\r\\\\n123\\\\r\\\\n'", + "Buffer still empty", + "b''", "" ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3966572, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2334986, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Returnvalue of linefeed_filter): b'test\\\\r\\\\n123\\\\r\\\\n' ()", + "message": "Result (Buffer still empty): b'' ()", "module": "test", - "msecs": 396.65722846984863, + "msecs": 233.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 89.78867530822754, + "relativeCreated": 84.5484733581543, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ - "Returnvalue of linefeed_filter", - "b'test\\\\r\\\\n123\\\\r\\\\n'", + "Buffer still empty", + "=", + "b''", "" ], - "asctime": "2021-02-28 18:29:56,396", - "created": 1614533396.3967152, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2335494, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Returnvalue of linefeed_filter): result = b'test\\\\r\\\\n123\\\\r\\\\n' ()", + "message": "Expectation (Buffer still empty): result = b'' ()", "module": "test", - "msecs": 396.7151641845703, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 233.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 89.84661102294922, + "relativeCreated": 84.59925651550293, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 396.7621326446533, - "msg": "Returnvalue of linefeed_filter is correct (Content %s and Type is %s).", + "msecs": 233.0, + "msg": "Buffer still empty is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 89.89357948303223, + "relativeCreated": 84.66553688049316, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.696846008300781e-05 - } - ], - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 0.0002593994140625, - "time_finished": "2021-02-28 18:29:56,396", - "time_start": "2021-02-28 18:29:56,396" - }, - "_wMotUCclEeqsHsnJQYCN8Q": { - "args": null, - "asctime": "2021-02-28 18:29:56,413", - "created": 1614533396.4138484, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 54, - "message": "_wMotUCclEeqsHsnJQYCN8Q", - "module": "__init__", - "moduleLogger": [], - "msecs": 413.8484001159668, - "msg": "_wMotUCclEeqsHsnJQYCN8Q", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 106.9798469543457, - "stack_info": null, - "testcaseLogger": [ + "time_consumption": 6.628036499023438e-05 + }, { "args": [], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.414405, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.2337525, "exc_text": null, "filename": "test_stp.py", - "funcName": "process_after_state_corruption", + "funcName": "process_wrong_data", "levelname": "DEBUG", "levelno": 10, - "lineno": 167, - "message": "Corrupting stp state and processing data.", + "lineno": 74, + "message": "Processing wrong data (str)", "module": "test_stp", - "moduleLogger": [ - { - "args": [ - "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 413.98167610168457, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.11312294006348, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4140284, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 414.0284061431885, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.15985298156738, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "255" - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4140823, - "exc_info": null, - "exc_text": null, - "filename": "test_stp.py", - "funcName": "process_after_state_corruption", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 163, - "message": "Setting state of stp to 255.", - "module": "test_stp", - "msecs": 414.08228874206543, - "msg": "Setting state of stp to %s.", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.21373558044434, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "b': adding value (3a) back to data again and changing state -> STP_STATE_IDLE", - "module": "stp", - "msecs": 414.1833782196045, - "msg": "%s unknown state (%s) => adding value (%02x) back to data again and changing state -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.3148250579834, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - "(2): 74 65" - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4142385, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "__clear_buffer__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 72, - "message": "STP: Chunking \"(2): 74 65\" from buffer", - "module": "stp", - "msecs": 414.23845291137695, - "msg": "%s Chunking \"%s\" from buffer", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.36989974975586, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58 - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4142992, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 101, - "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "module": "stp", - "msecs": 414.29924964904785, - "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.43069648742676, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "STP:", - 58, - 60 - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.414348, - "exc_info": null, - "exc_text": null, - "filename": "stp.py", - "funcName": "process", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 106, - "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "module": "stp", - "msecs": 414.34788703918457, - "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 107.47933387756348, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 414.40510749816895, - "msg": "Corrupting stp state and processing data.", + "moduleLogger": [], + "msecs": 233.0, + "msg": "Processing wrong data (str)", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.53655433654785, + "relativeCreated": 84.80238914489746, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 5.7220458984375e-05 + "time_consumption": 0.0 }, { "args": [ - "[[]]", - "" + "", + "" ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4146397, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.234043, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "Return value list if processing start of a frame after state had been corrupted is correct (Content [[]] and Type is ).", + "lineno": 184, + "message": "Wrong data exception is correct (Content and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - "Return value list if processing start of a frame after state had been corrupted", - "[ [ ] ]", - "" + "Wrong data exception", + "", + "" ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4145138, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.233899, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Return value list if processing start of a frame after state had been corrupted): [ [ ] ] ()", + "message": "Result (Wrong data exception): ()", "module": "test", - "msecs": 414.51382637023926, + "msecs": 233.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.64527320861816, + "relativeCreated": 84.94901657104492, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ - "Return value list if processing start of a frame after state had been corrupted", - "[ [ ] ]", - "" + "Wrong data exception", + "=", + "", + "" ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4145687, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,233", + "created": 1742824173.233979, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Return value list if processing start of a frame after state had been corrupted): result = [ [ ] ] ()", + "message": "Expectation (Wrong data exception): result = ()", "module": "test", - "msecs": 414.5686626434326, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 233.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.70010948181152, + "relativeCreated": 85.02888679504395, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 414.6397113800049, - "msg": "Return value list if processing start of a frame after state had been corrupted is correct (Content %s and Type is %s).", + "msecs": 234.0, + "msg": "Wrong data exception is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.77115821838379, + "relativeCreated": 85.09278297424316, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 7.104873657226562e-05 + "time_consumption": 6.389617919921875e-05 }, { "args": [ - "3", - "" + "b''", + "" ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4148312, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2342422, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, - "message": "State after processing start of a frame after state had been corrupted is correct (Content 3 and Type is ).", + "lineno": 184, + "message": "Buffer still empty is correct (Content b'' and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - "State after processing start of a frame after state had been corrupted", - "3", - "" + "Buffer still empty", + "b''", + "" ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4147344, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2341342, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (State after processing start of a frame after state had been corrupted): 3 ()", + "message": "Result (Buffer still empty): b'' ()", "module": "test", - "msecs": 414.7343635559082, + "msecs": 234.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.86581039428711, + "relativeCreated": 85.18409729003906, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ - "State after processing start of a frame after state had been corrupted", - "3", - "" + "Buffer still empty", + "=", + "b''", + "" ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4147837, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2341855, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (State after processing start of a frame after state had been corrupted): result = 3 ()", + "message": "Expectation (Buffer still empty): result = b'' ()", "module": "test", - "msecs": 414.7837162017822, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 234.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.91516304016113, + "relativeCreated": 85.2353572845459, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 414.83116149902344, - "msg": "State after processing start of a frame after state had been corrupted is correct (Content %s and Type is %s).", + "msecs": 234.0, + "msg": "Buffer still empty is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 107.96260833740234, + "relativeCreated": 85.29210090637207, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.744529724121094e-05 - }, - { - "args": [ - "2", - "" - ], - "asctime": "2021-02-28 18:29:56,415", - "created": 1614533396.4150157, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 144, - "message": "Buffer size after corrupting stp state is correct (Content 2 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Buffer size after corrupting stp state", - "2", - "" - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.414913, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Buffer size after corrupting stp state): 2 ()", - "module": "test", - "msecs": 414.9129390716553, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 108.04438591003418, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - }, - { - "args": [ - "Buffer size after corrupting stp state", - "2", - "" - ], - "asctime": "2021-02-28 18:29:56,414", - "created": 1614533396.4149704, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Buffer size after corrupting stp state): result = 2 ()", - "module": "test", - "msecs": 414.97039794921875, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 108.10184478759766, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread" - } - ], - "msecs": 415.01569747924805, - "msg": "Buffer size after corrupting stp state is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, - "processName": "MainProcess", - "relativeCreated": 108.14714431762695, - "stack_info": null, - "thread": 140152990988096, - "threadName": "MainThread", - "time_consumption": 4.5299530029296875e-05 + "time_consumption": 5.6743621826171875e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.00116729736328125, - "time_finished": "2021-02-28 18:29:56,415", - "time_start": "2021-02-28 18:29:56,413" + "time_consumption": 0.0015799999237060547, + "time_finished": "2025-03-24 14:49:33,234", + "time_start": "2025-03-24 14:49:33,232" }, - "_xOCgkI9yEemg3cv-3xZ25Q": { + "REQ-0013": { "args": null, - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.406345, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2344317, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 50, - "message": "_xOCgkI9yEemg3cv-3xZ25Q", + "lineno": 327, + "message": "REQ-0013", "module": "__init__", "moduleLogger": [], - "msecs": 406.3448905944824, - "msg": "_xOCgkI9yEemg3cv-3xZ25Q", + "msecs": 234.0, + "msg": "REQ-0013", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 99.47633743286133, + "relativeCreated": 85.48164367675781, "stack_info": null, "testcaseLogger": [ { "args": [ "b'::>'" ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.407388, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2350852, "exc_text": null, "filename": "test_stp.py", "funcName": "process_frame_pattern_chk", @@ -18143,26 +4060,25 @@ "STP:", 58 ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.406528, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2345433, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 101, + "lineno": 95, "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", "module": "stp", - "msecs": 406.5279960632324, + "msecs": 234.0, "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 99.65944290161133, + "relativeCreated": 85.59322357177734, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18171,26 +4087,25 @@ 58, 60 ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.4066148, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2346146, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 106, + "lineno": 100, "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", "module": "stp", - "msecs": 406.6147804260254, + "msecs": 234.0, "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 99.7462272644043, + "relativeCreated": 85.66451072692871, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18198,26 +4113,25 @@ "STP:", 58 ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.406742, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2347004, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 117, + "lineno": 111, "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", "module": "stp", - "msecs": 406.7420959472656, + "msecs": 234.0, "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 99.87354278564453, + "relativeCreated": 85.75034141540527, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18226,26 +4140,25 @@ 58, 61 ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.4068224, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2347524, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 132, + "lineno": 126, "message": "STP: store sync pattern (3a 3d) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", "module": "stp", - "msecs": 406.82244300842285, + "msecs": 234.0, "msg": "%s store sync pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 99.95388984680176, + "relativeCreated": 85.80231666564941, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18253,26 +4166,25 @@ "STP:", 58 ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.406907, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2348108, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 117, + "lineno": 111, "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", "module": "stp", - "msecs": 406.9070816040039, + "msecs": 234.0, "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.03852844238281, + "relativeCreated": 85.8607292175293, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18281,26 +4193,25 @@ 58, 61 ], - "asctime": "2021-02-28 18:29:56,406", - "created": 1614533396.4069953, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2348611, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 132, + "lineno": 126, "message": "STP: store sync pattern (3a 3d) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", "module": "stp", - "msecs": 406.9952964782715, + "msecs": 234.0, "msg": "%s store sync pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.12674331665039, + "relativeCreated": 85.91103553771973, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18308,26 +4219,25 @@ "STP:", 58 ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.4070776, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2349124, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 117, + "lineno": 111, "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", "module": "stp", - "msecs": 407.0775508880615, + "msecs": 234.0, "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.20899772644043, + "relativeCreated": 85.96229553222656, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18336,26 +4246,25 @@ 58, 62 ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.4071503, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,234", + "created": 1742824173.2349656, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "DEBUG", "levelno": 10, - "lineno": 127, + "lineno": 121, "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", "module": "stp", - "msecs": 407.1502685546875, + "msecs": 234.0, "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.2817153930664, + "relativeCreated": 86.01546287536621, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { @@ -18363,55 +4272,53 @@ "STP:", "(21): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 3a 3c 73 74 70 3a 3e" ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.4072626, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2350316, "exc_text": null, "filename": "stp.py", "funcName": "process", "levelname": "INFO", "levelno": 20, - "lineno": 148, + "lineno": 142, "message": "STP: message identified - (21): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 3a 3c 73 74 70 3a 3e", "module": "stp", - "msecs": 407.26256370544434, + "msecs": 235.0, "msg": "%s message identified - %s", - "name": "root.stringtools.stp", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/stringtools/stp.py", - "process": 57280, + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.39401054382324, + "relativeCreated": 86.08150482177734, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 407.38797187805176, + "msecs": 235.0, "msg": "Processing testframe: \"%s\"", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.51941871643066, + "relativeCreated": 86.1351490020752, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.00012540817260742188 + "time_consumption": 5.364418029785156e-05 }, { "args": [ "[b'testframe for :']", "" ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.4078386, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2353113, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "Processed STP-Frame is correct (Content [b'testframe for :'] and Type is ).", "module": "test", "moduleLogger": [ @@ -18421,9 +4328,8 @@ "[ b'testframe for :' ]", "" ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.4076385, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2351875, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -18432,95 +4338,392 @@ "lineno": 22, "message": "Result (Processed STP-Frame): [ b'testframe for :' ] ()", "module": "test", - "msecs": 407.6385498046875, + "msecs": 235.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.7699966430664, + "relativeCreated": 86.23743057250977, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "Processed STP-Frame", + "=", "[ b'testframe for :' ]", "" ], - "asctime": "2021-02-28 18:29:56,407", - "created": 1614533396.4077382, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2352471, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (Processed STP-Frame): result = [ b'testframe for :' ] ()", "module": "test", - "msecs": 407.73820877075195, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 235.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.86965560913086, + "relativeCreated": 86.29703521728516, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 407.8385829925537, + "msecs": 235.0, "msg": "Processed STP-Frame is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 100.97002983093262, + "relativeCreated": 86.36116981506348, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.00010037422180175781 + "time_consumption": 6.413459777832031e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.001493692398071289, - "time_finished": "2021-02-28 18:29:56,407", - "time_start": "2021-02-28 18:29:56,406" + "time_consumption": 0.0008795261383056641, + "time_finished": "2025-03-24 14:49:33,235", + "time_start": "2025-03-24 14:49:33,234" }, - "_xiZqMI92Eemg3cv-3xZ25Q": { + "REQ-0014": { "args": null, - "asctime": "2021-02-28 18:29:56,401", - "created": 1614533396.4019523, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2354817, "exc_text": null, "filename": "__init__.py", - "funcName": "testrun", + "funcName": "testCase", "levelname": "INFO", "levelno": 20, - "lineno": 47, - "message": "_xiZqMI92Eemg3cv-3xZ25Q", + "lineno": 327, + "message": "REQ-0014", "module": "__init__", "moduleLogger": [], - "msecs": 401.95226669311523, - "msg": "_xiZqMI92Eemg3cv-3xZ25Q", + "msecs": 235.0, + "msg": "REQ-0014", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/__init__.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.08371353149414, + "relativeCreated": 86.5316390991211, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "b'_:'" + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2359743, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_frame_data_before_chk", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 46, + "message": "Processing testframe: \"b'_:'\"", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "STP:", + 95 + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2356071, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "WARNING", + "levelno": 30, + "lineno": 97, + "message": "STP: no data sync (5f) received => ignoring byte", + "module": "stp", + "msecs": 235.0, + "msg": "%s no data sync (%02x) received => ignoring byte", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 86.65704727172852, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2356665, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 95, + "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 235.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 86.7164134979248, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2357175, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 235.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 86.76743507385254, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2358046, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 111, + "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "module": "stp", + "msecs": 235.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 86.85445785522461, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 62 + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2358613, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 121, + "message": "STP: end pattern (3a 3e) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", + "module": "stp", + "msecs": 235.0, + "msg": "%s end pattern (%02x %02x) received => storing message and changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 86.91120147705078, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + "(17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70" + ], + "asctime": "2025-03-24 14:49:33,235", + "created": 1742824173.2359252, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "STP: message identified - (17): 74 65 73 74 66 72 61 6d 65 20 66 6f 72 20 73 74 70", + "module": "stp", + "msecs": 235.0, + "msg": "%s message identified - %s", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 86.97509765625, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 235.0, + "msg": "Processing testframe: \"%s\"", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.02421188354492, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.9114227294921875e-05 + }, + { + "args": [ + "[b'testframe for stp']", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.236192, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Processed STP-Frame is correct (Content [b'testframe for stp'] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Processed STP-Frame", + "[ b'testframe for stp' ]", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2360704, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Processed STP-Frame): [ b'testframe for stp' ] ()", + "module": "test", + "msecs": 236.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.12029457092285, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Processed STP-Frame", + "=", + "[ b'testframe for stp' ]", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2361267, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Processed STP-Frame): result = [ b'testframe for stp' ] ()", + "module": "test", + "msecs": 236.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.17656135559082, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 236.0, + "msg": "Processed STP-Frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.24188804626465, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.532669067382812e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0007102489471435547, + "time_finished": "2025-03-24 14:49:33,236", + "time_start": "2025-03-24 14:49:33,235" + }, + "REQ-0015": { + "args": null, + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.231141, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0015", + "module": "__init__", + "moduleLogger": [], + "msecs": 231.0, + "msg": "REQ-0015", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 82.19099044799805, "stack_info": null, "testcaseLogger": [ { "args": [ "b'testframe for :'" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4020724, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.2312603, "exc_text": null, "filename": "test_stp.py", "funcName": "build_frame_pattern_chk", @@ -18530,15 +4733,15 @@ "message": "Creating testframe including start and end pattern for \"b'testframe for :'\"", "module": "test_stp", "moduleLogger": [], - "msecs": 402.0724296569824, + "msecs": 231.0, "msg": "Creating testframe including start and end pattern for \"%s\"", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/tests/test_stp.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.20387649536133, + "relativeCreated": 82.31019973754883, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", "time_consumption": 0.0 }, @@ -18547,15 +4750,14 @@ "b'::>'", "" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.402244, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.231449, "exc_text": null, "filename": "test.py", "funcName": "equivalency_chk", "levelname": "INFO", "levelno": 20, - "lineno": 144, + "lineno": 184, "message": "STP-Frame is correct (Content b'::>' and Type is ).", "module": "test", "moduleLogger": [ @@ -18565,9 +4767,8 @@ "b'::>'", "" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.4021523, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.2313457, "exc_text": null, "filename": "test.py", "funcName": "__report_result__", @@ -18576,94 +4777,4726 @@ "lineno": 22, "message": "Result (STP-Frame): b'::>' ()", "module": "test", - "msecs": 402.15229988098145, + "msecs": 231.0, "msg": "Result (%s): %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.28374671936035, + "relativeCreated": 82.39555358886719, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" }, { "args": [ "STP-Frame", + "=", "b'::>'", "" ], - "asctime": "2021-02-28 18:29:56,402", - "created": 1614533396.402199, - "exc_info": null, + "asctime": "2025-03-24 14:49:33,231", + "created": 1742824173.231398, "exc_text": null, "filename": "test.py", - "funcName": "__report_expectation_equivalency__", + "funcName": "__report_expectation__", "levelname": "DEBUG", "levelno": 10, "lineno": 26, "message": "Expectation (STP-Frame): result = b'::>' ()", "module": "test", - "msecs": 402.19902992248535, - "msg": "Expectation (%s): result = %s (%s)", + "msecs": 231.0, + "msg": "Expectation (%s): result %s %s (%s)", "name": "__unittest__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.33047676086426, + "relativeCreated": 82.44800567626953, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread" } ], - "msecs": 402.24409103393555, + "msecs": 231.0, "msg": "STP-Frame is correct (Content %s and Type is %s).", "name": "__tLogger__", - "pathname": "/usr/data/dirk/prj/unittest/stringtools/unittest/src/unittest/test.py", - "process": 57280, + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, "processName": "MainProcess", - "relativeCreated": 95.37553787231445, + "relativeCreated": 82.49878883361816, "stack_info": null, - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 4.506111145019531e-05 + "time_consumption": 5.078315734863281e-05 } ], - "thread": 140152990988096, + "thread": 139775516901440, "threadName": "MainThread", - "time_consumption": 0.0002918243408203125, - "time_finished": "2021-02-28 18:29:56,402", - "time_start": "2021-02-28 18:29:56,401" + "time_consumption": 0.0003077983856201172, + "time_finished": "2025-03-24 14:49:33,231", + "time_start": "2025-03-24 14:49:33,231" + }, + "REQ-0016": { + "args": null, + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2363575, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0016", + "module": "__init__", + "moduleLogger": [], + "msecs": 236.0, + "msg": "REQ-0016", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.40735054016113, + "stack_info": null, + "testcaseLogger": [ + { + "args": [], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.236641, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_no_clear_buffer_after_first_data_sync", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 103, + "message": "Processing data with an insufficient start pattern.", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "b':1'" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2364736, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_no_clear_buffer_after_first_data_sync", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "Sending b':1' to stp.", + "module": "test_stp", + "msecs": 236.0, + "msg": "Sending %s to stp.", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.5234603881836, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2365391, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 95, + "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 236.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.58902549743652, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 49 + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2365918, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "WARNING", + "levelno": 30, + "lineno": 105, + "message": "STP: no start pattern (3a 31) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_IDLE", + "module": "stp", + "msecs": 236.0, + "msg": "%s no start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_IDLE", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.64171600341797, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 236.0, + "msg": "Processing data with an insufficient start pattern.", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.69083023071289, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.9114227294921875e-05 + }, + { + "args": [ + "[[]]", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2368727, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Return value list if processing incorrect start of frame is correct (Content [[]] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Return value list if processing incorrect start of frame", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2367446, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Return value list if processing incorrect start of frame): [ [ ] ] ()", + "module": "test", + "msecs": 236.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.79454231262207, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Return value list if processing incorrect start of frame", + "=", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2368026, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Return value list if processing incorrect start of frame): result = [ [ ] ] ()", + "module": "test", + "msecs": 236.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.85247802734375, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 236.0, + "msg": "Return value list if processing incorrect start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 87.92257308959961, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 7.009506225585938e-05 + }, + { + "args": [ + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2370584, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "State after processing incorrect start of frame is correct (Content 0 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "State after processing incorrect start of frame", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,236", + "created": 1742824173.2369578, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (State after processing incorrect start of frame): 0 ()", + "module": "test", + "msecs": 236.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.00768852233887, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "State after processing incorrect start of frame", + "=", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.237009, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (State after processing incorrect start of frame): result = 0 ()", + "module": "test", + "msecs": 237.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.0589485168457, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 237.0, + "msg": "State after processing incorrect start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.10830116271973, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.935264587402344e-05 + }, + { + "args": [], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.23729, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_no_clear_buffer_after_first_data_sync", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 113, + "message": "Processing data with an insufficient start pattern (two times sync).", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "b'::'" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.237133, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_no_clear_buffer_after_first_data_sync", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 110, + "message": "Sending b'::' to stp.", + "module": "test_stp", + "msecs": 237.0, + "msg": "Sending %s to stp.", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.18292617797852, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2371914, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 95, + "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 237.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.2413387298584, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2372417, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "WARNING", + "levelno": 30, + "lineno": 107, + "message": "STP: 2nd data sync (3a) received => keep state", + "module": "stp", + "msecs": 237.0, + "msg": "%s 2nd data sync (%02x) received => keep state", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.29164505004883, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 237.0, + "msg": "Processing data with an insufficient start pattern (two times sync).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.33980560302734, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.8160552978515625e-05 + }, + { + "args": [ + "[[]]", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2374961, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Return value list if processing data_sync twice is correct (Content [[]] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Return value list if processing data_sync twice", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2373784, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Return value list if processing data_sync twice): [ [ ] ] ()", + "module": "test", + "msecs": 237.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.42825889587402, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Return value list if processing data_sync twice", + "=", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2374318, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Return value list if processing data_sync twice): result = [ [ ] ] ()", + "module": "test", + "msecs": 237.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.48166465759277, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 237.0, + "msg": "Return value list if processing data_sync twice is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.5460376739502, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.437301635742188e-05 + }, + { + "args": [ + "1", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2377057, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "State after processing data_sync twice is correct (Content 1 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "State after processing data_sync twice", + "1", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2375884, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (State after processing data_sync twice): 1 ()", + "module": "test", + "msecs": 237.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.6383056640625, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "State after processing data_sync twice", + "=", + "1", + "" + ], + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.237655, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (State after processing data_sync twice): result = 1 ()", + "module": "test", + "msecs": 237.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.70482444763184, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 237.0, + "msg": "State after processing data_sync twice is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.75560760498047, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.078315734863281e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.001348257064819336, + "time_finished": "2025-03-24 14:49:33,237", + "time_start": "2025-03-24 14:49:33,236" + }, + "REQ-0017": { + "args": null, + "asctime": "2025-03-24 14:49:33,237", + "created": 1742824173.2378852, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0017", + "module": "__init__", + "moduleLogger": [], + "msecs": 237.0, + "msg": "REQ-0017", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 88.93513679504395, + "stack_info": null, + "testcaseLogger": [ + { + "args": [], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.23834, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_incorrect_end_frame_pattern", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 126, + "message": "Processing data with an insufficient end pattern.", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 238.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.12181854248047, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.238124, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 238.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.17379379272461, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2381852, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 111, + "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "module": "stp", + "msecs": 238.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.23506736755371, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 100 + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2382364, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "WARNING", + "levelno": 30, + "lineno": 134, + "message": "STP: data (64) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", + "module": "stp", + "msecs": 238.0, + "msg": "%s data (%02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_IDLE", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.28632736206055, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + "(2): 74 65" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2382908, + "exc_text": null, + "filename": "stp.py", + "funcName": "__clear_buffer__", + "levelname": "WARNING", + "levelno": 30, + "lineno": 72, + "message": "STP: Chunking \"(2): 74 65\" from buffer", + "module": "stp", + "msecs": 238.0, + "msg": "%s Chunking \"%s\" from buffer", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.3406867980957, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 238.0, + "msg": "Processing data with an insufficient end pattern.", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.38980102539062, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.9114227294921875e-05 + }, + { + "args": [ + "[[]]", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2385557, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Return value list if processing data_sync and data again after start of frame is correct (Content [[]] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Return value list if processing data_sync and data again after start of frame", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2384317, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Return value list if processing data_sync and data again after start of frame): [ [ ] ] ()", + "module": "test", + "msecs": 238.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.48159217834473, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Return value list if processing data_sync and data again after start of frame", + "=", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2384884, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Return value list if processing data_sync and data again after start of frame): result = [ [ ] ] ()", + "module": "test", + "msecs": 238.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.5383358001709, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 238.0, + "msg": "Return value list if processing data_sync and data again after start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.60556983947754, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.723403930664062e-05 + }, + { + "args": [ + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2387378, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "State after processing data_sync and data again after start of frame is correct (Content 0 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "State after processing data_sync and data again after start of frame", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2386382, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (State after processing data_sync and data again after start of frame): 0 ()", + "module": "test", + "msecs": 238.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.68806266784668, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "State after processing data_sync and data again after start of frame", + "=", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.238689, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (State after processing data_sync and data again after start of frame): result = 0 ()", + "module": "test", + "msecs": 238.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.73884582519531, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 238.0, + "msg": "State after processing data_sync and data again after start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.78772163391113, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.887580871582031e-05 + }, + { + "args": [ + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2389426, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Buffer size after processing data with insufficient end pattern is correct (Content 0 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Buffer size after processing data with insufficient end pattern", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.2388139, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Buffer size after processing data with insufficient end pattern): 0 ()", + "module": "test", + "msecs": 238.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.86377716064453, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Buffer size after processing data with insufficient end pattern", + "=", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,238", + "created": 1742824173.238864, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Buffer size after processing data with insufficient end pattern): result = 0 ()", + "module": "test", + "msecs": 238.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.91384506225586, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 238.0, + "msg": "Buffer size after processing data with insufficient end pattern is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 89.99252319335938, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 7.867813110351562e-05 + }, + { + "args": [], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2393968, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_incorrect_end_frame_pattern", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 138, + "message": "Processing data with an insufficient end pattern (start pattern instead of end pattern).", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 239.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.15417098999023, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.239155, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 239.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.20495414733887, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2392123, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 111, + "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "module": "stp", + "msecs": 239.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.26217460632324, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2392824, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "WARNING", + "levelno": 30, + "lineno": 116, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 239.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.3322696685791, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + "(2): 74 65" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2393405, + "exc_text": null, + "filename": "stp.py", + "funcName": "__clear_buffer__", + "levelname": "WARNING", + "levelno": 30, + "lineno": 72, + "message": "STP: Chunking \"(2): 74 65\" from buffer", + "module": "stp", + "msecs": 239.0, + "msg": "%s Chunking \"%s\" from buffer", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.39044380187988, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 239.0, + "msg": "Processing data with an insufficient end pattern (start pattern instead of end pattern).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.44671058654785, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.626678466796875e-05 + }, + { + "args": [ + "[[]]", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2396147, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Return value list if processing 2nd start of frame is correct (Content [[]] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Return value list if processing 2nd start of frame", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2394927, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Return value list if processing 2nd start of frame): [ [ ] ] ()", + "module": "test", + "msecs": 239.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.54255485534668, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Return value list if processing 2nd start of frame", + "=", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2395496, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Return value list if processing 2nd start of frame): result = [ [ ] ] ()", + "module": "test", + "msecs": 239.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.59953689575195, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 239.0, + "msg": "Return value list if processing 2nd start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.66462516784668, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.508827209472656e-05 + }, + { + "args": [ + "3", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2398481, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "State after processing 2nd start of frame is correct (Content 3 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "State after processing 2nd start of frame", + "3", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2397256, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (State after processing 2nd start of frame): 3 ()", + "module": "test", + "msecs": 239.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.7754898071289, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "State after processing 2nd start of frame", + "=", + "3", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2397814, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (State after processing 2nd start of frame): result = 3 ()", + "module": "test", + "msecs": 239.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.83127975463867, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 239.0, + "msg": "State after processing 2nd start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.89803695678711, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.67572021484375e-05 + }, + { + "args": [ + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2400892, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Buffer size after processing 2nd start of frame is correct (Content 0 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Buffer size after processing 2nd start of frame", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,239", + "created": 1742824173.2399437, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Buffer size after processing 2nd start of frame): 0 ()", + "module": "test", + "msecs": 239.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 90.99364280700684, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Buffer size after processing 2nd start of frame", + "=", + "0", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2400165, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Buffer size after processing 2nd start of frame): result = 0 ()", + "module": "test", + "msecs": 240.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.06636047363281, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 240.0, + "msg": "Buffer size after processing 2nd start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.13907814025879, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 7.271766662597656e-05 + }, + { + "args": [], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2406037, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_incorrect_end_frame_pattern", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 150, + "message": "Processing data with an insufficient end pattern (two times sync instead of end pattern).", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 240.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.31312370300293, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2403219, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 240.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.37177467346191, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2404041, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 111, + "message": "STP: data sync (3a) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "module": "stp", + "msecs": 240.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_STORE_DATA -> STP_STATE_ESCAPE_2", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.45402908325195, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2404933, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "WARNING", + "levelno": 30, + "lineno": 130, + "message": "STP: second data sync (3a) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 240.0, + "msg": "%s second data sync (%02x) received => changing state STP_STATE_ESCAPE_2 -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.54319763183594, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + "(2): 74 65" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2405536, + "exc_text": null, + "filename": "stp.py", + "funcName": "__clear_buffer__", + "levelname": "WARNING", + "levelno": 30, + "lineno": 72, + "message": "STP: Chunking \"(2): 74 65\" from buffer", + "module": "stp", + "msecs": 240.0, + "msg": "%s Chunking \"%s\" from buffer", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.60351753234863, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 240.0, + "msg": "Processing data with an insufficient end pattern (two times sync instead of end pattern).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.65358543395996, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.0067901611328125e-05 + }, + { + "args": [ + "[[]]", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2408412, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Return value list if processing data_sync twice after start of frame is correct (Content [[]] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Return value list if processing data_sync twice after start of frame", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2407112, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Return value list if processing data_sync twice after start of frame): [ [ ] ] ()", + "module": "test", + "msecs": 240.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.76111221313477, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Return value list if processing data_sync twice after start of frame", + "=", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2407744, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Return value list if processing data_sync twice after start of frame): result = [ [ ] ] ()", + "module": "test", + "msecs": 240.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.82429313659668, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 240.0, + "msg": "Return value list if processing data_sync twice after start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.89105033874512, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.67572021484375e-05 + }, + { + "args": [ + "1", + "" + ], + "asctime": "2025-03-24 14:49:33,241", + "created": 1742824173.2410264, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "State after processing data_sync twice after start of frame is correct (Content 1 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "State after processing data_sync twice after start of frame", + "1", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.2409256, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (State after processing data_sync twice after start of frame): 1 ()", + "module": "test", + "msecs": 240.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 91.97545051574707, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "State after processing data_sync twice after start of frame", + "=", + "1", + "" + ], + "asctime": "2025-03-24 14:49:33,240", + "created": 1742824173.240977, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (State after processing data_sync twice after start of frame): result = 1 ()", + "module": "test", + "msecs": 240.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.02694892883301, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 241.0, + "msg": "State after processing data_sync twice after start of frame is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.07630157470703, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.935264587402344e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.003141164779663086, + "time_finished": "2025-03-24 14:49:33,241", + "time_start": "2025-03-24 14:49:33,237" + }, + "REQ-0018": { + "args": null, + "asctime": "2025-03-24 14:49:33,241", + "created": 1742824173.241259, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0018", + "module": "__init__", + "moduleLogger": [], + "msecs": 241.0, + "msg": "REQ-0018", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.30899810791016, + "stack_info": null, + "testcaseLogger": [ + { + "args": [], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2422183, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_after_state_corruption", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 167, + "message": "Corrupting stp state and processing data.", + "module": "test_stp", + "moduleLogger": [ + { + "args": [ + "b': changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 241.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.52166748046875, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,241", + "created": 1742824173.241554, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 241.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.60392189025879, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "255" + ], + "asctime": "2025-03-24 14:49:33,241", + "created": 1742824173.24167, + "exc_text": null, + "filename": "test_stp.py", + "funcName": "process_after_state_corruption", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 163, + "message": "Setting state of stp to 255.", + "module": "test_stp", + "msecs": 241.0, + "msg": "Setting state of stp to %s.", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.71979331970215, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "b': adding value (3a) back to data again and changing state -> STP_STATE_IDLE", + "module": "stp", + "msecs": 241.0, + "msg": "%s unknown state (%s) => adding value (%02x) back to data again and changing state -> STP_STATE_IDLE", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 92.93580055236816, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + "(2): 74 65" + ], + "asctime": "2025-03-24 14:49:33,241", + "created": 1742824173.2419941, + "exc_text": null, + "filename": "stp.py", + "funcName": "__clear_buffer__", + "levelname": "WARNING", + "levelno": 30, + "lineno": 72, + "message": "STP: Chunking \"(2): 74 65\" from buffer", + "module": "stp", + "msecs": 241.0, + "msg": "%s Chunking \"%s\" from buffer", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.04404258728027, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58 + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2420747, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 95, + "message": "STP: data sync (3a) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "module": "stp", + "msecs": 242.0, + "msg": "%s data sync (%02x) received => changing state STP_STATE_IDLE -> STP_STATE_ESCAPE_1", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.1246280670166, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "STP:", + 58, + 60 + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2421257, + "exc_text": null, + "filename": "stp.py", + "funcName": "process", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 100, + "message": "STP: start pattern (3a 3c) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "module": "stp", + "msecs": 242.0, + "msg": "%s start pattern (%02x %02x) received => changing state STP_STATE_ESCAPE_1 -> STP_STATE_STORE_DATA", + "name": "stringtools.stp", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/stringtools/stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.17564964294434, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 242.0, + "msg": "Corrupting stp state and processing data.", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/tests/test_stp.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.26815605163574, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 9.250640869140625e-05 + }, + { + "args": [ + "[[]]", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2424765, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Return value list if processing start of a frame after state had been corrupted is correct (Content [[]] and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Return value list if processing start of a frame after state had been corrupted", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.242337, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Return value list if processing start of a frame after state had been corrupted): [ [ ] ] ()", + "module": "test", + "msecs": 242.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.38688850402832, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Return value list if processing start of a frame after state had been corrupted", + "=", + "[ [ ] ]", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.242401, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Return value list if processing start of a frame after state had been corrupted): result = [ [ ] ] ()", + "module": "test", + "msecs": 242.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.45078468322754, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 242.0, + "msg": "Return value list if processing start of a frame after state had been corrupted is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.52636337280273, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 7.557868957519531e-05 + }, + { + "args": [ + "3", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2427318, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "State after processing start of a frame after state had been corrupted is correct (Content 3 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "State after processing start of a frame after state had been corrupted", + "3", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2426152, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (State after processing start of a frame after state had been corrupted): 3 ()", + "module": "test", + "msecs": 242.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.66512298583984, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "State after processing start of a frame after state had been corrupted", + "=", + "3", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.242677, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (State after processing start of a frame after state had been corrupted): result = 3 ()", + "module": "test", + "msecs": 242.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.72687339782715, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 242.0, + "msg": "State after processing start of a frame after state had been corrupted is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.78170967102051, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.4836273193359375e-05 + }, + { + "args": [ + "2", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2429795, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Buffer size after corrupting stp state is correct (Content 2 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Buffer size after corrupting stp state", + "2", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.2428606, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Buffer size after corrupting stp state): 2 ()", + "module": "test", + "msecs": 242.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.91045570373535, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Buffer size after corrupting stp state", + "=", + "2", + "" + ], + "asctime": "2025-03-24 14:49:33,242", + "created": 1742824173.242927, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Buffer size after corrupting stp state): result = 2 ()", + "module": "test", + "msecs": 242.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 93.97697448730469, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 242.0, + "msg": "Buffer size after corrupting stp state is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 94.02942657470703, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.245208740234375e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.001720428466796875, + "time_finished": "2025-03-24 14:49:33,242", + "time_start": "2025-03-24 14:49:33,241" + }, + "REQ-0019": { + "args": null, + "asctime": "2025-03-24 14:49:33,216", + "created": 1742824173.2166808, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0019", + "module": "__init__", + "moduleLogger": [], + "msecs": 216.0, + "msg": "REQ-0019", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 67.73066520690918, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "'117p'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2170682, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 1.17e-10 is correct (Content '117p' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 1.17e-10", + "'117p'", + "" + ], + "asctime": "2025-03-24 14:49:33,216", + "created": 1742824173.2169266, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 1.17e-10): '117p' ()", + "module": "test", + "msecs": 216.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 67.97647476196289, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 1.17e-10", + "=", + "'117p'", + "" + ], + "asctime": "2025-03-24 14:49:33,216", + "created": 1742824173.2169964, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 1.17e-10): result = '117p' ()", + "module": "test", + "msecs": 216.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.04633140563965, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 217.0, + "msg": "Physical representation for 1.17e-10 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.11809539794922, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 7.176399230957031e-05 + }, + { + "args": [ + "'54n'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2172763, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 5.4e-08 is correct (Content '54n' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 5.4e-08", + "'54n'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2171745, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 5.4e-08): '54n' ()", + "module": "test", + "msecs": 217.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.22443008422852, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 5.4e-08", + "=", + "'54n'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2172275, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 5.4e-08): result = '54n' ()", + "module": "test", + "msecs": 217.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.27735900878906, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 217.0, + "msg": "Physical representation for 5.4e-08 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.32623481750488, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.887580871582031e-05 + }, + { + "args": [ + "'25.3u'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2174897, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 2.53e-05 is correct (Content '25.3u' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 2.53e-05", + "'25.3u'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2173853, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 2.53e-05): '25.3u' ()", + "module": "test", + "msecs": 217.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.4351921081543, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 2.53e-05", + "=", + "'25.3u'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2174428, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 2.53e-05): result = '25.3u' ()", + "module": "test", + "msecs": 217.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.49265098571777, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 217.0, + "msg": "Physical representation for 2.53e-05 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.53961944580078, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.696846008300781e-05 + }, + { + "args": [ + "'100m'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2177022, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 0.1 is correct (Content '100m' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 0.1", + "'100m'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2175837, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 0.1): '100m' ()", + "module": "test", + "msecs": 217.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.6335563659668, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 0.1", + "=", + "'100m'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.217642, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 0.1): result = '100m' ()", + "module": "test", + "msecs": 217.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.69196891784668, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 217.0, + "msg": "Physical representation for 0.1 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.75205039978027, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.008148193359375e-05 + }, + { + "args": [ + "'0'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2179186, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 0 is correct (Content '0' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 0", + "'0'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2178173, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 0): '0' ()", + "module": "test", + "msecs": 217.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.86720657348633, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 0", + "=", + "'0'", + "" + ], + "asctime": "2025-03-24 14:49:33,217", + "created": 1742824173.2178724, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 0): result = '0' ()", + "module": "test", + "msecs": 217.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.92228126525879, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 217.0, + "msg": "Physical representation for 0 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 68.96853446960449, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.6253204345703125e-05 + }, + { + "args": [ + "'1'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2181165, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 1 is correct (Content '1' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 1", + "'1'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2180068, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 1): '1' ()", + "module": "test", + "msecs": 218.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.05674934387207, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 1", + "=", + "'1'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2180557, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 1): result = '1' ()", + "module": "test", + "msecs": 218.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.10562515258789, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 218.0, + "msg": "Physical representation for 1 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.16642189025879, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 6.079673767089844e-05 + }, + { + "args": [ + "'1k'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2183108, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 1000 is correct (Content '1k' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 1000", + "'1k'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.218208, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 1000): '1k' ()", + "module": "test", + "msecs": 218.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.25797462463379, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 1000", + "=", + "'1k'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2182624, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 1000): result = '1k' ()", + "module": "test", + "msecs": 218.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.31233406066895, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 218.0, + "msg": "Physical representation for 1000 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.36073303222656, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.839897155761719e-05 + }, + { + "args": [ + "'1.01M'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2185142, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 1005001 is correct (Content '1.01M' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 1005001", + "'1.01M'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.218407, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 1005001): '1.01M' ()", + "module": "test", + "msecs": 218.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.45681571960449, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 1005001", + "=", + "'1.01M'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2184615, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 1005001): result = '1.01M' ()", + "module": "test", + "msecs": 218.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.51141357421875, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 218.0, + "msg": "Physical representation for 1005001 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.5641040802002, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.269050598144531e-05 + }, + { + "args": [ + "'1G'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2187374, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 1004000000 is correct (Content '1G' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 1004000000", + "'1G'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2186353, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 1004000000): '1G' ()", + "module": "test", + "msecs": 218.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.68522071838379, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 1004000000", + "=", + "'1G'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2186894, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 1004000000): result = '1G' ()", + "module": "test", + "msecs": 218.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.73934173583984, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 218.0, + "msg": "Physical representation for 1004000000 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.78726387023926, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.792213439941406e-05 + }, + { + "args": [ + "'1T'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2189353, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 1003000000000 is correct (Content '1T' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 1003000000000", + "'1T'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.2188375, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 1003000000000): '1T' ()", + "module": "test", + "msecs": 218.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.88739967346191, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 1003000000000", + "=", + "'1T'", + "" + ], + "asctime": "2025-03-24 14:49:33,218", + "created": 1742824173.218888, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 1003000000000): result = '1T' ()", + "module": "test", + "msecs": 218.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.93794441223145, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 218.0, + "msg": "Physical representation for 1003000000000 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 69.98515129089355, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.7206878662109375e-05 + }, + { + "args": [ + "'10P'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.219132, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 10000000000000000 is correct (Content '10P' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 10000000000000000", + "'10P'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2190328, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 10000000000000000): '10P' ()", + "module": "test", + "msecs": 219.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.0826644897461, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 10000000000000000", + "=", + "'10P'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2190833, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 10000000000000000): result = '10P' ()", + "module": "test", + "msecs": 219.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.13320922851562, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 219.0, + "msg": "Physical representation for 10000000000000000 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.18184661865234, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.863739013671875e-05 + }, + { + "args": [ + "'17.17'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2193177, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 17.17 is correct (Content '17.17' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 17.17", + "'17.17'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2192173, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 17.17): '17.17' ()", + "module": "test", + "msecs": 219.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.2672004699707, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 17.17", + "=", + "'17.17'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2192676, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 17.17): result = '17.17' ()", + "module": "test", + "msecs": 219.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.31750679016113, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 219.0, + "msg": "Physical representation for 17.17 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.36757469177246, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.0067901611328125e-05 + }, + { + "args": [ + "'117k'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.219502, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 117000 is correct (Content '117k' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 117000", + "'117k'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.219406, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 117000): '117k' ()", + "module": "test", + "msecs": 219.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.45578956604004, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 117000", + "=", + "'117k'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2194552, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 117000): result = '117k' ()", + "module": "test", + "msecs": 219.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.50514221191406, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 219.0, + "msg": "Physical representation for 117000 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.55187225341797, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.673004150390625e-05 + }, + { + "args": [ + "'117.2'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2196867, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Physical representation for 117.17 is correct (Content '117.2' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Physical representation for 117.17", + "'117.2'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2195866, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Physical representation for 117.17): '117.2' ()", + "module": "test", + "msecs": 219.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.63651084899902, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Physical representation for 117.17", + "=", + "'117.2'", + "" + ], + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.2196364, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Physical representation for 117.17): result = '117.2' ()", + "module": "test", + "msecs": 219.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.68634033203125, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 219.0, + "msg": "Physical representation for 117.17 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.73664665222168, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.030632019042969e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0030059814453125, + "time_finished": "2025-03-24 14:49:33,219", + "time_start": "2025-03-24 14:49:33,216" + }, + "REQ-0020": { + "args": null, + "asctime": "2025-03-24 14:49:33,219", + "created": 1742824173.219894, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0020", + "module": "__init__", + "moduleLogger": [], + "msecs": 219.0, + "msg": "REQ-0020", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 70.94383239746094, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "'00:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2201087, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 59 is correct (Content '00:59' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 59", + "'00:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2200062, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 59): '00:59' ()", + "module": "test", + "msecs": 220.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.05612754821777, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 59", + "=", + "'00:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2200596, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 59): result = '00:59' ()", + "module": "test", + "msecs": 220.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.10953330993652, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 220.0, + "msg": "Time representation for 59 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.15864753723145, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.9114227294921875e-05 + }, + { + "args": [ + "'01:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2202961, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 60 is correct (Content '01:00' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 60", + "'01:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.220198, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 60): '01:00' ()", + "module": "test", + "msecs": 220.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.24781608581543, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 60", + "=", + "'01:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2202485, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 60): result = '01:00' ()", + "module": "test", + "msecs": 220.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.29836082458496, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 220.0, + "msg": "Time representation for 60 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.34604454040527, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.76837158203125e-05 + }, + { + "args": [ + "'59:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.220475, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 3599 is correct (Content '59:59' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 3599", + "'59:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2203796, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 3599): '59:59' ()", + "module": "test", + "msecs": 220.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.42949104309082, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 3599", + "=", + "'59:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.220428, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 3599): result = '59:59' ()", + "module": "test", + "msecs": 220.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.47789001464844, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 220.0, + "msg": "Time representation for 3599 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.52485847473145, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.696846008300781e-05 + }, + { + "args": [ + "'01:00:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.220654, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 3600 is correct (Content '01:00:00' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 3600", + "'01:00:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2205565, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 3600): '01:00:00' ()", + "module": "test", + "msecs": 220.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.60639762878418, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 3600", + "=", + "'01:00:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.220605, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 3600): result = '01:00:00' ()", + "module": "test", + "msecs": 220.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.6547966003418, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 220.0, + "msg": "Time representation for 3600 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.70391082763672, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.9114227294921875e-05 + }, + { + "args": [ + "'23:59:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2208407, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 86399 is correct (Content '23:59:59' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 86399", + "'23:59:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2207437, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 86399): '23:59:59' ()", + "module": "test", + "msecs": 220.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.7935562133789, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 86399", + "=", + "'23:59:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.220794, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 86399): result = '23:59:59' ()", + "module": "test", + "msecs": 220.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.84386253356934, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 220.0, + "msg": "Time representation for 86399 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.89059257507324, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.673004150390625e-05 + }, + { + "args": [ + "'1D'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.2210245, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 86400 is correct (Content '1D' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 86400", + "'1D'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2209258, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 86400): '1D' ()", + "module": "test", + "msecs": 220.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 71.9757080078125, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 86400", + "=", + "'1D'", + "" + ], + "asctime": "2025-03-24 14:49:33,220", + "created": 1742824173.2209752, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 86400): result = '1D' ()", + "module": "test", + "msecs": 220.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.02506065368652, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 221.0, + "msg": "Time representation for 86400 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.07441329956055, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.935264587402344e-05 + }, + { + "args": [ + "'1D 00:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.221203, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 86459 is correct (Content '1D 00:59' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 86459", + "'1D 00:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.2211077, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 86459): '1D 00:59' ()", + "module": "test", + "msecs": 221.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.15762138366699, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 86459", + "=", + "'1D 00:59'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.221156, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 86459): result = '1D 00:59' ()", + "module": "test", + "msecs": 221.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.20578193664551, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 221.0, + "msg": "Time representation for 86459 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.25298881530762, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.7206878662109375e-05 + }, + { + "args": [ + "'1D 01:00:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.221384, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Time representation for 90000 is correct (Content '1D 01:00:00' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Time representation for 90000", + "'1D 01:00:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.2212884, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Time representation for 90000): '1D 01:00:00' ()", + "module": "test", + "msecs": 221.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.33834266662598, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Time representation for 90000", + "=", + "'1D 01:00:00'", + "" + ], + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.221337, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Time representation for 90000): result = '1D 01:00:00' ()", + "module": "test", + "msecs": 221.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.3869800567627, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 221.0, + "msg": "Time representation for 90000 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.4339485168457, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.696846008300781e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0014901161193847656, + "time_finished": "2025-03-24 14:49:33,221", + "time_start": "2025-03-24 14:49:33,219" + }, + "REQ-0021": { + "args": null, + "asctime": "2025-03-24 14:49:33,221", + "created": 1742824173.2215443, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testCase", + "levelname": "INFO", + "levelno": 20, + "lineno": 327, + "message": "REQ-0021", + "module": "__init__", + "moduleLogger": [], + "msecs": 221.0, + "msg": "REQ-0021", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/report/__init__.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 72.59416580200195, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "'87/5'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2221496, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Fraction representation for 17.4 is correct (Content '87/5' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Fraction representation for 17.4", + "'87/5'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2220228, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Fraction representation for 17.4): '87/5' ()", + "module": "test", + "msecs": 222.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.07267189025879, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Fraction representation for 17.4", + "=", + "'87/5'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2220953, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Fraction representation for 17.4): result = '87/5' ()", + "module": "test", + "msecs": 222.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.14515113830566, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 222.0, + "msg": "Fraction representation for 17.4 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.19951057434082, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.435943603515625e-05 + }, + { + "args": [ + "'1/4'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2223928, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Fraction representation for 0.25 is correct (Content '1/4' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Fraction representation for 0.25", + "'1/4'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2222826, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Fraction representation for 0.25): '1/4' ()", + "module": "test", + "msecs": 222.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.33254814147949, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Fraction representation for 0.25", + "=", + "'1/4'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2223427, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Fraction representation for 0.25): result = '1/4' ()", + "module": "test", + "msecs": 222.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.39262962341309, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 222.0, + "msg": "Fraction representation for 0.25 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.44269752502441, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.0067901611328125e-05 + }, + { + "args": [ + "'1/10'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2226632, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Fraction representation for 0.1 is correct (Content '1/10' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Fraction representation for 0.1", + "'1/10'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2225425, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Fraction representation for 0.1): '1/10' ()", + "module": "test", + "msecs": 222.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.5924243927002, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Fraction representation for 0.1", + "=", + "'1/10'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2226126, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Fraction representation for 0.1): result = '1/10' ()", + "module": "test", + "msecs": 222.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.66251945495605, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 222.0, + "msg": "Fraction representation for 0.1 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.71306419372559, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 5.054473876953125e-05 + }, + { + "args": [ + "'1/60'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2228992, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 184, + "message": "Fraction representation for 0.01666667 is correct (Content '1/60' and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Fraction representation for 0.01666667", + "'1/60'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.222796, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Fraction representation for 0.01666667): '1/60' ()", + "module": "test", + "msecs": 222.0, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.84586334228516, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + }, + { + "args": [ + "Fraction representation for 0.01666667", + "=", + "'1/60'", + "" + ], + "asctime": "2025-03-24 14:49:33,222", + "created": 1742824173.2228498, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Fraction representation for 0.01666667): result = '1/60' ()", + "module": "test", + "msecs": 222.0, + "msg": "Expectation (%s): result %s %s (%s)", + "name": "__unittest__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.89974594116211, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread" + } + ], + "msecs": 222.0, + "msg": "Fraction representation for 0.01666667 is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "/home/dirk/my_repositories/unittest/stringtools/unittest/src/unittest/test.py", + "process": 317297, + "processName": "MainProcess", + "relativeCreated": 73.94909858703613, + "stack_info": null, + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 4.935264587402344e-05 + } + ], + "thread": 139775516901440, + "threadName": "MainThread", + "time_consumption": 0.0013549327850341797, + "time_finished": "2025-03-24 14:49:33,222", + "time_start": "2025-03-24 14:49:33,221" } }, "testrun_id": "p3", - "time_consumption": 0.021813154220581055, + "time_consumption": 0.022591114044189453, "uid_list_sorted": [ - "_dB5IoEaTEeq5fPlXIeQCXQ", - "_hpUmwEaTEeq5fPlXIeQCXQ", - "_iXxBIEaTEeq5fPlXIeQCXQ", - "_XzMFcHYZEem_kd-7nxt1sg", - "_pavPUHsZEemK6PYOxF9rHw", - "_rhV88Hu9Eemborg4LxXa3A", - "_9ahP4Hu7Eemborg4LxXa3A", - "_fp-i0Hu8Eemborg4LxXa3A", - "_Y_h3gH5CEemxr4bbKXhxkg", - "_G40UUH5DEemxr4bbKXhxkg", - "_QjJiIIwZEem5qYOdmXl77A", - "_ZhyRAI9OEemAMMFgxXT6lA", - "_-yWo4I9sEemg3cv-3xZ25Q", - "_xiZqMI92Eemg3cv-3xZ25Q", - "_Bd9TgI9tEemg3cv-3xZ25Q", - "_NpOWgI9tEemg3cv-3xZ25Q", - "_xOCgkI9yEemg3cv-3xZ25Q", - "_5_z4MI9yEemg3cv-3xZ25Q", - "_n3BdUCcREeqsHsnJQYCN8Q", - "_dpJzwCcUEeqsHsnJQYCN8Q", - "_wMotUCclEeqsHsnJQYCN8Q" + "REQ-0019", + "REQ-0020", + "REQ-0021", + "REQ-0001", + "REQ-0002", + "REQ-0005", + "REQ-0003", + "REQ-0004", + "REQ-0006", + "REQ-0007", + "REQ-0008", + "REQ-0009", + "REQ-0010", + "REQ-0015", + "REQ-0011", + "REQ-0012", + "REQ-0013", + "REQ-0014", + "REQ-0016", + "REQ-0017", + "REQ-0018" ] } ], "unittest_information": { - "Version": "e82636461580a46d22b3bb33660ea78a" + "Version": "68554cbff580852aac9c6e233a23a458" } } \ No newline at end of file diff --git a/_testresults_/unittest.pdf b/_testresults_/unittest.pdf index 23ac9f0cb083338ce1ad6f2f44dda02f290c76df..e139023d7cd8aeb4cae073168987ee6e3f9beb5e 100644 GIT binary patch delta 184229 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 z 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 delta 230728 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