From 1c06aab615831d19b6943dbc4921cf845c76f454 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Mon, 3 Feb 2020 00:03:58 +0100 Subject: [PATCH] Release: 8ad0730237b133d3d03c875bf7f97bba --- __init__.py | 26 +- _testresults_/coverage.xml | 157 +- _testresults_/unittest.json | 7094 ++++++++++++++++++++--------------- _testresults_/unittest.pdf | Bin 227954 -> 239315 bytes convert.py | 2 +- metadata.py | 5 +- 6 files changed, 4193 insertions(+), 3091 deletions(-) diff --git a/__init__.py b/__init__.py index 8a462b0..b2cb05a 100644 --- a/__init__.py +++ b/__init__.py @@ -24,8 +24,9 @@ media (Media Tools) """ __DEPENDENCIES__ = [] +import io import logging -from PIL import Image, ImageEnhance +from PIL import Image, ImageEnhance, ExifTags logger_name = 'MEDIA' logger = logging.getLogger(logger_name) @@ -106,6 +107,13 @@ class image(object): self._im = get_pil_image(media_instance) if self._im is None: return False + try: + self._exif = dict(self._im._getexif().items()) + except AttributeError: + self._exif = {} + if type(self._im) is not Image.Image: + self._im = self._im.copy() + logger.debug('loading image from %s', repr(media_instance)) return True def save(self, full_path): @@ -119,6 +127,12 @@ class image(object): im.save(fh, 'JPEG') return True + def image_data(self): + im = self._im.copy().convert('RGB') + output = io.BytesIO() + im.save(output, format='JPEG') + return output.getvalue() + def resize(self, max_size): if self._im is None: logger.warning('No image available to be resized') @@ -130,11 +144,19 @@ class image(object): self._im = self._im.resize((int(x * float(max_size) / xy_max), int(y * float(max_size) / xy_max)), Image.NEAREST).rotate(0) return True - def rotate_by_orientation(self, orientation): + def rotate_by_orientation(self, orientation=None): if self._im is None: logger.warning('No image available, rotation not possible') return False + if orientation is None: + exif_tags = dict((v, k) for k, v in ExifTags.TAGS.items()) + try: + orientation = self._exif[exif_tags['Orientation']] + logger.debug("No orientation given, orientation %s extract from exif data", repr(orientation)) + except KeyError: + return False + if orientation == ORIENTATION_HALF_ROTATED: angle = 180 elif orientation == ORIENTATION_LEFT_ROTATED: diff --git a/_testresults_/coverage.xml b/_testresults_/coverage.xml index 6032fa0..15b4d51 100644 --- a/_testresults_/coverage.xml +++ b/_testresults_/coverage.xml @@ -1,23 +1,23 @@ - + - + - + - + - - - + + + @@ -40,106 +40,126 @@ - + - - - - - - - - - + + + + + + + + + - + - + - - - - + + + + - - - + + + + - + - + + - - + + - + - + - - + - + + - - + + - - + - - + + + - + - + + - + + + - + - + - - - - + + + + + - - - - - + + + - + + + + + + + + + + + + + + + + + @@ -197,7 +217,7 @@ - + @@ -334,28 +354,31 @@ + + - - + + - - - + - + - + - + + + - - + + + diff --git a/_testresults_/unittest.json b/_testresults_/unittest.json index fa62312..0d3c9e1 100644 --- a/_testresults_/unittest.json +++ b/_testresults_/unittest.json @@ -1,11 +1,11 @@ { "coverage_information": [ { - "branch_coverage": 96.43, + "branch_coverage": 96.67, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media", "files": [ { - "branch_coverage": 96.43, + "branch_coverage": 96.67, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/__init__.py", "fragments": [ { @@ -35,258 +35,218 @@ }, { "coverage_state": "covered", - "end": 28, + "end": 29, "start": 27 }, { "coverage_state": "clean", - "end": 29, - "start": 29 - }, - { - "coverage_state": "covered", - "end": 31, + "end": 30, "start": 30 }, + { + "coverage_state": "covered", + "end": 32, + "start": 31 + }, { "coverage_state": "clean", - "end": 33, - "start": 32 + "end": 34, + "start": 33 }, { "coverage_state": "covered", - "end": 34, - "start": 34 - }, - { - "coverage_state": "clean", - "end": 36, + "end": 35, "start": 35 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 37, - "start": 37 + "start": 36 }, { - "coverage_state": "clean", - "end": 40, + "coverage_state": "covered", + "end": 38, "start": 38 }, - { - "coverage_state": "covered", - "end": 63, - "start": 41 - }, { "coverage_state": "clean", - "end": 65, - "start": 64 + "end": 41, + "start": 39 }, { "coverage_state": "covered", - "end": 68, - "start": 66 + "end": 64, + "start": 42 }, { "coverage_state": "clean", + "end": 66, + "start": 65 + }, + { + "coverage_state": "covered", "end": 69, - "start": 69 + "start": 67 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 70, "start": 70 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 71, "start": 71 }, { - "coverage_state": "covered", - "end": 77, + "coverage_state": "clean", + "end": 72, "start": 72 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 78, - "start": 78 + "start": 73 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 79, "start": 79 }, { - "coverage_state": "clean", - "end": 81, + "coverage_state": "covered", + "end": 80, "start": 80 }, + { + "coverage_state": "clean", + "end": 82, + "start": 81 + }, { "coverage_state": "covered", - "end": 87, - "start": 82 + "end": 88, + "start": 83 }, { "coverage_state": "clean", - "end": 88, - "start": 88 - }, - { - "coverage_state": "covered", - "end": 93, + "end": 89, "start": 89 }, + { + "coverage_state": "covered", + "end": 94, + "start": 90 + }, { "coverage_state": "clean", - "end": 95, - "start": 94 + "end": 96, + "start": 95 }, { "coverage_state": "covered", - "end": 99, - "start": 96 - }, - { - "coverage_state": "clean", "end": 100, - "start": 100 + "start": 97 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 101, "start": 101 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 102, "start": 102 }, { - "coverage_state": "covered", - "end": 104, + "coverage_state": "clean", + "end": 103, "start": 103 }, { - "coverage_state": "clean", + "coverage_state": "covered", "end": 105, - "start": 105 + "start": 104 }, { - "coverage_state": "covered", - "end": 109, + "coverage_state": "clean", + "end": 106, "start": 106 }, + { + "coverage_state": "covered", + "end": 117, + "start": 107 + }, { "coverage_state": "clean", - "end": 110, - "start": 110 + "end": 118, + "start": 118 }, { "coverage_state": "covered", - "end": 114, - "start": 111 + "end": 122, + "start": 119 }, { "coverage_state": "clean", - "end": 115, - "start": 115 + "end": 123, + "start": 123 }, { "coverage_state": "covered", - "end": 120, - "start": 116 + "end": 128, + "start": 124 }, { "coverage_state": "clean", - "end": 121, - "start": 121 + "end": 129, + "start": 129 }, { "coverage_state": "covered", - "end": 125, - "start": 122 + "end": 134, + "start": 130 }, { "coverage_state": "clean", - "end": 126, - "start": 126 + "end": 135, + "start": 135 }, { "coverage_state": "covered", - "end": 131, - "start": 127 + "end": 139, + "start": 136 }, { "coverage_state": "clean", - "end": 132, - "start": 132 + "end": 140, + "start": 140 }, { "coverage_state": "covered", - "end": 136, - "start": 133 + "end": 145, + "start": 141 }, { "coverage_state": "clean", - "end": 137, - "start": 137 + "end": 146, + "start": 146 }, { "coverage_state": "covered", - "end": 143, - "start": 138 - }, - { - "coverage_state": "clean", - "end": 144, - "start": 144 - }, - { - "coverage_state": "covered", - "end": 149, - "start": 145 - }, - { - "coverage_state": "clean", "end": 150, - "start": 150 + "start": 147 }, { - "coverage_state": "covered", - "end": 152, + "coverage_state": "clean", + "end": 151, "start": 151 }, - { - "coverage_state": "clean", - "end": 153, - "start": 153 - }, { "coverage_state": "covered", - "end": 154, - "start": 154 - }, - { - "coverage_state": "partially-covered", - "end": 155, - "start": 155 - }, - { - "coverage_state": "covered", - "end": 156, - "start": 156 - }, - { - "coverage_state": "clean", - "end": 157, - "start": 157 - }, - { - "coverage_state": "uncovered", "end": 158, - "start": 158 + "start": 152 }, { "coverage_state": "clean", @@ -295,38 +255,28 @@ }, { "coverage_state": "covered", - "end": 162, + "end": 165, "start": 160 }, { "coverage_state": "clean", - "end": 164, - "start": 163 + "end": 166, + "start": 166 }, { "coverage_state": "covered", - "end": 168, - "start": 165 - }, - { - "coverage_state": "clean", - "end": 169, - "start": 169 - }, - { - "coverage_state": "covered", - "end": 170, - "start": 170 - }, - { - "coverage_state": "clean", "end": 171, - "start": 171 + "start": 167 + }, + { + "coverage_state": "clean", + "end": 172, + "start": 172 }, { "coverage_state": "covered", "end": 174, - "start": 172 + "start": 173 }, { "coverage_state": "clean", @@ -339,24 +289,44 @@ "start": 176 }, { - "coverage_state": "clean", - "end": 178, + "coverage_state": "partially-covered", + "end": 177, "start": 177 }, { "coverage_state": "covered", + "end": 178, + "start": 178 + }, + { + "coverage_state": "clean", "end": 179, "start": 179 }, { - "coverage_state": "clean", + "coverage_state": "uncovered", "end": 180, "start": 180 }, + { + "coverage_state": "clean", + "end": 181, + "start": 181 + }, + { + "coverage_state": "covered", + "end": 184, + "start": 182 + }, + { + "coverage_state": "clean", + "end": 186, + "start": 185 + }, { "coverage_state": "covered", "end": 190, - "start": 181 + "start": 187 }, { "coverage_state": "clean", @@ -365,18 +335,18 @@ }, { "coverage_state": "covered", - "end": 193, + "end": 192, "start": 192 }, { "coverage_state": "clean", - "end": 194, - "start": 194 + "end": 193, + "start": 193 }, { "coverage_state": "covered", "end": 196, - "start": 195 + "start": 194 }, { "coverage_state": "clean", @@ -390,15 +360,65 @@ }, { "coverage_state": "clean", - "end": null, + "end": 200, "start": 199 + }, + { + "coverage_state": "covered", + "end": 201, + "start": 201 + }, + { + "coverage_state": "clean", + "end": 202, + "start": 202 + }, + { + "coverage_state": "covered", + "end": 212, + "start": 203 + }, + { + "coverage_state": "clean", + "end": 213, + "start": 213 + }, + { + "coverage_state": "covered", + "end": 215, + "start": 214 + }, + { + "coverage_state": "clean", + "end": 216, + "start": 216 + }, + { + "coverage_state": "covered", + "end": 218, + "start": 217 + }, + { + "coverage_state": "clean", + "end": 219, + "start": 219 + }, + { + "coverage_state": "covered", + "end": 220, + "start": 220 + }, + { + "coverage_state": "clean", + "end": null, + "start": 221 } ], - "line_coverage": 99.24, + "line_coverage": 99.33999999999999, "name": "media.__init__.py" }, { - "branch_coverage": 96.43, + "branch_coverage": 96.67, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/common.py", "fragments": [ { @@ -446,7 +466,7 @@ "name": "media.common.py" }, { - "branch_coverage": 96.43, + "branch_coverage": 96.67, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/convert.py", "fragments": [ { @@ -529,7 +549,7 @@ "name": "media.convert.py" }, { - "branch_coverage": 96.43, + "branch_coverage": 96.67, "filepath": "/user_data/data/dirk/prj/unittest/media/pylibs/media/metadata.py", "fragments": [ { @@ -779,76 +799,115 @@ }, { "coverage_state": "covered", - "end": 196, + "end": 199, "start": 188 }, { "coverage_state": "clean", - "end": 198, - "start": 197 + "end": 201, + "start": 200 }, { "coverage_state": "covered", - "end": 201, - "start": 199 - }, - { - "coverage_state": "clean", - "end": 203, + "end": 204, "start": 202 }, + { + "coverage_state": "clean", + "end": 206, + "start": 205 + }, { "coverage_state": "covered", - "end": 214, - "start": 204 + "end": 217, + "start": 207 }, { "coverage_state": "partially-covered", - "end": 215, - "start": 215 + "end": 218, + "start": 218 }, { "coverage_state": "covered", - "end": 218, - "start": 216 - }, - { - "coverage_state": "clean", - "end": 220, + "end": 221, "start": 219 }, + { + "coverage_state": "clean", + "end": 223, + "start": 222 + }, { "coverage_state": "covered", - "end": 224, - "start": 221 + "end": 227, + "start": 224 }, { "coverage_state": "clean", "end": null, - "start": 225 + "start": 228 } ], - "line_coverage": 98.08, + "line_coverage": 98.11, "name": "media.metadata.py" } ], - "line_coverage": 97.59, + "line_coverage": 97.75, "name": "media" } ], "lost_souls": { "item_list": [], - "testcase_list": [ - "Initialisation", - "Join", - "Resize", - "Rotate", - "Save" - ] + "testcase_list": [] }, "specification": { "comment": "Comment", "item_dict": { + "_AdR7EEYDEequ74M7usLaPw": { + "Description": "The class {\\tt image} shall have a method {\\tt rotate\\_by\\_orientation}, which rotates the image by an exif orientation. If no parameter is given, the orientation will be taken out of the loaded image. The method returns {\\tt True} on success and {\\tt False} on failures.", + "Fitcriterion": "", + "Heading": "Rotate", + "ID": "REQ-6", + "last_change": "2020-02-02T23:47:29.986+01:00", + "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", + "system_uid": "_AdR7EEYDEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, + "_CBaAQEYDEequ74M7usLaPw": { + "Description": "The class {\\tt image} shall have a method {\\tt join}, which joins an image to the loaded image. The method returns {\\tt True} on success and {\\tt False} on failures.", + "Heading": "Join", + "ID": "REQ-7", + "last_change": "2020-02-02T23:47:36.859+01:00", + "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", + "system_uid": "_CBaAQEYDEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, + "_DBCGsEYCEequ74M7usLaPw": { + "Description": "The library {\\tt media} shall have a class {\\tt image}. This class shall be able to read from image or video files, pil image instances or from {\\tt media.image} instances itself. The class shall help by some common tasks like rotating, resizing, \\ldots", + "Heading": "Image", + "last_change": "2020-02-02T23:46:21.153+01:00", + "system_type_uid": "_4-K5EHYYEem_kd-7nxt1sg", + "system_uid": "_DBCGsEYCEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, + "_Fv7V4EYCEequ74M7usLaPw": { + "Description": "The class {\\tt image} shall have a method {\\tt load\\_from\\_file}, which creates a copy of an image to the instance. Load from file can handle a filename, but also pil images and media images. The method returns {\\tt True} on success and {\\tt False} on failures.", + "Heading": "Load from File", + "ID": "REQ-2", + "last_change": "2020-02-02T23:47:07.229+01:00", + "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", + "system_uid": "_Fv7V4EYCEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, + "_HGpRMEYCEequ74M7usLaPw": { + "Description": "The class {\\tt image} shall have a method {\\tt save}, which stores the modified image to a given filename. The method returns {\\tt True} on success and {\\tt False} on failures.", + "Heading": "Save", + "ID": "REQ-3", + "last_change": "2020-02-02T23:47:14.322+01:00", + "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", + "system_uid": "_HGpRMEYCEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, "_MR7eOHYYEem_kd-7nxt1sg": { "Heading": "Metadata", "last_change": "2020-01-30T20:32:07.705+01:00", @@ -866,12 +925,37 @@ "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", "system_uid": "_XzMFcHYZEem_kd-7nxt1sg", "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, + "_wvLDcEYCEequ74M7usLaPw": { + "Description": "The class {\\tt image} shall have a method {\\tt image\\_data}, which returns the raw data of the modified image.", + "Heading": "Image data", + "ID": "REQ-4", + "last_change": "2020-02-02T23:44:49.710+01:00", + "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", + "system_uid": "_wvLDcEYCEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" + }, + "_zQ29EEYCEequ74M7usLaPw": { + "Description": "The class {\\tt image} shall have a method {\\tt resize}, which resizes the image. The method returns {\\tt True} on success and {\\tt False} on failures.", + "Heading": "Resize", + "ID": "REQ-5", + "last_change": "2020-02-02T23:47:23.563+01:00", + "system_type_uid": "_MR7eNHYYEem_kd-7nxt1sg", + "system_uid": "_zQ29EEYCEequ74M7usLaPw", + "xml_tag": "{http://www.omg.org/spec/ReqIF/20110401/reqif.xsd}SPEC-OBJECT" } }, "titel": "Title", "uid_list_sorted": [ "_MR7eOHYYEem_kd-7nxt1sg", - "_XzMFcHYZEem_kd-7nxt1sg" + "_XzMFcHYZEem_kd-7nxt1sg", + "_DBCGsEYCEequ74M7usLaPw", + "_Fv7V4EYCEequ74M7usLaPw", + "_HGpRMEYCEequ74M7usLaPw", + "_wvLDcEYCEequ74M7usLaPw", + "_zQ29EEYCEequ74M7usLaPw", + "_AdR7EEYDEequ74M7usLaPw", + "_CBaAQEYDEequ74M7usLaPw" ] }, "system_information": { @@ -890,20 +974,27 @@ "Name": "media", "State": "Released", "Supported Interpreters": "python3", - "Version": "d4bf62e70e70b47431f7471f25637ecf" + "Version": "8ad0730237b133d3d03c875bf7f97bba" }, "testrun_list": [ { "heading_dict": { + "_AdR7EEYDEequ74M7usLaPw": "Rotate", + "_CBaAQEYDEequ74M7usLaPw": "Join", + "_DBCGsEYCEequ74M7usLaPw": "Image", + "_Fv7V4EYCEequ74M7usLaPw": "Load from File", + "_HGpRMEYCEequ74M7usLaPw": "Save", "_MR7eOHYYEem_kd-7nxt1sg": "Metadata", - "_XzMFcHYZEem_kd-7nxt1sg": "Method to get Metadata" + "_XzMFcHYZEem_kd-7nxt1sg": "Method to get Metadata", + "_wvLDcEYCEequ74M7usLaPw": "Image data", + "_zQ29EEYCEequ74M7usLaPw": "Resize" }, "interpreter": "python 3.6.9 (final)", "name": "Default Testsession name", "number_of_failed_tests": 0, "number_of_possibly_failed_tests": 0, - "number_of_successfull_tests": 6, - "number_of_tests": 6, + "number_of_successfull_tests": 7, + "number_of_tests": 7, "testcase_execution_level": 90, "testcase_names": { "0": "Single Test", @@ -912,537 +1003,27 @@ "90": "Full Test (all defined tests)" }, "testcases": { - "Initialisation": { + "_AdR7EEYDEequ74M7usLaPw": { "args": null, - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.5836282, + "asctime": "2020-02-02 23:50:09,701", + "created": 1580683809.7010374, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "testrun", "levelname": "INFO", "levelno": 20, - "lineno": 30, - "message": "Initialisation", + "lineno": 35, + "message": "_AdR7EEYDEequ74M7usLaPw", "module": "__init__", "moduleLogger": [], - "msecs": 583.6281776428223, - "msg": "Initialisation", + "msecs": 701.0374069213867, + "msg": "_AdR7EEYDEequ74M7usLaPw", "name": "__tLogger__", "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 571.4917182922363, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "", - "" - ], - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.5838015, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Type of image stored in instance is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.5837142, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Type of image stored in instance): ()", - "module": "test", - "msecs": 583.7142467498779, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 571.577787399292, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.583761, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Type of image stored in instance): result = ()", - "module": "test", - "msecs": 583.7609767913818, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 571.6245174407959, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 583.8015079498291, - "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 571.6650485992432, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.0531158447265625e-05 - }, - { - "args": [ - "", - "" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.584616, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Type of image stored in instance is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.5844684, - "exc_info": null, - "exc_text": null, - "filename": "convert.py", - "funcName": "get_pil_image", - "levelname": "WARNING", - "levelno": 30, - "lineno": 35, - "message": "Instance type is not supported: ", - "module": "convert", - "msecs": 584.4683647155762, - "msg": "Instance type is not supported: ", - "name": "MEDIA", - "pathname": "src/media/convert.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.3319053649902, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.5845308, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Type of image stored in instance): ()", - "module": "test", - "msecs": 584.5308303833008, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.3943710327148, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.5845745, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Type of image stored in instance): result = ()", - "module": "test", - "msecs": 584.5744609832764, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.4380016326904, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 584.61594581604, - "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.4794864654541, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.1484832763671875e-05 - }, - { - "args": [ - "", - "" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.5848744, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Type of image stored in instance is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.5847173, - "exc_info": null, - "exc_text": null, - "filename": "convert.py", - "funcName": "get_pil_image", - "levelname": "WARNING", - "levelno": 30, - "lineno": 31, - "message": "Filetype is not supported (/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt)", - "module": "convert", - "msecs": 584.7172737121582, - "msg": "Filetype is not supported (%s)", - "name": "MEDIA", - "pathname": "src/media/convert.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.5808143615723, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.5847898, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Type of image stored in instance): ()", - "module": "test", - "msecs": 584.7897529602051, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.6532936096191, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,584", - "created": 1580584170.584838, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Type of image stored in instance): result = ()", - "module": "test", - "msecs": 584.8379135131836, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.7014541625977, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 584.8743915557861, - "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 572.7379322052002, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 3.647804260253906e-05 - }, - { - "args": [ - "", - "" - ], - "asctime": "2020-02-01 20:09:30,694", - "created": 1580584170.6949663, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Type of image stored in instance is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,694", - "created": 1580584170.6947854, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Type of image stored in instance): ()", - "module": "test", - "msecs": 694.7853565216064, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 682.6488971710205, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,694", - "created": 1580584170.694898, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Type of image stored in instance): result = ()", - "module": "test", - "msecs": 694.8978900909424, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 682.7614307403564, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 694.9663162231445, - "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 682.8298568725586, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 6.842613220214844e-05 - }, - { - "args": [ - "", - "" - ], - "asctime": "2020-02-01 20:09:30,980", - "created": 1580584170.9809246, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Type of image stored in instance is correct (Content and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,980", - "created": 1580584170.9806376, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Type of image stored in instance): ()", - "module": "test", - "msecs": 980.6375503540039, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 968.501091003418, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Type of image stored in instance", - "", - "" - ], - "asctime": "2020-02-01 20:09:30,980", - "created": 1580584170.9808495, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Type of image stored in instance): result = ()", - "module": "test", - "msecs": 980.8495044708252, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 968.7130451202393, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 980.9246063232422, - "msg": "Type of image stored in instance is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 968.7881469726562, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 7.510185241699219e-05 - } - ], - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 0.3972964286804199, - "time_finished": "2020-02-01 20:09:30,980", - "time_start": "2020-02-01 20:09:30,583" - }, - "Join": { - "args": null, - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.061742, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 34, - "message": "Join", - "module": "__init__", - "moduleLogger": [], - "msecs": 61.74206733703613, - "msg": "Join", - "name": "__tLogger__", - "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2049.60560798645, + "relativeCreated": 4886.832237243652, "stack_info": null, "testcaseLogger": [ { @@ -1450,1700 +1031,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.061956, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Returnvalue of join method without loading an image is correct (Content False and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.0618377, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "WARNING", - "levelno": 30, - "lineno": 161, - "message": "No image available, joining not possible", - "module": "__init__", - "msecs": 61.83767318725586, - "msg": "No image available, joining not possible", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2049.70121383667, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of join method without loading an image", - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.0618815, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Returnvalue of join method without loading an image): False ()", - "module": "test", - "msecs": 61.88154220581055, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2049.7450828552246, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of join method without loading an image", - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.0619197, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Returnvalue of join method without loading an image): result = False ()", - "module": "test", - "msecs": 61.9196891784668, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2049.783229827881, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 61.955928802490234, - "msg": "Returnvalue of join method without loading an image is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2049.8194694519043, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 3.62396240234375e-05 - }, - { - "args": [ - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,361", - "created": 1580584172.3616211, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Returnvalue of join method with invalid join position is correct (Content False and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 17 - ], - "asctime": "2020-02-01 20:09:32,361", - "created": 1580584172.3613942, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "WARNING", - "levelno": 30, - "lineno": 192, - "message": "Join position value 17 is not supported", - "module": "__init__", - "msecs": 361.39416694641113, - "msg": "Join position value %s is not supported", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2349.257707595825, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of join method with invalid join position", - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,361", - "created": 1580584172.361534, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Returnvalue of join method with invalid join position): False ()", - "module": "test", - "msecs": 361.53411865234375, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2349.397659301758, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of join method with invalid join position", - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,361", - "created": 1580584172.3615794, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Returnvalue of join method with invalid join position): result = False ()", - "module": "test", - "msecs": 361.57941818237305, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2349.442958831787, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 361.6211414337158, - "msg": "Returnvalue of join method with invalid join position is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2349.48468208313, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.172325134277344e-05 - }, - { - "args": [ - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,452", - "created": 1580584172.4528487, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Returnvalue of join method with unknown join file is correct (Content False and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [], - "asctime": "2020-02-01 20:09:32,452", - "created": 1580584172.4526198, - "exc_info": null, - "exc_text": null, - "filename": "convert.py", - "funcName": "get_pil_image", - "levelname": "WARNING", - "levelno": 30, - "lineno": 35, - "message": "Instance type is not supported: ", - "module": "convert", - "msecs": 452.6197910308838, - "msg": "Instance type is not supported: ", - "name": "MEDIA", - "pathname": "src/media/convert.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2440.483331680298, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "None" - ], - "asctime": "2020-02-01 20:09:32,452", - "created": 1580584172.4527113, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "WARNING", - "levelno": 30, - "lineno": 167, - "message": "Image to be joined is not supported None", - "module": "__init__", - "msecs": 452.7113437652588, - "msg": "Image to be joined is not supported %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2440.574884414673, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of join method with unknown join file", - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,452", - "created": 1580584172.4527707, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Returnvalue of join method with unknown join file): False ()", - "module": "test", - "msecs": 452.7707099914551, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2440.634250640869, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of join method with unknown join file", - "False", - "" - ], - "asctime": "2020-02-01 20:09:32,452", - "created": 1580584172.45281, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Returnvalue of join method with unknown join file): result = False ()", - "module": "test", - "msecs": 452.81004905700684, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2440.673589706421, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 452.8486728668213, - "msg": "Returnvalue of join method with unknown join file is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2440.7122135162354, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 3.8623809814453125e-05 - }, - { - "args": [ - "True", - "" - ], - "asctime": "2020-02-01 20:09:32,793", - "created": 1580584172.793418, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 3 - ], - "asctime": "2020-02-01 20:09:32,452", - "created": 1580584172.4529128, - "exc_info": null, - "exc_text": null, - "filename": "test_image.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 98, - "message": "Join with position 3", - "module": "test_image", - "msecs": 452.9128074645996, - "msg": "Join with position %d", - "name": "__unittest__", - "pathname": "src/tests/test_image.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2440.7763481140137, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - 300 - ], - "asctime": "2020-02-01 20:09:32,644", - "created": 1580584172.6443245, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "Resizing picture to max 300 pixel in whatever direction", - "module": "__init__", - "msecs": 644.324541091919, - "msg": "Resizing picture to max %d pixel in whatever direction", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2632.188081741333, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [], - "asctime": "2020-02-01 20:09:32,675", - "created": 1580584172.6753554, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 195, - "message": "Joining two images", - "module": "__init__", - "msecs": 675.3554344177246, - "msg": "Joining two images", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2663.2189750671387, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_3.jpg'" - ], - "asctime": "2020-02-01 20:09:32,725", - "created": 1580584172.7258537, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "save", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 116, - "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_3.jpg'", - "module": "__init__", - "msecs": 725.853681564331, - "msg": "Saving image to %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2713.717222213745, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:32,793", - "created": 1580584172.7932827, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Filecompare): True ()", - "module": "test", - "msecs": 793.2827472686768, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2781.146287918091, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:32,793", - "created": 1580584172.7933729, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", - "module": "test", - "msecs": 793.3728694915771, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2781.236410140991, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 793.4179306030273, - "msg": "Filecompare is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2781.2814712524414, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.506111145019531e-05 - }, - { - "args": [ - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,142", - "created": 1580584173.142833, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 4 - ], - "asctime": "2020-02-01 20:09:32,793", - "created": 1580584172.793484, - "exc_info": null, - "exc_text": null, - "filename": "test_image.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 98, - "message": "Join with position 4", - "module": "test_image", - "msecs": 793.4839725494385, - "msg": "Join with position %d", - "name": "__unittest__", - "pathname": "src/tests/test_image.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2781.3475131988525, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - 300 - ], - "asctime": "2020-02-01 20:09:32,993", - "created": 1580584172.9933403, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "Resizing picture to max 300 pixel in whatever direction", - "module": "__init__", - "msecs": 993.340253829956, - "msg": "Resizing picture to max %d pixel in whatever direction", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 2981.20379447937, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [], - "asctime": "2020-02-01 20:09:33,024", - "created": 1580584173.0246189, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 195, - "message": "Joining two images", - "module": "__init__", - "msecs": 24.618864059448242, - "msg": "Joining two images", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3012.4824047088623, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_4.jpg'" - ], - "asctime": "2020-02-01 20:09:33,075", - "created": 1580584173.0753677, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "save", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 116, - "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_4.jpg'", - "module": "__init__", - "msecs": 75.36768913269043, - "msg": "Saving image to %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3063.2312297821045, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,142", - "created": 1580584173.1427, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Filecompare): True ()", - "module": "test", - "msecs": 142.6999568939209, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3130.563497543335, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,142", - "created": 1580584173.142788, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", - "module": "test", - "msecs": 142.78793334960938, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3130.6514739990234, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 142.83299446105957, - "msg": "Filecompare is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3130.6965351104736, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.506111145019531e-05 - }, - { - "args": [ - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,488", - "created": 1580584173.4889648, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 5 - ], - "asctime": "2020-02-01 20:09:33,142", - "created": 1580584173.1428988, - "exc_info": null, - "exc_text": null, - "filename": "test_image.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 98, - "message": "Join with position 5", - "module": "test_image", - "msecs": 142.8987979888916, - "msg": "Join with position %d", - "name": "__unittest__", - "pathname": "src/tests/test_image.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3130.7623386383057, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - 300 - ], - "asctime": "2020-02-01 20:09:33,338", - "created": 1580584173.3383312, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "Resizing picture to max 300 pixel in whatever direction", - "module": "__init__", - "msecs": 338.3312225341797, - "msg": "Resizing picture to max %d pixel in whatever direction", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3326.1947631835938, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [], - "asctime": "2020-02-01 20:09:33,369", - "created": 1580584173.3696501, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 195, - "message": "Joining two images", - "module": "__init__", - "msecs": 369.65012550354004, - "msg": "Joining two images", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3357.513666152954, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_5.jpg'" - ], - "asctime": "2020-02-01 20:09:33,420", - "created": 1580584173.4202309, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "save", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 116, - "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_5.jpg'", - "module": "__init__", - "msecs": 420.2308654785156, - "msg": "Saving image to %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3408.0944061279297, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,488", - "created": 1580584173.4888318, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Filecompare): True ()", - "module": "test", - "msecs": 488.8317584991455, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3476.6952991485596, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,488", - "created": 1580584173.4889195, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", - "module": "test", - "msecs": 488.9194965362549, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3476.783037185669, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 488.9647960662842, - "msg": "Filecompare is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3476.8283367156982, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.5299530029296875e-05 - }, - { - "args": [ - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,837", - "created": 1580584173.8376875, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 1 - ], - "asctime": "2020-02-01 20:09:33,489", - "created": 1580584173.4890332, - "exc_info": null, - "exc_text": null, - "filename": "test_image.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 98, - "message": "Join with position 1", - "module": "test_image", - "msecs": 489.0332221984863, - "msg": "Join with position %d", - "name": "__unittest__", - "pathname": "src/tests/test_image.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3476.8967628479004, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - 300 - ], - "asctime": "2020-02-01 20:09:33,685", - "created": 1580584173.6854477, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "Resizing picture to max 300 pixel in whatever direction", - "module": "__init__", - "msecs": 685.4476928710938, - "msg": "Resizing picture to max %d pixel in whatever direction", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3673.311233520508, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [], - "asctime": "2020-02-01 20:09:33,716", - "created": 1580584173.7166605, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 195, - "message": "Joining two images", - "module": "__init__", - "msecs": 716.6604995727539, - "msg": "Joining two images", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3704.524040222168, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_1.jpg'" - ], - "asctime": "2020-02-01 20:09:33,767", - "created": 1580584173.7675517, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "save", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 116, - "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_1.jpg'", - "module": "__init__", - "msecs": 767.5516605377197, - "msg": "Saving image to %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3755.415201187134, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,837", - "created": 1580584173.8375463, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Filecompare): True ()", - "module": "test", - "msecs": 837.5463485717773, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3825.4098892211914, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:33,837", - "created": 1580584173.8376412, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", - "module": "test", - "msecs": 837.6412391662598, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3825.504779815674, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 837.6874923706055, - "msg": "Filecompare is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3825.5510330200195, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.6253204345703125e-05 - }, - { - "args": [ - "True", - "" - ], - "asctime": "2020-02-01 20:09:34,202", - "created": 1580584174.202088, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 2 - ], - "asctime": "2020-02-01 20:09:33,837", - "created": 1580584173.8377557, - "exc_info": null, - "exc_text": null, - "filename": "test_image.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 98, - "message": "Join with position 2", - "module": "test_image", - "msecs": 837.7556800842285, - "msg": "Join with position %d", - "name": "__unittest__", - "pathname": "src/tests/test_image.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 3825.6192207336426, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - 300 - ], - "asctime": "2020-02-01 20:09:34,039", - "created": 1580584174.0395095, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "Resizing picture to max 300 pixel in whatever direction", - "module": "__init__", - "msecs": 39.50953483581543, - "msg": "Resizing picture to max %d pixel in whatever direction", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 4027.3730754852295, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [], - "asctime": "2020-02-01 20:09:34,077", - "created": 1580584174.0770307, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "join", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 195, - "message": "Joining two images", - "module": "__init__", - "msecs": 77.03065872192383, - "msg": "Joining two images", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 4064.894199371338, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_2.jpg'" - ], - "asctime": "2020-02-01 20:09:34,134", - "created": 1580584174.1344082, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "save", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 116, - "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_2.jpg'", - "module": "__init__", - "msecs": 134.40823554992676, - "msg": "Saving image to %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 4122.271776199341, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:34,201", - "created": 1580584174.2019513, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Filecompare): True ()", - "module": "test", - "msecs": 201.951265335083, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 4189.814805984497, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Filecompare", - "True", - "" - ], - "asctime": "2020-02-01 20:09:34,202", - "created": 1580584174.202042, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", - "module": "test", - "msecs": 202.0421028137207, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 4189.905643463135, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 202.0881175994873, - "msg": "Filecompare is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 4189.951658248901, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.601478576660156e-05 - } - ], - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 2.140346050262451, - "time_finished": "2020-02-01 20:09:34,202", - "time_start": "2020-02-01 20:09:32,061" - }, - "Resize": { - "args": null, - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.2757187, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 32, - "message": "Resize", - "module": "__init__", - "moduleLogger": [], - "msecs": 275.71868896484375, - "msg": "Resize", - "name": "__tLogger__", - "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1263.5822296142578, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "True", - "" - ], - "asctime": "2020-02-01 20:09:31,382", - "created": 1580584171.3824558, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Returnvalue of successful resize method is correct (Content True and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - 300 - ], - "asctime": "2020-02-01 20:09:31,379", - "created": 1580584171.3791893, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 127, - "message": "Resizing picture to max 300 pixel in whatever direction", - "module": "__init__", - "msecs": 379.18925285339355, - "msg": "Resizing picture to max %d pixel in whatever direction", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1367.0527935028076, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of successful resize method", - "True", - "" - ], - "asctime": "2020-02-01 20:09:31,382", - "created": 1580584171.3823195, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Returnvalue of successful resize method): True ()", - "module": "test", - "msecs": 382.31945037841797, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1370.182991027832, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of successful resize method", - "True", - "" - ], - "asctime": "2020-02-01 20:09:31,382", - "created": 1580584171.382399, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Returnvalue of successful resize method): result = True ()", - "module": "test", - "msecs": 382.3990821838379, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1370.262622833252, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 382.45582580566406, - "msg": "Returnvalue of successful resize method is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1370.3193664550781, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 5.6743621826171875e-05 - }, - { - "args": [ - "300", - "" - ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3834875, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Resulution of resized image is correct (Content 300 and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [ - "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/resized_image.jpg'" - ], - "asctime": "2020-02-01 20:09:31,382", - "created": 1580584171.3825338, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "save", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 116, - "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/resized_image.jpg'", - "module": "__init__", - "msecs": 382.5337886810303, - "msg": "Saving image to %s", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1370.3973293304443, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Resulution of resized image", - "300", - "" - ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3833785, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Resulution of resized image): 300 ()", - "module": "test", - "msecs": 383.3785057067871, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.2420463562012, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Resulution of resized image", - "300", - "" - ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3834407, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Resulution of resized image): result = 300 ()", - "module": "test", - "msecs": 383.4407329559326, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.3042736053467, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 383.4874629974365, - "msg": "Resulution of resized image is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.3510036468506, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 4.673004150390625e-05 - }, - { - "args": [ - "False", - "" - ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3837013, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "equivalency_chk", - "levelname": "INFO", - "levelno": 20, - "lineno": 142, - "message": "Returnvalue of failed resize method is correct (Content False and Type is ).", - "module": "test", - "moduleLogger": [ - { - "args": [], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3835638, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "resize", - "levelname": "WARNING", - "levelno": 30, - "lineno": 124, - "message": "No image available to be resized", - "module": "__init__", - "msecs": 383.563756942749, - "msg": "No image available to be resized", - "name": "MEDIA", - "pathname": "src/media/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.427297592163, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of failed resize method", - "False", - "" - ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.383608, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_result__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 22, - "message": "Result (Returnvalue of failed resize method): False ()", - "module": "test", - "msecs": 383.6081027984619, - "msg": "Result (%s): %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.471643447876, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, - { - "args": [ - "Returnvalue of failed resize method", - "False", - "" - ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3836484, - "exc_info": null, - "exc_text": null, - "filename": "test.py", - "funcName": "__report_expectation_equivalency__", - "levelname": "DEBUG", - "levelno": 10, - "lineno": 26, - "message": "Expectation (Returnvalue of failed resize method): result = False ()", - "module": "test", - "msecs": 383.6483955383301, - "msg": "Expectation (%s): result = %s (%s)", - "name": "__unittest__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.5119361877441, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - } - ], - "msecs": 383.7013244628906, - "msg": "Returnvalue of failed resize method is correct (Content %s and Type is %s).", - "name": "__tLogger__", - "pathname": "src/unittest/test.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.5648651123047, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 5.2928924560546875e-05 - } - ], - "thread": 140094293296960, - "threadName": "MainThread", - "time_consumption": 0.10798263549804688, - "time_finished": "2020-02-01 20:09:31,383", - "time_start": "2020-02-01 20:09:31,275" - }, - "Rotate": { - "args": null, - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3838365, - "exc_info": null, - "exc_text": null, - "filename": "__init__.py", - "funcName": "testrun", - "levelname": "INFO", - "levelno": 20, - "lineno": 33, - "message": "Rotate", - "module": "__init__", - "moduleLogger": [], - "msecs": 383.8365077972412, - "msg": "Rotate", - "name": "__tLogger__", - "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 1371.7000484466553, - "stack_info": null, - "testcaseLogger": [ - { - "args": [ - "False", - "" - ], - "asctime": "2020-02-01 20:09:31,384", - "created": 1580584171.3840265, + "asctime": "2020-02-02 23:50:09,701", + "created": 1580683809.7012637, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3156,26 +1045,26 @@ "moduleLogger": [ { "args": [], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3839104, + "asctime": "2020-02-02 23:50:09,701", + "created": 1580683809.7011278, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "rotate_by_orientation", "levelname": "WARNING", "levelno": 30, - "lineno": 135, + "lineno": 149, "message": "No image available, rotation not possible", "module": "__init__", - "msecs": 383.9104175567627, + "msecs": 701.1277675628662, "msg": "No image available, rotation not possible", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1371.7739582061768, + "relativeCreated": 4886.922597885132, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -3184,8 +1073,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.383953, + "asctime": "2020-02-02 23:50:09,701", + "created": 1580683809.70118, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3195,15 +1084,15 @@ "lineno": 22, "message": "Result (Returnvalue of rotate method without loading an image): False ()", "module": "test", - "msecs": 383.9530944824219, + "msecs": 701.1799812316895, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1371.816635131836, + "relativeCreated": 4886.974811553955, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -3212,8 +1101,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:31,383", - "created": 1580584171.3839903, + "asctime": "2020-02-02 23:50:09,701", + "created": 1580683809.7012227, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3223,37 +1112,37 @@ "lineno": 26, "message": "Expectation (Returnvalue of rotate method without loading an image): result = False ()", "module": "test", - "msecs": 383.9902877807617, + "msecs": 701.2226581573486, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1371.8538284301758, + "relativeCreated": 4887.017488479614, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 384.02652740478516, + "msecs": 701.2636661529541, "msg": "Returnvalue of rotate method without loading an image is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1371.8900680541992, + "relativeCreated": 4887.05849647522, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 3.62396240234375e-05 + "time_consumption": 4.100799560546875e-05 }, { "args": [ "False", "" ], - "asctime": "2020-02-01 20:09:31,491", - "created": 1580584171.4913478, + "asctime": "2020-02-02 23:50:09,989", + "created": 1580683809.9893398, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3264,30 +1153,56 @@ "message": "Returnvalue of rotate method with invalid orientation is correct (Content False and Type is ).", "module": "test", "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:09,988", + "created": 1580683809.9888182, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 988.8181686401367, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5174.612998962402, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, { "args": [ "17" ], - "asctime": "2020-02-01 20:09:31,491", - "created": 1580584171.491096, + "asctime": "2020-02-02 23:50:09,988", + "created": 1580683809.9889963, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "rotate_by_orientation", "levelname": "WARNING", "levelno": 30, - "lineno": 145, + "lineno": 167, "message": "Orientation 17 unknown for rotation", "module": "__init__", - "msecs": 491.09601974487305, + "msecs": 988.9962673187256, "msg": "Orientation %s unknown for rotation", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1478.959560394287, + "relativeCreated": 5174.791097640991, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -3296,8 +1211,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:31,491", - "created": 1580584171.4912276, + "asctime": "2020-02-02 23:50:09,989", + "created": 1580683809.9890995, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3307,15 +1222,15 @@ "lineno": 22, "message": "Result (Returnvalue of rotate method with invalid orientation): False ()", "module": "test", - "msecs": 491.2276268005371, + "msecs": 989.0995025634766, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1479.0911674499512, + "relativeCreated": 5174.894332885742, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -3324,8 +1239,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:31,491", - "created": 1580584171.4912934, + "asctime": "2020-02-02 23:50:09,989", + "created": 1580683809.989179, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3335,37 +1250,37 @@ "lineno": 26, "message": "Expectation (Returnvalue of rotate method with invalid orientation): result = False ()", "module": "test", - "msecs": 491.29343032836914, + "msecs": 989.1788959503174, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1479.1569709777832, + "relativeCreated": 5174.973726272583, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 491.3477897644043, + "msecs": 989.3398284912109, "msg": "Returnvalue of rotate method with invalid orientation is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1479.2113304138184, + "relativeCreated": 5175.134658813477, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 5.435943603515625e-05 + "time_consumption": 0.0001609325408935547 }, { "args": [ - "True", + "False", "" ], - "asctime": "2020-02-01 20:09:31,679", - "created": 1580584171.679181, + "asctime": "2020-02-02 23:50:10,357", + "created": 1580683810.3579316, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3373,95 +1288,449 @@ "levelname": "INFO", "levelno": 20, "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", + "message": "Returnvalue of rotate method with no orientation in method call and exif is correct (Content False and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - 6 + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg'" ], - "asctime": "2020-02-01 20:09:31,491", - "created": 1580584171.4914298, + "asctime": "2020-02-02 23:50:10,353", + "created": 1580683810.3538203, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg'", + "module": "__init__", + "msecs": 353.8203239440918, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5539.615154266357, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of rotate method with no orientation in method call and exif", + "False", + "" + ], + "asctime": "2020-02-02 23:50:10,357", + "created": 1580683810.3575313, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of rotate method with no orientation in method call and exif): False ()", + "module": "test", + "msecs": 357.5313091278076, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5543.326139450073, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of rotate method with no orientation in method call and exif", + "False", + "" + ], + "asctime": "2020-02-02 23:50:10,357", + "created": 1580683810.3577821, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of rotate method with no orientation in method call and exif): result = False ()", + "module": "test", + "msecs": 357.78212547302246, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5543.576955795288, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 357.93161392211914, + "msg": "Returnvalue of rotate method with no orientation in method call and exif is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5543.726444244385, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.0001494884490966797 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:11,097", + "created": 1580683811.097733, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for rotated_image_none.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "None" + ], + "asctime": "2020-02-02 23:50:10,358", + "created": 1580683810.3581328, "exc_info": null, "exc_text": null, "filename": "test_image.py", "funcName": "rotate_by_orientation", "levelname": "DEBUG", "levelno": 10, - "lineno": 74, - "message": "Rotate with orientation 6", + "lineno": 78, + "message": "Rotate with orientation None", "module": "test_image", - "msecs": 491.42980575561523, - "msg": "Rotate with orientation %d", + "msecs": 358.13283920288086, + "msg": "Rotate with orientation %s", "name": "__unittest__", "pathname": "src/tests/test_image.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1479.2933464050293, + "relativeCreated": 5543.9276695251465, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:10,737", + "created": 1580683810.7379732, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 737.9732131958008, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5923.768043518066, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "6" + ], + "asctime": "2020-02-02 23:50:10,740", + "created": 1580683810.740023, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 156, + "message": "No orientation given, orientation 6 extract from exif data", + "module": "__init__", + "msecs": 740.0228977203369, + "msg": "No orientation given, orientation %s extract from exif data", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 5925.8177280426025, + "stack_info": null, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ 270 ], - "asctime": "2020-02-01 20:09:31,590", - "created": 1580584171.5903833, + "asctime": "2020-02-02 23:50:10,741", + "created": 1580683810.7410893, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "rotate_by_orientation", "levelname": "DEBUG", "levelno": 10, - "lineno": 147, + "lineno": 169, "message": "Rotating picture by 270\u00b0", "module": "__init__", - "msecs": 590.3832912445068, + "msecs": 741.0893440246582, "msg": "Rotating picture by %d\u00b0", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1578.246831893921, + "relativeCreated": 5926.884174346924, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_none.jpg'" + ], + "asctime": "2020-02-02 23:50:10,864", + "created": 1580683810.8643143, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_none.jpg'", + "module": "__init__", + "msecs": 864.3143177032471, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6050.109148025513, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for rotated_image_none.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:11,097", + "created": 1580683811.0975578, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for rotated_image_none.jpg): True ()", + "module": "test", + "msecs": 97.55778312683105, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6283.352613449097, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for rotated_image_none.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:11,097", + "created": 1580683811.0976717, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for rotated_image_none.jpg): result = True ()", + "module": "test", + "msecs": 97.6717472076416, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6283.466577529907, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 97.7330207824707, + "msg": "Filecompare for rotated_image_none.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6283.527851104736, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 6.127357482910156e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:11,767", + "created": 1580683811.7673988, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for rotated_image_6.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "6" + ], + "asctime": "2020-02-02 23:50:11,097", + "created": 1580683811.0978332, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 78, + "message": "Rotate with orientation 6", + "module": "test_image", + "msecs": 97.83315658569336, + "msg": "Rotate with orientation %s", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6283.627986907959, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:11,462", + "created": 1580683811.4628422, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 462.8422260284424, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6648.637056350708, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 270 + ], + "asctime": "2020-02-02 23:50:11,463", + "created": 1580683811.4639235, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "rotate_by_orientation", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 169, + "message": "Rotating picture by 270\u00b0", + "module": "__init__", + "msecs": 463.92345428466797, + "msg": "Rotating picture by %d\u00b0", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 6649.718284606934, + "stack_info": null, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_6.jpg'" ], - "asctime": "2020-02-01 20:09:31,606", - "created": 1580584171.60636, + "asctime": "2020-02-02 23:50:11,536", + "created": 1580683811.5369446, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "save", "levelname": "DEBUG", "levelno": 10, - "lineno": 116, + "lineno": 124, "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_6.jpg'", "module": "__init__", - "msecs": 606.3599586486816, + "msecs": 536.9446277618408, "msg": "Saving image to %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1594.2234992980957, + "relativeCreated": 6722.739458084106, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ - "Filecompare", + "Filecompare for rotated_image_6.jpg", "True", "" ], - "asctime": "2020-02-01 20:09:31,679", - "created": 1580584171.6790442, + "asctime": "2020-02-02 23:50:11,767", + "created": 1580683811.7671282, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3469,27 +1738,27 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Filecompare): True ()", + "message": "Result (Filecompare for rotated_image_6.jpg): True ()", "module": "test", - "msecs": 679.044246673584, + "msecs": 767.1282291412354, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1666.907787322998, + "relativeCreated": 6952.923059463501, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ - "Filecompare", + "Filecompare for rotated_image_6.jpg", "True", "" ], - "asctime": "2020-02-01 20:09:31,679", - "created": 1580584171.6791317, + "asctime": "2020-02-02 23:50:11,767", + "created": 1580683811.7672925, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3497,39 +1766,39 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", + "message": "Expectation (Filecompare for rotated_image_6.jpg): result = True ()", "module": "test", - "msecs": 679.1317462921143, + "msecs": 767.2924995422363, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1666.9952869415283, + "relativeCreated": 6953.087329864502, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 679.1810989379883, - "msg": "Filecompare is correct (Content %s and Type is %s).", + "msecs": 767.3988342285156, + "msg": "Filecompare for rotated_image_6.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1667.0446395874023, + "relativeCreated": 6953.193664550781, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 4.935264587402344e-05 + "time_consumption": 0.00010633468627929688 }, { "args": [ "True", "" ], - "asctime": "2020-02-01 20:09:31,878", - "created": 1580584171.878498, + "asctime": "2020-02-02 23:50:12,465", + "created": 1580683812.4652798, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3537,95 +1806,121 @@ "levelname": "INFO", "levelno": 20, "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", + "message": "Filecompare for rotated_image_8.jpg is correct (Content True and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - 8 + "8" ], - "asctime": "2020-02-01 20:09:31,679", - "created": 1580584171.6792483, + "asctime": "2020-02-02 23:50:11,767", + "created": 1580683811.7675743, "exc_info": null, "exc_text": null, "filename": "test_image.py", "funcName": "rotate_by_orientation", "levelname": "DEBUG", "levelno": 10, - "lineno": 74, + "lineno": 78, "message": "Rotate with orientation 8", "module": "test_image", - "msecs": 679.2483329772949, - "msg": "Rotate with orientation %d", + "msecs": 767.5743103027344, + "msg": "Rotate with orientation %s", "name": "__unittest__", "pathname": "src/tests/test_image.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1667.111873626709, + "relativeCreated": 6953.369140625, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:12,152", + "created": 1580683812.1524007, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 152.40073204040527, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 7338.195562362671, + "stack_info": null, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ 90 ], - "asctime": "2020-02-01 20:09:31,787", - "created": 1580584171.7878458, + "asctime": "2020-02-02 23:50:12,152", + "created": 1580683812.1526754, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "rotate_by_orientation", "levelname": "DEBUG", "levelno": 10, - "lineno": 147, + "lineno": 169, "message": "Rotating picture by 90\u00b0", "module": "__init__", - "msecs": 787.8458499908447, + "msecs": 152.67539024353027, "msg": "Rotating picture by %d\u00b0", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1775.7093906402588, + "relativeCreated": 7338.470220565796, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_8.jpg'" ], - "asctime": "2020-02-01 20:09:31,804", - "created": 1580584171.8045137, + "asctime": "2020-02-02 23:50:12,209", + "created": 1580683812.2099626, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "save", "levelname": "DEBUG", "levelno": 10, - "lineno": 116, + "lineno": 124, "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_8.jpg'", "module": "__init__", - "msecs": 804.513692855835, + "msecs": 209.9626064300537, "msg": "Saving image to %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1792.377233505249, + "relativeCreated": 7395.757436752319, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ - "Filecompare", + "Filecompare for rotated_image_8.jpg", "True", "" ], - "asctime": "2020-02-01 20:09:31,878", - "created": 1580584171.8783646, + "asctime": "2020-02-02 23:50:12,464", + "created": 1580683812.4644966, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3633,27 +1928,27 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Filecompare): True ()", + "message": "Result (Filecompare for rotated_image_8.jpg): True ()", "module": "test", - "msecs": 878.3645629882812, + "msecs": 464.4966125488281, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1866.2281036376953, + "relativeCreated": 7650.291442871094, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ - "Filecompare", + "Filecompare for rotated_image_8.jpg", "True", "" ], - "asctime": "2020-02-01 20:09:31,878", - "created": 1580584171.8784525, + "asctime": "2020-02-02 23:50:12,465", + "created": 1580683812.4650505, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3661,39 +1956,39 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", + "message": "Expectation (Filecompare for rotated_image_8.jpg): result = True ()", "module": "test", - "msecs": 878.4525394439697, + "msecs": 465.05045890808105, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1866.3160800933838, + "relativeCreated": 7650.845289230347, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 878.4980773925781, - "msg": "Filecompare is correct (Content %s and Type is %s).", + "msecs": 465.27981758117676, + "msg": "Filecompare for rotated_image_8.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1866.3616180419922, + "relativeCreated": 7651.074647903442, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 4.553794860839844e-05 + "time_consumption": 0.00022935867309570312 }, { "args": [ "True", "" ], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.061612, + "asctime": "2020-02-02 23:50:13,100", + "created": 1580683813.1009252, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3701,95 +1996,121 @@ "levelname": "INFO", "levelno": 20, "lineno": 142, - "message": "Filecompare is correct (Content True and Type is ).", + "message": "Filecompare for rotated_image_3.jpg is correct (Content True and Type is ).", "module": "test", "moduleLogger": [ { "args": [ - 3 + "3" ], - "asctime": "2020-02-01 20:09:31,878", - "created": 1580584171.8785644, + "asctime": "2020-02-02 23:50:12,465", + "created": 1580683812.4656034, "exc_info": null, "exc_text": null, "filename": "test_image.py", "funcName": "rotate_by_orientation", "levelname": "DEBUG", "levelno": 10, - "lineno": 74, + "lineno": 78, "message": "Rotate with orientation 3", "module": "test_image", - "msecs": 878.5643577575684, - "msg": "Rotate with orientation %d", + "msecs": 465.6033515930176, + "msg": "Rotate with orientation %s", "name": "__unittest__", "pathname": "src/tests/test_image.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1866.4278984069824, + "relativeCreated": 7651.398181915283, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:12,841", + "created": 1580683812.8415203, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 841.5203094482422, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 8027.315139770508, + "stack_info": null, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ 180 ], - "asctime": "2020-02-01 20:09:31,985", - "created": 1580584171.985017, + "asctime": "2020-02-02 23:50:12,842", + "created": 1580683812.842129, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "rotate_by_orientation", "levelname": "DEBUG", "levelno": 10, - "lineno": 147, + "lineno": 169, "message": "Rotating picture by 180\u00b0", "module": "__init__", - "msecs": 985.0170612335205, + "msecs": 842.1289920806885, "msg": "Rotating picture by %d\u00b0", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1972.8806018829346, + "relativeCreated": 8027.923822402954, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_3.jpg'" ], - "asctime": "2020-02-01 20:09:31,995", - "created": 1580584171.995571, + "asctime": "2020-02-02 23:50:12,873", + "created": 1580683812.873431, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "save", "levelname": "DEBUG", "levelno": 10, - "lineno": 116, + "lineno": 124, "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/rotated_image_3.jpg'", "module": "__init__", - "msecs": 995.5708980560303, + "msecs": 873.4309673309326, "msg": "Saving image to %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1983.4344387054443, + "relativeCreated": 8059.225797653198, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ - "Filecompare", + "Filecompare for rotated_image_3.jpg", "True", "" ], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.0614767, + "asctime": "2020-02-02 23:50:13,100", + "created": 1580683813.1007519, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3797,27 +2118,27 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Filecompare): True ()", + "message": "Result (Filecompare for rotated_image_3.jpg): True ()", "module": "test", - "msecs": 61.476707458496094, + "msecs": 100.75187683105469, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 2049.34024810791, + "relativeCreated": 8286.54670715332, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ - "Filecompare", + "Filecompare for rotated_image_3.jpg", "True", "" ], - "asctime": "2020-02-01 20:09:32,061", - "created": 1580584172.0615652, + "asctime": "2020-02-02 23:50:13,100", + "created": 1580683813.1008651, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3825,60 +2146,60 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Filecompare): result = True ()", + "message": "Expectation (Filecompare for rotated_image_3.jpg): result = True ()", "module": "test", - "msecs": 61.56516075134277, + "msecs": 100.86512565612793, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 2049.428701400757, + "relativeCreated": 8286.659955978394, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 61.61189079284668, - "msg": "Filecompare is correct (Content %s and Type is %s).", + "msecs": 100.92520713806152, + "msg": "Filecompare for rotated_image_3.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 2049.4754314422607, + "relativeCreated": 8286.720037460327, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 4.673004150390625e-05 + "time_consumption": 6.008148193359375e-05 } ], - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.6777753829956055, - "time_finished": "2020-02-01 20:09:32,061", - "time_start": "2020-02-01 20:09:31,383" + "time_consumption": 3.399887800216675, + "time_finished": "2020-02-02 23:50:13,100", + "time_start": "2020-02-02 23:50:09,701" }, - "Save": { + "_CBaAQEYDEequ74M7usLaPw": { "args": null, - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.9811358, + "asctime": "2020-02-02 23:50:13,103", + "created": 1580683813.1033602, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "testrun", "levelname": "INFO", "levelno": 20, - "lineno": 31, - "message": "Save", + "lineno": 36, + "message": "_CBaAQEYDEequ74M7usLaPw", "module": "__init__", "moduleLogger": [], - "msecs": 981.1358451843262, - "msg": "Save", + "msecs": 103.36017608642578, + "msg": "_CBaAQEYDEequ74M7usLaPw", "name": "__tLogger__", "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 968.9993858337402, + "relativeCreated": 8289.155006408691, "stack_info": null, "testcaseLogger": [ { @@ -3886,8 +2207,2210 @@ "False", "" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.981393, + "asctime": "2020-02-02 23:50:13,103", + "created": 1580683813.1036747, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of join method without loading an image is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-02 23:50:13,103", + "created": 1580683813.103513, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "WARNING", + "levelno": 30, + "lineno": 183, + "message": "No image available, joining not possible", + "module": "__init__", + "msecs": 103.51300239562988, + "msg": "No image available, joining not possible", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 8289.307832717896, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method without loading an image", + "False", + "" + ], + "asctime": "2020-02-02 23:50:13,103", + "created": 1580683813.1035779, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of join method without loading an image): False ()", + "module": "test", + "msecs": 103.57785224914551, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 8289.372682571411, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method without loading an image", + "False", + "" + ], + "asctime": "2020-02-02 23:50:13,103", + "created": 1580683813.1036272, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of join method without loading an image): result = False ()", + "module": "test", + "msecs": 103.62720489501953, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 8289.422035217285, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 103.67465019226074, + "msg": "Returnvalue of join method without loading an image is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 8289.469480514526, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 4.744529724121094e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-02 23:50:13,908", + "created": 1580683813.9089017, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of join method with invalid join position is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:13,389", + "created": 1580683813.3892848, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 389.2848491668701, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 8575.079679489136, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 17 + ], + "asctime": "2020-02-02 23:50:13,908", + "created": 1580683813.9085393, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "WARNING", + "levelno": 30, + "lineno": 214, + "message": "Join position value 17 is not supported", + "module": "__init__", + "msecs": 908.5392951965332, + "msg": "Join position value %s is not supported", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9094.334125518799, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with invalid join position", + "False", + "" + ], + "asctime": "2020-02-02 23:50:13,908", + "created": 1580683813.9087362, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of join method with invalid join position): False ()", + "module": "test", + "msecs": 908.7362289428711, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9094.531059265137, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with invalid join position", + "False", + "" + ], + "asctime": "2020-02-02 23:50:13,908", + "created": 1580683813.90883, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of join method with invalid join position): result = False ()", + "module": "test", + "msecs": 908.829927444458, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9094.624757766724, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 908.9016914367676, + "msg": "Returnvalue of join method with invalid join position is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9094.696521759033, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 7.176399230957031e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-02 23:50:14,275", + "created": 1580683814.275839, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of join method with unknown join file is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:14,241", + "created": 1580683814.24119, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 241.18995666503906, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9426.984786987305, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-02 23:50:14,275", + "created": 1580683814.2753458, + "exc_info": null, + "exc_text": null, + "filename": "convert.py", + "funcName": "get_pil_image", + "levelname": "WARNING", + "levelno": 30, + "lineno": 35, + "message": "Instance type is not supported: ", + "module": "convert", + "msecs": 275.3458023071289, + "msg": "Instance type is not supported: ", + "name": "MEDIA", + "pathname": "src/media/convert.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9461.140632629395, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "None" + ], + "asctime": "2020-02-02 23:50:14,275", + "created": 1580683814.2755098, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "WARNING", + "levelno": 30, + "lineno": 189, + "message": "Image to be joined is not supported None", + "module": "__init__", + "msecs": 275.5098342895508, + "msg": "Image to be joined is not supported %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9461.304664611816, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with unknown join file", + "False", + "" + ], + "asctime": "2020-02-02 23:50:14,275", + "created": 1580683814.2756412, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of join method with unknown join file): False ()", + "module": "test", + "msecs": 275.64120292663574, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9461.436033248901, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of join method with unknown join file", + "False", + "" + ], + "asctime": "2020-02-02 23:50:14,275", + "created": 1580683814.2757373, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of join method with unknown join file): result = False ()", + "module": "test", + "msecs": 275.7372856140137, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9461.53211593628, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 275.83909034729004, + "msg": "Returnvalue of join method with unknown join file is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9461.633920669556, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.00010180473327636719 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:15,353", + "created": 1580683815.353362, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for joined_image_3.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 3 + ], + "asctime": "2020-02-02 23:50:14,275", + "created": 1580683814.2759871, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 108, + "message": "Join with position 3", + "module": "test_image", + "msecs": 275.9871482849121, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9461.781978607178, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:14,621", + "created": 1580683814.6218877, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 621.8876838684082, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 9807.682514190674, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:14,855", + "created": 1580683814.8552525, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'", + "module": "__init__", + "msecs": 855.2525043487549, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10041.04733467102, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-02 23:50:14,855", + "created": 1580683814.855425, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 141, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 855.4248809814453, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10041.219711303711, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-02 23:50:14,957", + "created": 1580683814.9578028, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 217, + "message": "Joining two images", + "module": "__init__", + "msecs": 957.8027725219727, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10143.597602844238, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_3.jpg'" + ], + "asctime": "2020-02-02 23:50:15,143", + "created": 1580683815.1435075, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_3.jpg'", + "module": "__init__", + "msecs": 143.5074806213379, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10329.302310943604, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_3.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:15,353", + "created": 1580683815.3531916, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for joined_image_3.jpg): True ()", + "module": "test", + "msecs": 353.191614151001, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10538.986444473267, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_3.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:15,353", + "created": 1580683815.3533027, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for joined_image_3.jpg): result = True ()", + "module": "test", + "msecs": 353.3027172088623, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10539.097547531128, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 353.3620834350586, + "msg": "Filecompare for joined_image_3.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10539.156913757324, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 5.936622619628906e-05 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:16,349", + "created": 1580683816.349225, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for joined_image_4.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 4 + ], + "asctime": "2020-02-02 23:50:15,353", + "created": 1580683815.3534474, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 108, + "message": "Join with position 4", + "module": "test_image", + "msecs": 353.44743728637695, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10539.242267608643, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:15,607", + "created": 1580683815.6070576, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 607.0575714111328, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 10792.852401733398, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:15,825", + "created": 1580683815.825071, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'", + "module": "__init__", + "msecs": 825.0710964202881, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11010.865926742554, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-02 23:50:15,825", + "created": 1580683815.825221, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 141, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 825.221061706543, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11011.015892028809, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-02 23:50:15,943", + "created": 1580683815.9438252, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 217, + "message": "Joining two images", + "module": "__init__", + "msecs": 943.8252449035645, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11129.62007522583, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_4.jpg'" + ], + "asctime": "2020-02-02 23:50:16,124", + "created": 1580683816.1242414, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_4.jpg'", + "module": "__init__", + "msecs": 124.24135208129883, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11310.036182403564, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_4.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:16,347", + "created": 1580683816.3476005, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for joined_image_4.jpg): True ()", + "module": "test", + "msecs": 347.60046005249023, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11533.395290374756, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_4.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:16,348", + "created": 1580683816.3485646, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for joined_image_4.jpg): result = True ()", + "module": "test", + "msecs": 348.56462478637695, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11534.359455108643, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 349.2250442504883, + "msg": "Filecompare for joined_image_4.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11535.019874572754, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.0006604194641113281 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:17,299", + "created": 1580683817.2992017, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for joined_image_5.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 5 + ], + "asctime": "2020-02-02 23:50:16,350", + "created": 1580683816.3501136, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 108, + "message": "Join with position 5", + "module": "test_image", + "msecs": 350.1136302947998, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11535.908460617065, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:16,578", + "created": 1580683816.578492, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 578.4919261932373, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 11764.286756515503, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:16,827", + "created": 1580683816.8273706, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'", + "module": "__init__", + "msecs": 827.3706436157227, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12013.165473937988, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-02 23:50:16,827", + "created": 1580683816.8275187, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 141, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 827.5187015533447, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12013.31353187561, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-02 23:50:16,924", + "created": 1580683816.9249887, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 217, + "message": "Joining two images", + "module": "__init__", + "msecs": 924.9887466430664, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12110.783576965332, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_5.jpg'" + ], + "asctime": "2020-02-02 23:50:17,107", + "created": 1580683817.1077278, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_5.jpg'", + "module": "__init__", + "msecs": 107.7277660369873, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12293.522596359253, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_5.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:17,297", + "created": 1580683817.297894, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for joined_image_5.jpg): True ()", + "module": "test", + "msecs": 297.8940010070801, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12483.688831329346, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_5.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:17,298", + "created": 1580683817.2986672, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for joined_image_5.jpg): result = True ()", + "module": "test", + "msecs": 298.66719245910645, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12484.462022781372, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 299.20172691345215, + "msg": "Filecompare for joined_image_5.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12484.996557235718, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.0005345344543457031 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:18,301", + "created": 1580683818.3014338, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for joined_image_1.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 1 + ], + "asctime": "2020-02-02 23:50:17,299", + "created": 1580683817.2997885, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 108, + "message": "Join with position 1", + "module": "test_image", + "msecs": 299.7884750366211, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12485.583305358887, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:17,537", + "created": 1580683817.5372603, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 537.2602939605713, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12723.055124282837, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:17,793", + "created": 1580683817.7939827, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'", + "module": "__init__", + "msecs": 793.982744216919, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12979.777574539185, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-02 23:50:17,794", + "created": 1580683817.7941551, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 141, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 794.1551208496094, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 12979.949951171875, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-02 23:50:17,938", + "created": 1580683817.9384165, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 217, + "message": "Joining two images", + "module": "__init__", + "msecs": 938.4164810180664, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13124.211311340332, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_1.jpg'" + ], + "asctime": "2020-02-02 23:50:18,110", + "created": 1580683818.1101162, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_1.jpg'", + "module": "__init__", + "msecs": 110.11624336242676, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13295.911073684692, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_1.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:18,299", + "created": 1580683818.299933, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for joined_image_1.jpg): True ()", + "module": "test", + "msecs": 299.93295669555664, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13485.727787017822, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_1.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:18,300", + "created": 1580683818.300717, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for joined_image_1.jpg): result = True ()", + "module": "test", + "msecs": 300.7171154022217, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13486.511945724487, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 301.433801651001, + "msg": "Filecompare for joined_image_1.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13487.228631973267, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.0007166862487792969 + }, + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:19,271", + "created": 1580683819.2718904, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for joined_image_2.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + 2 + ], + "asctime": "2020-02-02 23:50:18,302", + "created": 1580683818.30267, + "exc_info": null, + "exc_text": null, + "filename": "test_image.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 108, + "message": "Join with position 2", + "module": "test_image", + "msecs": 302.6700019836426, + "msg": "Join with position %d", + "name": "__unittest__", + "pathname": "src/tests/test_image.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13488.464832305908, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:18,539", + "created": 1580683818.5397162, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 539.7162437438965, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13725.511074066162, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:18,793", + "created": 1580683818.7935078, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'", + "module": "__init__", + "msecs": 793.5078144073486, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13979.302644729614, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-02 23:50:18,793", + "created": 1580683818.7936895, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 141, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 793.689489364624, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 13979.48431968689, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [], + "asctime": "2020-02-02 23:50:18,877", + "created": 1580683818.8772478, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "join", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 217, + "message": "Joining two images", + "module": "__init__", + "msecs": 877.2478103637695, + "msg": "Joining two images", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 14063.042640686035, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_2.jpg'" + ], + "asctime": "2020-02-02 23:50:19,061", + "created": 1580683819.0614886, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/joined_image_2.jpg'", + "module": "__init__", + "msecs": 61.48862838745117, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 14247.283458709717, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_2.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:19,271", + "created": 1580683819.2716413, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for joined_image_2.jpg): True ()", + "module": "test", + "msecs": 271.6412544250488, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 14457.436084747314, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for joined_image_2.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:19,271", + "created": 1580683819.2718086, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for joined_image_2.jpg): result = True ()", + "module": "test", + "msecs": 271.8086242675781, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 14457.603454589844, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 271.89040184020996, + "msg": "Filecompare for joined_image_2.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 14457.685232162476, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 8.177757263183594e-05 + } + ], + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 6.168530225753784, + "time_finished": "2020-02-02 23:50:19,271", + "time_start": "2020-02-02 23:50:13,103" + }, + "_Fv7V4EYCEequ74M7usLaPw": { + "args": null, + "asctime": "2020-02-02 23:50:06,655", + "created": 1580683806.6554456, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 31, + "message": "_Fv7V4EYCEequ74M7usLaPw", + "module": "__init__", + "moduleLogger": [], + "msecs": 655.4455757141113, + "msg": "_Fv7V4EYCEequ74M7usLaPw", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1841.240406036377, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "", + "" + ], + "asctime": "2020-02-02 23:50:06,656", + "created": 1580683806.6565988, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance, if no parameter is given is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "Type of image stored in instance, if no parameter is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,656", + "created": 1580683806.6560626, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance, if no parameter is given): ()", + "module": "test", + "msecs": 656.0626029968262, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1841.8574333190918, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if no parameter is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,656", + "created": 1580683806.656427, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance, if no parameter is given): result = ()", + "module": "test", + "msecs": 656.4269065856934, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1842.221736907959, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 656.5988063812256, + "msg": "Type of image stored in instance, if no parameter is given is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1842.3936367034912, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.00017189979553222656 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-02 23:50:06,660", + "created": 1580683806.6602879, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance, if a unsupported parameter is given is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-02 23:50:06,659", + "created": 1580683806.6591866, + "exc_info": null, + "exc_text": null, + "filename": "convert.py", + "funcName": "get_pil_image", + "levelname": "WARNING", + "levelno": 30, + "lineno": 35, + "message": "Instance type is not supported: ", + "module": "convert", + "msecs": 659.186601638794, + "msg": "Instance type is not supported: ", + "name": "MEDIA", + "pathname": "src/media/convert.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1844.9814319610596, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if a unsupported parameter is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,659", + "created": 1580683806.6597466, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance, if a unsupported parameter is given): ()", + "module": "test", + "msecs": 659.7466468811035, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1845.5414772033691, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if a unsupported parameter is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,660", + "created": 1580683806.6600494, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance, if a unsupported parameter is given): result = ()", + "module": "test", + "msecs": 660.0494384765625, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1845.8442687988281, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 660.2878570556641, + "msg": "Type of image stored in instance, if a unsupported parameter is given is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1846.0826873779297, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.0002384185791015625 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-02 23:50:06,661", + "created": 1580683806.6615067, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance, if an unknown file is given is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt" + ], + "asctime": "2020-02-02 23:50:06,660", + "created": 1580683806.660623, + "exc_info": null, + "exc_text": null, + "filename": "convert.py", + "funcName": "get_pil_image", + "levelname": "WARNING", + "levelno": 30, + "lineno": 31, + "message": "Filetype is not supported (/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt)", + "module": "convert", + "msecs": 660.6230735778809, + "msg": "Filetype is not supported (%s)", + "name": "MEDIA", + "pathname": "src/media/convert.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1846.4179039001465, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if an unknown file is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,661", + "created": 1580683806.661059, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance, if an unknown file is given): ()", + "module": "test", + "msecs": 661.0589027404785, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1846.8537330627441, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if an unknown file is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,661", + "created": 1580683806.6612897, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance, if an unknown file is given): result = ()", + "module": "test", + "msecs": 661.2896919250488, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1847.0845222473145, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 661.5066528320312, + "msg": "Type of image stored in instance, if an unknown file is given is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 1847.3014831542969, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.00021696090698242188 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-02 23:50:06,950", + "created": 1580683806.9507322, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance, if a image file is given is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:06,950", + "created": 1580683806.9504166, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 950.4165649414062, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 2136.211395263672, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if a image file is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,950", + "created": 1580683806.9505882, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance, if a image file is given): ()", + "module": "test", + "msecs": 950.5882263183594, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 2136.383056640625, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if a image file is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:06,950", + "created": 1580683806.950667, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance, if a image file is given): result = ()", + "module": "test", + "msecs": 950.6669044494629, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 2136.4617347717285, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 950.7322311401367, + "msg": "Type of image stored in instance, if a image file is given is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 2136.5270614624023, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 6.532669067382812e-05 + }, + { + "args": [ + "", + "" + ], + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.8670359, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Type of image stored in instance, if a video file is given is correct (Content and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/video.mp4'" + ], + "asctime": "2020-02-02 23:50:07,854", + "created": 1580683807.8544464, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/video.mp4'", + "module": "__init__", + "msecs": 854.4464111328125, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3040.241241455078, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if a video file is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:07,866", + "created": 1580683807.8667064, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Type of image stored in instance, if a video file is given): ()", + "module": "test", + "msecs": 866.706371307373, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3052.5012016296387, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Type of image stored in instance, if a video file is given", + "", + "" + ], + "asctime": "2020-02-02 23:50:07,866", + "created": 1580683807.866885, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Type of image stored in instance, if a video file is given): result = ()", + "module": "test", + "msecs": 866.8849468231201, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3052.6797771453857, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 867.0358657836914, + "msg": "Type of image stored in instance, if a video file is given is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3052.830696105957, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.00015091896057128906 + } + ], + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 1.21159029006958, + "time_finished": "2020-02-02 23:50:07,867", + "time_start": "2020-02-02 23:50:06,655" + }, + "_HGpRMEYCEequ74M7usLaPw": { + "args": null, + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.8674316, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 32, + "message": "_HGpRMEYCEequ74M7usLaPw", + "module": "__init__", + "moduleLogger": [], + "msecs": 867.431640625, + "msg": "_HGpRMEYCEequ74M7usLaPw", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3053.2264709472656, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.8677902, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3902,26 +4425,26 @@ "args": [ "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg'" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.9812298, + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.8675845, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "save", "levelname": "WARNING", "levelno": 30, - "lineno": 113, + "lineno": 121, "message": "No image available to be saved ('/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg')", "module": "__init__", - "msecs": 981.2297821044922, + "msecs": 867.5844669342041, "msg": "No image available to be saved (%s)", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.0933227539062, + "relativeCreated": 3053.3792972564697, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -3930,8 +4453,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.9813104, + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.867687, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3941,15 +4464,15 @@ "lineno": 22, "message": "Result (Returnvalue of failed save method): False ()", "module": "test", - "msecs": 981.3103675842285, + "msecs": 867.6869869232178, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.1739082336426, + "relativeCreated": 3053.4818172454834, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -3958,8 +4481,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.9813523, + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.86774, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -3969,37 +4492,37 @@ "lineno": 26, "message": "Expectation (Returnvalue of failed save method): result = False ()", "module": "test", - "msecs": 981.3523292541504, + "msecs": 867.7399158477783, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.2158699035645, + "relativeCreated": 3053.534746170044, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 981.3930988311768, + "msecs": 867.7902221679688, "msg": "Returnvalue of failed save method is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.2566394805908, + "relativeCreated": 3053.5850524902344, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 4.076957702636719e-05 + "time_consumption": 5.030632019042969e-05 }, { "args": [ "False", "" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.981556, + "asctime": "2020-02-02 23:50:07,868", + "created": 1580683807.868027, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4016,8 +4539,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.9814758, + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.867908, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4027,15 +4550,15 @@ "lineno": 22, "message": "Result (Existance of saved file): False ()", "module": "test", - "msecs": 981.475830078125, + "msecs": 867.9080009460449, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.3393707275391, + "relativeCreated": 3053.7028312683105, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4044,8 +4567,8 @@ "False", "" ], - "asctime": "2020-02-01 20:09:30,981", - "created": 1580584170.981516, + "asctime": "2020-02-02 23:50:07,867", + "created": 1580683807.867977, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4055,37 +4578,37 @@ "lineno": 26, "message": "Expectation (Existance of saved file): result = False ()", "module": "test", - "msecs": 981.5158843994141, + "msecs": 867.9769039154053, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.3794250488281, + "relativeCreated": 3053.771734237671, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 981.5559387207031, + "msecs": 868.0269718170166, "msg": "Existance of saved file is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 969.4194793701172, + "relativeCreated": 3053.821802139282, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 4.00543212890625e-05 + "time_consumption": 5.0067901611328125e-05 }, { "args": [ "True", "" ], - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.2753813, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.7035887, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4096,30 +4619,56 @@ "message": "Returnvalue of successful save method is correct (Content True and Type is ).", "module": "test", "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/video.mp4'" + ], + "asctime": "2020-02-02 23:50:08,684", + "created": 1580683808.6847758, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/video.mp4'", + "module": "__init__", + "msecs": 684.7758293151855, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3870.570659637451, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, { "args": [ "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg'" ], - "asctime": "2020-02-01 20:09:31,260", - "created": 1580584171.2609422, + "asctime": "2020-02-02 23:50:08,685", + "created": 1580683808.6850674, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "save", "levelname": "DEBUG", "levelno": 10, - "lineno": 116, + "lineno": 124, "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/saved_image.jpg'", "module": "__init__", - "msecs": 260.9422206878662, + "msecs": 685.0674152374268, "msg": "Saving image to %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1248.8057613372803, + "relativeCreated": 3870.8622455596924, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4128,8 +4677,8 @@ "True", "" ], - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.2751992, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.703407, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4139,15 +4688,15 @@ "lineno": 22, "message": "Result (Returnvalue of successful save method): True ()", "module": "test", - "msecs": 275.19917488098145, + "msecs": 703.4070491790771, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1263.0627155303955, + "relativeCreated": 3889.201879501343, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4156,8 +4705,8 @@ "True", "" ], - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.275312, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.7035263, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4167,37 +4716,37 @@ "lineno": 26, "message": "Expectation (Returnvalue of successful save method): result = True ()", "module": "test", - "msecs": 275.3119468688965, + "msecs": 703.5262584686279, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1263.1754875183105, + "relativeCreated": 3889.3210887908936, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 275.38132667541504, + "msecs": 703.5887241363525, "msg": "Returnvalue of successful save method is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1263.244867324829, + "relativeCreated": 3889.383554458618, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 6.937980651855469e-05 + "time_consumption": 6.246566772460938e-05 }, { "args": [ "True", "" ], - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.2755928, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.7038307, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4214,8 +4763,8 @@ "True", "" ], - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.2755146, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.7037346, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4225,15 +4774,15 @@ "lineno": 22, "message": "Result (Existance of saved file): True ()", "module": "test", - "msecs": 275.5146026611328, + "msecs": 703.7346363067627, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1263.3781433105469, + "relativeCreated": 3889.5294666290283, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4242,8 +4791,8 @@ "True", "" ], - "asctime": "2020-02-01 20:09:31,275", - "created": 1580584171.275556, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.7037873, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4253,58 +4802,58 @@ "lineno": 26, "message": "Expectation (Existance of saved file): result = True ()", "module": "test", - "msecs": 275.5560874938965, + "msecs": 703.7873268127441, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1263.4196281433105, + "relativeCreated": 3889.5821571350098, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 275.5928039550781, + "msecs": 703.8307189941406, "msg": "Existance of saved file is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 1263.4563446044922, + "relativeCreated": 3889.6255493164062, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 3.6716461181640625e-05 + "time_consumption": 4.3392181396484375e-05 } ], - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.29445695877075195, - "time_finished": "2020-02-01 20:09:31,275", - "time_start": "2020-02-01 20:09:30,981" + "time_consumption": 0.8363990783691406, + "time_finished": "2020-02-02 23:50:08,703", + "time_start": "2020-02-02 23:50:07,867" }, "_XzMFcHYZEem_kd-7nxt1sg": { "args": null, - "asctime": "2020-02-01 20:09:30,073", - "created": 1580584170.0731459, + "asctime": "2020-02-02 23:50:04,982", + "created": 1580683804.9820852, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "testrun", "levelname": "INFO", "levelno": 20, - "lineno": 26, + "lineno": 27, "message": "_XzMFcHYZEem_kd-7nxt1sg", "module": "__init__", "moduleLogger": [], - "msecs": 73.14586639404297, + "msecs": 982.0852279663086, "msg": "_XzMFcHYZEem_kd-7nxt1sg", "name": "__tLogger__", "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 61.00940704345703, + "relativeCreated": 167.88005828857422, "stack_info": null, "testcaseLogger": [ { @@ -4312,8 +4861,8 @@ "None", "" ], - "asctime": "2020-02-01 20:09:30,074", - "created": 1580584170.0742931, + "asctime": "2020-02-02 23:50:04,996", + "created": 1580683804.9969733, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4328,26 +4877,26 @@ "args": [ "/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt" ], - "asctime": "2020-02-01 20:09:30,073", - "created": 1580584170.0739384, + "asctime": "2020-02-02 23:50:04,994", + "created": 1580683804.9941604, "exc_info": null, "exc_text": null, "filename": "__init__.py", "funcName": "get_media_data", "levelname": "WARNING", "levelno": 30, - "lineno": 79, + "lineno": 80, "message": "Filetype not known: /user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt", "module": "__init__", - "msecs": 73.93836975097656, + "msecs": 994.1604137420654, "msg": "Filetype not known: %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 61.801910400390625, + "relativeCreated": 179.95524406433105, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4356,8 +4905,8 @@ "None", "" ], - "asctime": "2020-02-01 20:09:30,074", - "created": 1580584170.0742016, + "asctime": "2020-02-02 23:50:04,996", + "created": 1580683804.9963493, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4367,15 +4916,15 @@ "lineno": 22, "message": "Result (Media data for unknown.txt): None ()", "module": "test", - "msecs": 74.20158386230469, + "msecs": 996.3493347167969, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 62.06512451171875, + "relativeCreated": 182.1441650390625, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4384,8 +4933,8 @@ "None", "" ], - "asctime": "2020-02-01 20:09:30,074", - "created": 1580584170.0742497, + "asctime": "2020-02-02 23:50:04,996", + "created": 1580683804.9967, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4395,37 +4944,37 @@ "lineno": 26, "message": "Expectation (Media data for unknown.txt): result = None ()", "module": "test", - "msecs": 74.2497444152832, + "msecs": 996.7000484466553, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 62.113285064697266, + "relativeCreated": 182.4948787689209, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 74.29313659667969, + "msecs": 996.9732761383057, "msg": "Media data for unknown.txt is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 62.15667724609375, + "relativeCreated": 182.7681064605713, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 4.3392181396484375e-05 + "time_consumption": 0.0002732276916503906 }, { "args": [ "{'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'size': 8580366, 'time': 1451606398, 'tm_is_subst': True}", "" ], - "asctime": "2020-02-01 20:09:30,135", - "created": 1580584170.135747, + "asctime": "2020-02-02 23:50:05,358", + "created": 1580683805.3582673, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4442,8 +4991,8 @@ "{ 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'size': 8580366, 'time': 1451606398, 'tm_is_subst': True }", "" ], - "asctime": "2020-02-01 20:09:30,135", - "created": 1580584170.135381, + "asctime": "2020-02-02 23:50:05,352", + "created": 1580683805.3529189, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4453,15 +5002,15 @@ "lineno": 22, "message": "Result (Media data for audio.mp3): { 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'size': 8580366, 'time': 1451606398, 'tm_is_subst': True } ()", "module": "test", - "msecs": 135.38098335266113, + "msecs": 352.9188632965088, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 123.2445240020752, + "relativeCreated": 538.7136936187744, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4470,8 +5019,8 @@ "{ 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'time': 1451606398, 'tm_is_subst': True, 'size': 8580366 }", "" ], - "asctime": "2020-02-01 20:09:30,135", - "created": 1580584170.135619, + "asctime": "2020-02-02 23:50:05,356", + "created": 1580683805.356583, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4481,37 +5030,37 @@ "lineno": 26, "message": "Expectation (Media data for audio.mp3): result = { 'duration': 236.094694, 'bitrate': 290743, 'artist': 'Kaleo', 'title': 'No Good', 'album': 'A/B', 'track': 1, 'genre': 'Rock', 'year': 2016, 'time': 1451606398, 'tm_is_subst': True, 'size': 8580366 } ()", "module": "test", - "msecs": 135.6189250946045, + "msecs": 356.5831184387207, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 123.48246574401855, + "relativeCreated": 542.3779487609863, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 135.74695587158203, + "msecs": 358.26730728149414, "msg": "Media data for audio.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 123.6104965209961, + "relativeCreated": 544.0621376037598, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.00012803077697753906 + "time_consumption": 0.0016841888427734375 }, { "args": [ "{'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True}", "" ], - "asctime": "2020-02-01 20:09:30,197", - "created": 1580584170.1979814, + "asctime": "2020-02-02 23:50:05,564", + "created": 1580683805.564757, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4522,42 +5071,14 @@ "message": "Media data for audio_fail_conv.mp3 is correct (Content {'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True} and Type is ).", "module": "test", "moduleLogger": [ - { - "args": [ - "'N/A'", - "bitrate", - "bitrate" - ], - "asctime": "2020-02-01 20:09:30,197", - "created": 1580584170.1973727, - "exc_info": null, - "exc_text": null, - "filename": "metadata.py", - "funcName": "__get_xxprobe_data__", - "levelname": "WARNING", - "levelno": 30, - "lineno": 102, - "message": "Can't convert 'N/A' (bitrate) for bitrate", - "module": "metadata", - "msecs": 197.3726749420166, - "msg": "Can't convert %s (%s) for %s", - "name": "MEDIA", - "pathname": "src/media/metadata.py", - "process": 16493, - "processName": "MainProcess", - "relativeCreated": 185.23621559143066, - "stack_info": null, - "thread": 140094293296960, - "threadName": "MainThread" - }, { "args": [ "Media data for audio_fail_conv.mp3", "{ 'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True }", "" ], - "asctime": "2020-02-01 20:09:30,197", - "created": 1580584170.1977887, + "asctime": "2020-02-02 23:50:05,564", + "created": 1580683805.5644188, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4567,15 +5088,15 @@ "lineno": 22, "message": "Result (Media data for audio_fail_conv.mp3): { 'duration': 281.991837, 'bitrate': 228298, 'title': 'Video Games (Album Version Remastered)', 'artist': 'Lana Del Rey', 'album': 'Born To Die', 'genre': 'Pop', 'track': 4, 'year': 2012, 'size': 8047290, 'time': 1325375995, 'tm_is_subst': True } ()", "module": "test", - "msecs": 197.78871536254883, + "msecs": 564.4187927246094, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 185.6522560119629, + "relativeCreated": 750.213623046875, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4584,8 +5105,8 @@ "{ 'duration': 281.991837, 'bitrate': 228298, 'artist': 'Lana Del Rey', 'title': 'Video Games (Album Version Remastered)', 'album': 'Born To Die', 'track': 4, 'genre': 'Pop', 'year': 2012, 'time': 1325375995, 'tm_is_subst': True, 'size': 8047290 }", "" ], - "asctime": "2020-02-01 20:09:30,197", - "created": 1580584170.1978834, + "asctime": "2020-02-02 23:50:05,564", + "created": 1580683805.5646486, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4595,37 +5116,37 @@ "lineno": 26, "message": "Expectation (Media data for audio_fail_conv.mp3): result = { 'duration': 281.991837, 'bitrate': 228298, 'artist': 'Lana Del Rey', 'title': 'Video Games (Album Version Remastered)', 'album': 'Born To Die', 'track': 4, 'genre': 'Pop', 'year': 2012, 'time': 1325375995, 'tm_is_subst': True, 'size': 8047290 } ()", "module": "test", - "msecs": 197.88336753845215, + "msecs": 564.6486282348633, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 185.7469081878662, + "relativeCreated": 750.4434585571289, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 197.9813575744629, + "msecs": 564.7571086883545, "msg": "Media data for audio_fail_conv.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 185.84489822387695, + "relativeCreated": 750.5519390106201, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 9.799003601074219e-05 + "time_consumption": 0.00010848045349121094 }, { "args": [ "{'duration': 120.476735, 'bitrate': 240202, 'title': 'Was bringt der Dezember', 'artist': 'Rolf und seine Freunde', 'album': 'Wir warten auf Weihnachten', 'year': 0, 'track': 9, 'genre': 'Other', 'size': 3617354}", "" ], - "asctime": "2020-02-01 20:09:30,250", - "created": 1580584170.250763, + "asctime": "2020-02-02 23:50:05,681", + "created": 1580683805.6815603, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4642,8 +5163,8 @@ "{ 'duration': 120.476735, 'bitrate': 240202, 'title': 'Was bringt der Dezember', 'artist': 'Rolf und seine Freunde', 'album': 'Wir warten auf Weihnachten', 'year': 0, 'track': 9, 'genre': 'Other', 'size': 3617354 }", "" ], - "asctime": "2020-02-01 20:09:30,250", - "created": 1580584170.2504418, + "asctime": "2020-02-02 23:50:05,681", + "created": 1580683805.681223, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4653,15 +5174,15 @@ "lineno": 22, "message": "Result (Media data for audio_year_0.mp3): { 'duration': 120.476735, 'bitrate': 240202, 'title': 'Was bringt der Dezember', 'artist': 'Rolf und seine Freunde', 'album': 'Wir warten auf Weihnachten', 'year': 0, 'track': 9, 'genre': 'Other', 'size': 3617354 } ()", "module": "test", - "msecs": 250.4417896270752, + "msecs": 681.2229156494141, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 238.30533027648926, + "relativeCreated": 867.0177459716797, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4670,8 +5191,8 @@ "{ 'duration': 120.476735, 'bitrate': 240202, 'artist': 'Rolf und seine Freunde', 'title': 'Was bringt der Dezember', 'album': 'Wir warten auf Weihnachten', 'track': 9, 'genre': 'Other', 'year': 0, 'size': 3617354 }", "" ], - "asctime": "2020-02-01 20:09:30,250", - "created": 1580584170.2506452, + "asctime": "2020-02-02 23:50:05,681", + "created": 1580683805.6814423, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4681,37 +5202,37 @@ "lineno": 26, "message": "Expectation (Media data for audio_year_0.mp3): result = { 'duration': 120.476735, 'bitrate': 240202, 'artist': 'Rolf und seine Freunde', 'title': 'Was bringt der Dezember', 'album': 'Wir warten auf Weihnachten', 'track': 9, 'genre': 'Other', 'year': 0, 'size': 3617354 } ()", "module": "test", - "msecs": 250.64516067504883, + "msecs": 681.4422607421875, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 238.5087013244629, + "relativeCreated": 867.2370910644531, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 250.762939453125, + "msecs": 681.5602779388428, "msg": "Media data for audio_year_0.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 238.62648010253906, + "relativeCreated": 867.3551082611084, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.00011777877807617188 + "time_consumption": 0.00011801719665527344 }, { "args": [ - "{'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': {'lon': 12.140646934444444, 'lat': 53.68635940527778}, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09'}", + "{'time': 1560083621, 'exposure_program': 'Program Normal', 'exposure_time': 0.007633587786259542, 'flash': 'Off', 'aperture': 2.2, 'focal_length': 3.463, 'gps': {'lon': 11.574697, 'lat': 52.993599}, 'height': 3120, 'iso': 100, 'orientation': 6, 'width': 4160, 'size': 4524705, 'camera': 'motorola: motorola one'}", "" ], - "asctime": "2020-02-01 20:09:30,268", - "created": 1580584170.2684343, + "asctime": "2020-02-02 23:50:05,723", + "created": 1580683805.7235267, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4719,17 +5240,17 @@ "levelname": "INFO", "levelno": 20, "lineno": 142, - "message": "Media data for image_exif_gps.jpg is correct (Content {'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': {'lon': 12.140646934444444, 'lat': 53.68635940527778}, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09'} and Type is ).", + "message": "Media data for image_exif_gps.jpg is correct (Content {'time': 1560083621, 'exposure_program': 'Program Normal', 'exposure_time': 0.007633587786259542, 'flash': 'Off', 'aperture': 2.2, 'focal_length': 3.463, 'gps': {'lon': 11.574697, 'lat': 52.993599}, 'height': 3120, 'iso': 100, 'orientation': 6, 'width': 4160, 'size': 4524705, 'camera': 'motorola: motorola one'} and Type is ).", "module": "test", "moduleLogger": [ { "args": [ "Media data for image_exif_gps.jpg", - "{ 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09' }", + "{ 'time': 1560083621, 'exposure_program': 'Program Normal', 'exposure_time': 0.007633587786259542, 'flash': 'Off', 'aperture': 2.2, 'focal_length': 3.463, 'gps': { 'lon': 11.574697, 'lat': 52.993599 }, 'height': 3120, 'iso': 100, 'orientation': 6, 'width': 4160, 'size': 4524705, 'camera': 'motorola: motorola one' }", "" ], - "asctime": "2020-02-01 20:09:30,268", - "created": 1580584170.2682295, + "asctime": "2020-02-02 23:50:05,721", + "created": 1580683805.7211523, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4737,27 +5258,27 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 22, - "message": "Result (Media data for image_exif_gps.jpg): { 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'size': 4342955, 'camera': 'HUAWEI: EVA-L09' } ()", + "message": "Result (Media data for image_exif_gps.jpg): { 'time': 1560083621, 'exposure_program': 'Program Normal', 'exposure_time': 0.007633587786259542, 'flash': 'Off', 'aperture': 2.2, 'focal_length': 3.463, 'gps': { 'lon': 11.574697, 'lat': 52.993599 }, 'height': 3120, 'iso': 100, 'orientation': 6, 'width': 4160, 'size': 4524705, 'camera': 'motorola: motorola one' } ()", "module": "test", - "msecs": 268.22948455810547, + "msecs": 721.1523056030273, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 256.09302520751953, + "relativeCreated": 906.947135925293, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { "args": [ "Media data for image_exif_gps.jpg", - "{ 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'camera': 'HUAWEI: EVA-L09', 'size': 4342955 }", + "{ 'time': 1560083621, 'exposure_program': 'Program Normal', 'exposure_time': 0.007633587786259542, 'flash': 'Off', 'aperture': 2.2, 'focal_length': 3.463, 'gps': { 'lon': 11.574697, 'lat': 52.993599 }, 'height': 3120, 'iso': 100, 'orientation': 6, 'width': 4160, 'camera': 'motorola: motorola one', 'size': 4524705 }", "" ], - "asctime": "2020-02-01 20:09:30,268", - "created": 1580584170.2683337, + "asctime": "2020-02-02 23:50:05,721", + "created": 1580683805.7218335, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4765,39 +5286,39 @@ "levelname": "DEBUG", "levelno": 10, "lineno": 26, - "message": "Expectation (Media data for image_exif_gps.jpg): result = { 'time': 1518783213, 'exposure_program': 'Program Normal', 'exposure_time': 0.000535, 'flash': 'Auto Off', 'aperture': 2.2, 'focal_length': 4.5, 'gps': { 'lon': 12.140646934444444, 'lat': 53.68635940527778 }, 'height': 2240, 'iso': 50, 'orientation': 0, 'width': 3968, 'camera': 'HUAWEI: EVA-L09', 'size': 4342955 } ()", + "message": "Expectation (Media data for image_exif_gps.jpg): result = { 'time': 1560083621, 'exposure_program': 'Program Normal', 'exposure_time': 0.007633587786259542, 'flash': 'Off', 'aperture': 2.2, 'focal_length': 3.463, 'gps': { 'lon': 11.574697, 'lat': 52.993599 }, 'height': 3120, 'iso': 100, 'orientation': 6, 'width': 4160, 'camera': 'motorola: motorola one', 'size': 4524705 } ()", "module": "test", - "msecs": 268.33367347717285, + "msecs": 721.8334674835205, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 256.1972141265869, + "relativeCreated": 907.6282978057861, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 268.4342861175537, + "msecs": 723.5267162322998, "msg": "Media data for image_exif_gps.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 256.2978267669678, + "relativeCreated": 909.3215465545654, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.00010061264038085938 + "time_consumption": 0.0016932487487792969 }, { "args": [ "{'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'size': 2837285, 'camera': 'HUAWEI: EVA-L09'}", "" ], - "asctime": "2020-02-01 20:09:30,272", - "created": 1580584170.2721064, + "asctime": "2020-02-02 23:50:05,732", + "created": 1580683805.7321568, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4814,8 +5335,8 @@ "{ 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'size': 2837285, 'camera': 'HUAWEI: EVA-L09' }", "" ], - "asctime": "2020-02-01 20:09:30,271", - "created": 1580584170.2719312, + "asctime": "2020-02-02 23:50:05,731", + "created": 1580683805.7319396, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4825,15 +5346,15 @@ "lineno": 22, "message": "Result (Media data for image_exif_no_gps.jpg): { 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'size': 2837285, 'camera': 'HUAWEI: EVA-L09' } ()", "module": "test", - "msecs": 271.9311714172363, + "msecs": 731.9395542144775, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 259.7947120666504, + "relativeCreated": 917.7343845367432, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4842,8 +5363,8 @@ "{ 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'camera': 'HUAWEI: EVA-L09', 'size': 2837285 }", "" ], - "asctime": "2020-02-01 20:09:30,272", - "created": 1580584170.272007, + "asctime": "2020-02-02 23:50:05,732", + "created": 1580683805.7320545, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4853,37 +5374,37 @@ "lineno": 26, "message": "Expectation (Media data for image_exif_no_gps.jpg): result = { 'time': 1515143529, 'exposure_program': 'Program Normal', 'exposure_time': 0.03, 'flash': 'Fired', 'aperture': 2.2, 'focal_length': 4.5, 'height': 3968, 'iso': 160, 'orientation': 0, 'width': 2976, 'camera': 'HUAWEI: EVA-L09', 'size': 2837285 } ()", "module": "test", - "msecs": 272.0069885253906, + "msecs": 732.0544719696045, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 259.8705291748047, + "relativeCreated": 917.8493022918701, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 272.106409072876, + "msecs": 732.1567535400391, "msg": "Media data for image_exif_no_gps.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 259.96994972229004, + "relativeCreated": 917.9515838623047, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 9.942054748535156e-05 + "time_consumption": 0.00010228157043457031 }, { "args": [ "{'size': 1139092, 'time': 1449870515, 'tm_is_subst': True}", "" ], - "asctime": "2020-02-01 20:09:30,272", - "created": 1580584170.2725182, + "asctime": "2020-02-02 23:50:05,732", + "created": 1580683805.7327342, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4898,8 +5419,8 @@ "args": [ "/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg" ], - "asctime": "2020-02-01 20:09:30,272", - "created": 1580584170.272316, + "asctime": "2020-02-02 23:50:05,732", + "created": 1580683805.7324913, "exc_info": null, "exc_text": null, "filename": "metadata.py", @@ -4909,15 +5430,15 @@ "lineno": 112, "message": "/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg does not have any exif information", "module": "metadata", - "msecs": 272.31597900390625, + "msecs": 732.4912548065186, "msg": "%s does not have any exif information", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 260.1795196533203, + "relativeCreated": 918.2860851287842, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4926,8 +5447,8 @@ "{ 'size': 1139092, 'time': 1449870515, 'tm_is_subst': True }", "" ], - "asctime": "2020-02-01 20:09:30,272", - "created": 1580584170.272417, + "asctime": "2020-02-02 23:50:05,732", + "created": 1580683805.732614, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4937,15 +5458,15 @@ "lineno": 22, "message": "Result (Media data for image_non_exif.jpg): { 'size': 1139092, 'time': 1449870515, 'tm_is_subst': True } ()", "module": "test", - "msecs": 272.4170684814453, + "msecs": 732.6140403747559, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 260.2806091308594, + "relativeCreated": 918.4088706970215, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -4954,8 +5475,8 @@ "{ 'time': 1449870515, 'tm_is_subst': True, 'size': 1139092 }", "" ], - "asctime": "2020-02-01 20:09:30,272", - "created": 1580584170.272466, + "asctime": "2020-02-02 23:50:05,732", + "created": 1580683805.7326717, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -4965,37 +5486,37 @@ "lineno": 26, "message": "Expectation (Media data for image_non_exif.jpg): result = { 'time': 1449870515, 'tm_is_subst': True, 'size': 1139092 } ()", "module": "test", - "msecs": 272.46594429016113, + "msecs": 732.6717376708984, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 260.3294849395752, + "relativeCreated": 918.4665679931641, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 272.5181579589844, + "msecs": 732.734203338623, "msg": "Media data for image_non_exif.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 260.38169860839844, + "relativeCreated": 918.5290336608887, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 5.221366882324219e-05 + "time_consumption": 6.246566772460938e-05 }, { "args": [ "{'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'size': 1301272, 'camera': 'Canon: Canon EOS 40D'}", "" ], - "asctime": "2020-02-01 20:09:30,277", - "created": 1580584170.2774484, + "asctime": "2020-02-02 23:50:05,760", + "created": 1580683805.7606864, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5010,26 +5531,26 @@ "args": [ "{0: b'\\x02\\x02\\x00\\x00'}" ], - "asctime": "2020-02-01 20:09:30,277", - "created": 1580584170.2771828, + "asctime": "2020-02-02 23:50:05,759", + "created": 1580683805.759922, "exc_info": null, "exc_text": null, "filename": "metadata.py", "funcName": "__gps_conv__", "levelname": "WARNING", "levelno": 30, - "lineno": 218, + "lineno": 221, "message": "GPS data extraction failed for {0: b'\\x02\\x02\\x00\\x00'}", "module": "metadata", - "msecs": 277.18281745910645, + "msecs": 759.9220275878906, "msg": "GPS data extraction failed for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 265.0463581085205, + "relativeCreated": 945.7168579101562, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5038,8 +5559,8 @@ "{ 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'size': 1301272, 'camera': 'Canon: Canon EOS 40D' }", "" ], - "asctime": "2020-02-01 20:09:30,277", - "created": 1580584170.2773113, + "asctime": "2020-02-02 23:50:05,760", + "created": 1580683805.7603164, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5049,15 +5570,15 @@ "lineno": 22, "message": "Result (Media data for image_extraction_failed.jpg): { 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'size': 1301272, 'camera': 'Canon: Canon EOS 40D' } ()", "module": "test", - "msecs": 277.3113250732422, + "msecs": 760.3163719177246, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 265.17486572265625, + "relativeCreated": 946.1112022399902, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5066,8 +5587,8 @@ "{ 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'camera': 'Canon: Canon EOS 40D', 'size': 1301272 }", "" ], - "asctime": "2020-02-01 20:09:30,277", - "created": 1580584170.277376, + "asctime": "2020-02-02 23:50:05,760", + "created": 1580683805.7604785, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5077,37 +5598,37 @@ "lineno": 26, "message": "Expectation (Media data for image_extraction_failed.jpg): result = { 'time': 1226149915, 'exposure_program': 'Program Normal', 'exposure_time': 0.008, 'flash': 'Fill Fired', 'aperture': 7.1, 'focal_length': 170.0, 'height': 2592, 'iso': 400, 'orientation': 1, 'width': 3888, 'camera': 'Canon: Canon EOS 40D', 'size': 1301272 } ()", "module": "test", - "msecs": 277.3759365081787, + "msecs": 760.4784965515137, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 265.2394771575928, + "relativeCreated": 946.2733268737793, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 277.4484157562256, + "msecs": 760.6863975524902, "msg": "Media data for image_extraction_failed.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 265.31195640563965, + "relativeCreated": 946.4812278747559, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 7.2479248046875e-05 + "time_consumption": 0.0002079010009765625 }, { "args": [ "{'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345}", "" ], - "asctime": "2020-02-01 20:09:30,332", - "created": 1580584170.332206, + "asctime": "2020-02-02 23:50:05,990", + "created": 1580683805.9900565, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5124,8 +5645,8 @@ "{ 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 }", "" ], - "asctime": "2020-02-01 20:09:30,331", - "created": 1580584170.331899, + "asctime": "2020-02-02 23:50:05,987", + "created": 1580683805.9874105, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5135,15 +5656,15 @@ "lineno": 22, "message": "Result (Media data for video.3gp): { 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 } ()", "module": "test", - "msecs": 331.89892768859863, + "msecs": 987.4105453491211, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 319.7624683380127, + "relativeCreated": 1173.2053756713867, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5152,8 +5673,8 @@ "{ 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 }", "" ], - "asctime": "2020-02-01 20:09:30,332", - "created": 1580584170.3320694, + "asctime": "2020-02-02 23:50:05,989", + "created": 1580683805.9893086, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5163,37 +5684,37 @@ "lineno": 26, "message": "Expectation (Media data for video.3gp): result = { 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 } ()", "module": "test", - "msecs": 332.06939697265625, + "msecs": 989.3085956573486, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 319.9329376220703, + "relativeCreated": 1175.1034259796143, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 332.20601081848145, + "msecs": 990.0565147399902, "msg": "Media data for video.3gp is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 320.0695514678955, + "relativeCreated": 1175.8513450622559, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.0001366138458251953 + "time_consumption": 0.0007479190826416016 }, { "args": [ "{'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508}", "" ], - "asctime": "2020-02-01 20:09:30,470", - "created": 1580584170.4703205, + "asctime": "2020-02-02 23:50:06,314", + "created": 1580683806.3145313, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5210,8 +5731,8 @@ "{ 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 }", "" ], - "asctime": "2020-02-01 20:09:30,470", - "created": 1580584170.4700418, + "asctime": "2020-02-02 23:50:06,314", + "created": 1580683806.3142028, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5221,15 +5742,15 @@ "lineno": 22, "message": "Result (Media data for video.mp4): { 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 } ()", "module": "test", - "msecs": 470.04175186157227, + "msecs": 314.20278549194336, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 457.9052925109863, + "relativeCreated": 1499.997615814209, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5238,8 +5759,8 @@ "{ 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 }", "" ], - "asctime": "2020-02-01 20:09:30,470", - "created": 1580584170.4702196, + "asctime": "2020-02-02 23:50:06,314", + "created": 1580683806.3144188, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5249,37 +5770,37 @@ "lineno": 26, "message": "Expectation (Media data for video.mp4): result = { 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 } ()", "module": "test", - "msecs": 470.21961212158203, + "msecs": 314.4187927246094, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 458.0831527709961, + "relativeCreated": 1500.213623046875, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 470.320463180542, + "msecs": 314.5313262939453, "msg": "Media data for video.mp4 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 458.18400382995605, + "relativeCreated": 1500.326156616211, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.00010085105895996094 + "time_consumption": 0.0001125335693359375 }, { "args": [ "{'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622}", "" ], - "asctime": "2020-02-01 20:09:30,527", - "created": 1580584170.527415, + "asctime": "2020-02-02 23:50:06,452", + "created": 1580683806.4528615, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5296,8 +5817,8 @@ "duration", "duration" ], - "asctime": "2020-02-01 20:09:30,526", - "created": 1580584170.5266123, + "asctime": "2020-02-02 23:50:06,449", + "created": 1580683806.4494648, "exc_info": null, "exc_text": null, "filename": "metadata.py", @@ -5307,15 +5828,15 @@ "lineno": 102, "message": "Can't convert 'N/A' (duration) for duration", "module": "metadata", - "msecs": 526.6122817993164, + "msecs": 449.4647979736328, "msg": "Can't convert %s (%s) for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 514.4758224487305, + "relativeCreated": 1635.2596282958984, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5324,8 +5845,8 @@ "{ 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 }", "" ], - "asctime": "2020-02-01 20:09:30,527", - "created": 1580584170.5271964, + "asctime": "2020-02-02 23:50:06,452", + "created": 1580683806.4520469, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5335,15 +5856,15 @@ "lineno": 22, "message": "Result (Media data for video_special_time.avi): { 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 } ()", "module": "test", - "msecs": 527.1964073181152, + "msecs": 452.04687118530273, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 515.0599479675293, + "relativeCreated": 1637.8417015075684, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5352,8 +5873,8 @@ "{ 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 }", "" ], - "asctime": "2020-02-01 20:09:30,527", - "created": 1580584170.5273075, + "asctime": "2020-02-02 23:50:06,452", + "created": 1580683806.4524822, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5363,37 +5884,37 @@ "lineno": 26, "message": "Expectation (Media data for video_special_time.avi): result = { 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 } ()", "module": "test", - "msecs": 527.3075103759766, + "msecs": 452.4822235107422, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 515.1710510253906, + "relativeCreated": 1638.2770538330078, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 527.4150371551514, + "msecs": 452.8615474700928, "msg": "Media data for video_special_time.avi is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 515.2785778045654, + "relativeCreated": 1638.6563777923584, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.00010752677917480469 + "time_consumption": 0.00037932395935058594 }, { "args": [ "{'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True}", "" ], - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.5833867, + "asctime": "2020-02-02 23:50:06,653", + "created": 1580683806.653847, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5410,8 +5931,8 @@ "{ 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True }", "" ], - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.5830886, + "asctime": "2020-02-02 23:50:06,652", + "created": 1580683806.6528943, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5421,15 +5942,15 @@ "lineno": 22, "message": "Result (Media data for video_no_date.avi): { 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True } ()", "module": "test", - "msecs": 583.0886363983154, + "msecs": 652.8942584991455, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 570.9521770477295, + "relativeCreated": 1838.6890888214111, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" }, { @@ -5438,8 +5959,8 @@ "{ 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'time': 1158528375, 'tm_is_subst': True, 'size': 2965248 }", "" ], - "asctime": "2020-02-01 20:09:30,583", - "created": 1580584170.5832844, + "asctime": "2020-02-02 23:50:06,653", + "created": 1580683806.6531754, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -5449,51 +5970,584 @@ "lineno": 26, "message": "Expectation (Media data for video_no_date.avi): result = { 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'time': 1158528375, 'tm_is_subst': True, 'size': 2965248 } ()", "module": "test", - "msecs": 583.2843780517578, + "msecs": 653.1753540039062, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 571.1479187011719, + "relativeCreated": 1838.9701843261719, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread" } ], - "msecs": 583.3866596221924, + "msecs": 653.8469791412354, "msg": "Media data for video_no_date.avi is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 16493, + "process": 17240, "processName": "MainProcess", - "relativeCreated": 571.2502002716064, + "relativeCreated": 1839.641809463501, "stack_info": null, - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.00010228157043457031 + "time_consumption": 0.0006716251373291016 } ], - "thread": 140094293296960, + "thread": 140664664082240, "threadName": "MainThread", - "time_consumption": 0.5102407932281494, - "time_finished": "2020-02-01 20:09:30,583", - "time_start": "2020-02-01 20:09:30,073" + "time_consumption": 1.6717617511749268, + "time_finished": "2020-02-02 23:50:06,653", + "time_start": "2020-02-02 23:50:04,982" + }, + "_wvLDcEYCEequ74M7usLaPw": { + "args": null, + "asctime": "2020-02-02 23:50:08,703", + "created": 1580683808.7039905, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 33, + "message": "_wvLDcEYCEequ74M7usLaPw", + "module": "__init__", + "moduleLogger": [], + "msecs": 703.9904594421387, + "msg": "_wvLDcEYCEequ74M7usLaPw", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 3889.7852897644043, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:09,297", + "created": 1580683809.2972016, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Filecompare for image_data.jpg is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:09,071", + "created": 1580683809.0715866, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_no_gps.jpg'", + "module": "__init__", + "msecs": 71.58660888671875, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4257.381439208984, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for image_data.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:09,294", + "created": 1580683809.294965, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Filecompare for image_data.jpg): True ()", + "module": "test", + "msecs": 294.9650287628174, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4480.759859085083, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Filecompare for image_data.jpg", + "True", + "" + ], + "asctime": "2020-02-02 23:50:09,296", + "created": 1580683809.2962077, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Filecompare for image_data.jpg): result = True ()", + "module": "test", + "msecs": 296.2076663970947, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4482.00249671936, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 297.20163345336914, + "msg": "Filecompare for image_data.jpg is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4482.996463775635, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.000993967056274414 + } + ], + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.5932111740112305, + "time_finished": "2020-02-02 23:50:09,297", + "time_start": "2020-02-02 23:50:08,703" + }, + "_zQ29EEYCEequ74M7usLaPw": { + "args": null, + "asctime": "2020-02-02 23:50:09,317", + "created": 1580683809.317348, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "testrun", + "levelname": "INFO", + "levelno": 20, + "lineno": 34, + "message": "_zQ29EEYCEequ74M7usLaPw", + "module": "__init__", + "moduleLogger": [], + "msecs": 317.3480033874512, + "msg": "_zQ29EEYCEequ74M7usLaPw", + "name": "__tLogger__", + "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4503.142833709717, + "stack_info": null, + "testcaseLogger": [ + { + "args": [ + "True", + "" + ], + "asctime": "2020-02-02 23:50:09,699", + "created": 1580683809.6991708, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of successful resize method is correct (Content True and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'" + ], + "asctime": "2020-02-02 23:50:09,693", + "created": 1580683809.6936214, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "load_from_file", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 116, + "message": "loading image from '/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_exif_gps.jpg'", + "module": "__init__", + "msecs": 693.6213970184326, + "msg": "loading image from %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4879.416227340698, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + 300 + ], + "asctime": "2020-02-02 23:50:09,693", + "created": 1580683809.6937737, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 141, + "message": "Resizing picture to max 300 pixel in whatever direction", + "module": "__init__", + "msecs": 693.7737464904785, + "msg": "Resizing picture to max %d pixel in whatever direction", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4879.568576812744, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of successful resize method", + "True", + "" + ], + "asctime": "2020-02-02 23:50:09,698", + "created": 1580683809.6989982, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of successful resize method): True ()", + "module": "test", + "msecs": 698.998212814331, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4884.793043136597, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of successful resize method", + "True", + "" + ], + "asctime": "2020-02-02 23:50:09,699", + "created": 1580683809.6991134, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of successful resize method): result = True ()", + "module": "test", + "msecs": 699.1133689880371, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4884.908199310303, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 699.1708278656006, + "msg": "Returnvalue of successful resize method is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4884.965658187866, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 5.745887756347656e-05 + }, + { + "args": [ + "300", + "" + ], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.7006752, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Resulution of resized image is correct (Content 300 and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [ + "'/user_data/data/dirk/prj/unittest/media/unittest/output_data/resized_image.jpg'" + ], + "asctime": "2020-02-02 23:50:09,699", + "created": 1580683809.6992557, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "save", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 124, + "message": "Saving image to '/user_data/data/dirk/prj/unittest/media/unittest/output_data/resized_image.jpg'", + "module": "__init__", + "msecs": 699.2557048797607, + "msg": "Saving image to %s", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4885.050535202026, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Resulution of resized image", + "300", + "" + ], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.700556, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Resulution of resized image): 300 ()", + "module": "test", + "msecs": 700.5560398101807, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.350870132446, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Resulution of resized image", + "300", + "" + ], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.7006233, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Resulution of resized image): result = 300 ()", + "module": "test", + "msecs": 700.6232738494873, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.418104171753, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 700.6752490997314, + "msg": "Resulution of resized image is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.470079421997, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 5.1975250244140625e-05 + }, + { + "args": [ + "False", + "" + ], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.7009046, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "equivalency_chk", + "levelname": "INFO", + "levelno": 20, + "lineno": 142, + "message": "Returnvalue of failed resize method is correct (Content False and Type is ).", + "module": "test", + "moduleLogger": [ + { + "args": [], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.700761, + "exc_info": null, + "exc_text": null, + "filename": "__init__.py", + "funcName": "resize", + "levelname": "WARNING", + "levelno": 30, + "lineno": 138, + "message": "No image available to be resized", + "module": "__init__", + "msecs": 700.761079788208, + "msg": "No image available to be resized", + "name": "MEDIA", + "pathname": "src/media/__init__.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.555910110474, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of failed resize method", + "False", + "" + ], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.7008097, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_result__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 22, + "message": "Result (Returnvalue of failed resize method): False ()", + "module": "test", + "msecs": 700.8097171783447, + "msg": "Result (%s): %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.60454750061, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + }, + { + "args": [ + "Returnvalue of failed resize method", + "False", + "" + ], + "asctime": "2020-02-02 23:50:09,700", + "created": 1580683809.7008617, + "exc_info": null, + "exc_text": null, + "filename": "test.py", + "funcName": "__report_expectation_equivalency__", + "levelname": "DEBUG", + "levelno": 10, + "lineno": 26, + "message": "Expectation (Returnvalue of failed resize method): result = False ()", + "module": "test", + "msecs": 700.8616924285889, + "msg": "Expectation (%s): result = %s (%s)", + "name": "__unittest__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.6565227508545, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread" + } + ], + "msecs": 700.9046077728271, + "msg": "Returnvalue of failed resize method is correct (Content %s and Type is %s).", + "name": "__tLogger__", + "pathname": "src/unittest/test.py", + "process": 17240, + "processName": "MainProcess", + "relativeCreated": 4886.699438095093, + "stack_info": null, + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 4.291534423828125e-05 + } + ], + "thread": 140664664082240, + "threadName": "MainThread", + "time_consumption": 0.383556604385376, + "time_finished": "2020-02-02 23:50:09,700", + "time_start": "2020-02-02 23:50:09,317" } }, "testrun_id": "p3", - "time_consumption": 4.128098249435425, + "time_consumption": 14.264936923980713, "uid_list_sorted": [ "_XzMFcHYZEem_kd-7nxt1sg", - "Initialisation", - "Save", - "Resize", - "Rotate", - "Join" + "_Fv7V4EYCEequ74M7usLaPw", + "_HGpRMEYCEequ74M7usLaPw", + "_wvLDcEYCEequ74M7usLaPw", + "_zQ29EEYCEequ74M7usLaPw", + "_AdR7EEYDEequ74M7usLaPw", + "_CBaAQEYDEequ74M7usLaPw" ] } ], "unittest_information": { - "Version": "1bd602a73ceaead82d56c196c3e6a973" + "Version": "19140f198948fc7dd014a1ac1cd02dcf" } } \ No newline at end of file diff --git a/_testresults_/unittest.pdf b/_testresults_/unittest.pdf index 89ce2ff6705cdf2ef86d6383696fd9238990fce2..05f5e8bb7b8dd2855d5db27b2767b6e6de96526a 100644 GIT binary patch delta 116010 zcmZU)Q&=Wkpaz=lzBJjkZP#SmwrlFkwr$%@wr$(?0yGuyT6h@rm$PwPFYtz3HE*NiKrF&7eseTUFcVRANCcbh`K zDed^^&j)o!k(#H`BYAp8z`fS_T>o+nLu#ab2Y(%FVjv+IM2wm%p{;x#W6wv!jh5&w z;{;%KVEf1Lm8YehI^K*RGLjBVf>wPKzq4`Wz-D1_sUrf0qk#!mc2bOU#Z0T^BxIS` z^I|JsqsC%~?cG(!!-cS=>5q{Ng*4CdjW@B3PgEcxc{KMk>yD$WPUuSqD#BmIfyw)B zx>bBGBJj+H8^|57OtU@$;%v@Px+*T&o8odOrN>f)60ObvqS1<2puz}&)FDKuk6EAD zL+f1lqh>&3kE(PEBL;ISh-Xw=CV`<)8{fV&8wc~S7!MpYiHML={z!bh>d+t_F7q&2 zkGHsuPZv1>FX!D?KU~8_#Sk~;;{z{kilm>t;*y(;d+UxpNGZ%E7Kn=FY>iCm6cr6? z_Qyg9h*C4}FAm@0{J2(Va~Uc*PPxOae~#`+9UIi7)ZTH!w2ukBhiGORL$m*TV-heWJ7;4!yH_^|aQ?5}RNmODG8iN2jJA)L&$t z%1+=&Sh}DL^+ND0I?i1s3TZa((9Hu8#4#T4@l*}L4uyS(9kW`sq{HA-*!Ejp$djvb zMLA}5ox;EOOue~r@+qt2SdOW;+|gJTPH}+-U7XUFnZD=uW_pS767dM(U>-4s1In?U zqh`v*TKy(?qL!s$9RGCivGJUJIX!a4olD?CD^8I*ODM0O zw_0<)nd9CLxev2ACFT>)#UUlvS%WTPCj;DxGYyP7wY^ z)HfyU9TV^qMpjwL8d?>I>W0pHjyHZc))KPL5`Pyl$qU}6g&m|9h?z95nMCU* zuxp5{dnHkS5ZC1EGrgWNd{#X#j1<+B#yHPkUo&{t_1vT*)o7H^vb6Rg_fEY^;(7cB zSN9fIUu#0ZNg)@6lZ09*#_>~6VweZz?pN5sy0tn#FGzFkY>_mN1V{^11Vx8n<7EE7 zSFJAZu*rnb{h@JZNjMa~^uj*KlHX>uLw(k7xkb{KZJX0z^yBAx)#`MLVZYi!6(2<| z1$a9frIZ=OuzZcTa^05eVae0fNnJM zH>sl3zDj;s9atb!>OuJ%k3WEv{}Gk11&S^vvUrm=4NO9Eu&7ay40%rc2knFnM`7dE z!4yT-BuUs6JxK?e3X$XgLvm(LwxoDyTHvNVE+>lbZe9B5Q2~Iv3tR$ZGhh<{t2o3k zw{jn3?0{B~x{|VDwN-bUfl(sWW0hkI;y@LVy`RC|G`K$$Pobc$LX<|W;%v%>V

n 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 BS1tem delta 104884 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 ki##dx+m}Edl02YdD0uM /dev/null' diff --git a/metadata.py b/metadata.py index 5f10115..0cfaf62 100644 --- a/metadata.py +++ b/metadata.py @@ -193,7 +193,10 @@ def __int_conv__(value): p = value.find(c) if p >= 0: value = value[:p] - return int(value) + try: + return int(value) + except ValueError: + return None def __num_denum_conv__(data):