From fb5cafc8cc1f10b9f53b465a7b8c0a4a77226ab2 Mon Sep 17 00:00:00 2001 From: Dirk Alders Date: Thu, 30 Jan 2020 23:37:29 +0100 Subject: [PATCH] Release: 9e6f9c0bef4dee208308971155bc254c --- __init__.py | 2 +- _testresults_/coverage.xml | 10 +- _testresults_/unittest.json | 540 ++++++++++++++++++------------------ _testresults_/unittest.pdf | Bin 190712 -> 190760 bytes metadata.py | 2 +- 5 files changed, 277 insertions(+), 277 deletions(-) diff --git a/__init__.py b/__init__.py index 1e832e6..7826ade 100644 --- a/__init__.py +++ b/__init__.py @@ -24,6 +24,7 @@ media (Media Tools) __DEPENDENCIES__ = [] import logging +from media import metadata logger_name = 'MEDIA' logger = logging.getLogger(logger_name) @@ -37,7 +38,6 @@ __INTERPRETER__ = (3, ) def get_media_data(full_path): - from media import metadata ft = metadata.get_filetype(full_path) # if ft == metadata.FILETYPE_AUDIO: diff --git a/_testresults_/coverage.xml b/_testresults_/coverage.xml index afb7c22..4c4cc18 100644 --- a/_testresults_/coverage.xml +++ b/_testresults_/coverage.xml @@ -1,5 +1,5 @@ - + @@ -12,11 +12,11 @@ - + - - - + + + diff --git a/_testresults_/unittest.json b/_testresults_/unittest.json index 78cfc24..840a0be 100644 --- a/_testresults_/unittest.json +++ b/_testresults_/unittest.json @@ -35,48 +35,48 @@ }, { "coverage_state": "covered", - "end": 26, + "end": 27, "start": 26 }, { "coverage_state": "clean", - "end": 27, - "start": 27 - }, - { - "coverage_state": "covered", - "end": 29, + "end": 28, "start": 28 }, + { + "coverage_state": "covered", + "end": 30, + "start": 29 + }, { "coverage_state": "clean", - "end": 31, - "start": 30 + "end": 32, + "start": 31 }, { "coverage_state": "covered", - "end": 32, - "start": 32 - }, - { - "coverage_state": "clean", - "end": 34, + "end": 33, "start": 33 }, { - "coverage_state": "covered", + "coverage_state": "clean", "end": 35, - "start": 35 + "start": 34 + }, + { + "coverage_state": "covered", + "end": 36, + "start": 36 }, { "coverage_state": "clean", - "end": 38, - "start": 36 + "end": 39, + "start": 37 }, { "coverage_state": "covered", "end": 41, - "start": 39 + "start": 40 }, { "coverage_state": "clean", @@ -503,7 +503,7 @@ "Name": "media", "State": "Released", "Supported Interpreters": "python3", - "Version": "f44d258110e088423a3132bd52534f53" + "Version": "9e6f9c0bef4dee208308971155bc254c" }, "testrun_list": [ { @@ -527,8 +527,8 @@ "testcases": { "_XzMFcHYZEem_kd-7nxt1sg": { "args": null, - "asctime": "2020-01-30 22:06:34,253", - "created": 1580418394.2534032, + "asctime": "2020-01-30 23:35:34,229", + "created": 1580423734.2293775, "exc_info": null, "exc_text": null, "filename": "__init__.py", @@ -539,13 +539,13 @@ "message": "_XzMFcHYZEem_kd-7nxt1sg", "module": "__init__", "moduleLogger": [], - "msecs": 253.4031867980957, + "msecs": 229.37750816345215, "msg": "_XzMFcHYZEem_kd-7nxt1sg", "name": "__tLogger__", "pathname": "/user_data/data/dirk/prj/unittest/media/unittest/src/tests/__init__.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 58.33578109741211, + "relativeCreated": 57.25598335266113, "stack_info": null, "testcaseLogger": [ { @@ -553,8 +553,8 @@ "None", "" ], - "asctime": "2020-01-30 22:06:34,253", - "created": 1580418394.2539485, + "asctime": "2020-01-30 23:35:34,229", + "created": 1580423734.2299068, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -569,8 +569,8 @@ "args": [ "/user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt" ], - "asctime": "2020-01-30 22:06:34,253", - "created": 1580418394.2535973, + "asctime": "2020-01-30 23:35:34,229", + "created": 1580423734.2295656, "exc_info": null, "exc_text": null, "filename": "__init__.py", @@ -580,15 +580,15 @@ "lineno": 50, "message": "Filetype not known: /user_data/data/dirk/prj/unittest/media/unittest/input_data/unknown.txt", "module": "__init__", - "msecs": 253.59725952148438, + "msecs": 229.56562042236328, "msg": "Filetype not known: %s", "name": "MEDIA", "pathname": "src/media/__init__.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 58.52985382080078, + "relativeCreated": 57.444095611572266, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -597,8 +597,8 @@ "None", "" ], - "asctime": "2020-01-30 22:06:34,253", - "created": 1580418394.2538524, + "asctime": "2020-01-30 23:35:34,229", + "created": 1580423734.2298157, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -608,15 +608,15 @@ "lineno": 22, "message": "Result (Media data for unknown.txt): None ()", "module": "test", - "msecs": 253.85236740112305, + "msecs": 229.81572151184082, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 58.78496170043945, + "relativeCreated": 57.694196701049805, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -625,8 +625,8 @@ "None", "" ], - "asctime": "2020-01-30 22:06:34,253", - "created": 1580418394.2539005, + "asctime": "2020-01-30 23:35:34,229", + "created": 1580423734.2298617, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -636,37 +636,37 @@ "lineno": 26, "message": "Expectation (Media data for unknown.txt): result = None ()", "module": "test", - "msecs": 253.90052795410156, + "msecs": 229.86173629760742, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 58.83312225341797, + "relativeCreated": 57.740211486816406, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 253.94845008850098, + "msecs": 229.90679740905762, "msg": "Media data for unknown.txt is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 58.88104438781738, + "relativeCreated": 57.7852725982666, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 4.792213439941406e-05 + "time_consumption": 4.506111145019531e-05 }, { "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-01-30 22:06:34,316", - "created": 1580418394.3162963, + "asctime": "2020-01-30 23:35:34,290", + "created": 1580423734.2906947, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -683,8 +683,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-01-30 22:06:34,315", - "created": 1580418394.3159626, + "asctime": "2020-01-30 23:35:34,290", + "created": 1580423734.2902982, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -694,15 +694,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": 315.962553024292, + "msecs": 290.2982234954834, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 120.8951473236084, + "relativeCreated": 118.17669868469238, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -711,8 +711,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-01-30 22:06:34,316", - "created": 1580418394.316178, + "asctime": "2020-01-30 23:35:34,290", + "created": 1580423734.2905095, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -722,37 +722,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": 316.1780834197998, + "msecs": 290.5094623565674, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 121.11067771911621, + "relativeCreated": 118.38793754577637, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 316.2963390350342, + "msecs": 290.6947135925293, "msg": "Media data for audio.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 121.22893333435059, + "relativeCreated": 118.57318878173828, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.000118255615234375 + "time_consumption": 0.00018525123596191406 }, { "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-01-30 22:06:34,377", - "created": 1580418394.3774264, + "asctime": "2020-01-30 23:35:34,354", + "created": 1580423734.354267, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -769,8 +769,8 @@ "bitrate", "bitrate" ], - "asctime": "2020-01-30 22:06:34,376", - "created": 1580418394.3767884, + "asctime": "2020-01-30 23:35:34,353", + "created": 1580423734.3536484, "exc_info": null, "exc_text": null, "filename": "metadata.py", @@ -780,15 +780,15 @@ "lineno": 142, "message": "Can't convert 'N/A' (bitrate) for bitrate", "module": "metadata", - "msecs": 376.7883777618408, + "msecs": 353.64842414855957, "msg": "Can't convert %s (%s) for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 181.72097206115723, + "relativeCreated": 181.52689933776855, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -797,8 +797,8 @@ "{ '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-01-30 22:06:34,377", - "created": 1580418394.3772197, + "asctime": "2020-01-30 23:35:34,354", + "created": 1580423734.3540657, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -808,15 +808,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": 377.21967697143555, + "msecs": 354.0656566619873, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 182.15227127075195, + "relativeCreated": 181.9441318511963, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -825,8 +825,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-01-30 22:06:34,377", - "created": 1580418394.377325, + "asctime": "2020-01-30 23:35:34,354", + "created": 1580423734.3541644, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -836,37 +836,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": 377.32505798339844, + "msecs": 354.16436195373535, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 182.25765228271484, + "relativeCreated": 182.04283714294434, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 377.4263858795166, + "msecs": 354.266881942749, "msg": "Media data for audio_fail_conv.mp3 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 182.358980178833, + "relativeCreated": 182.145357131958, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.00010132789611816406 + "time_consumption": 0.00010251998901367188 }, { "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'}", "" ], - "asctime": "2020-01-30 22:06:34,394", - "created": 1580418394.3949149, + "asctime": "2020-01-30 23:35:34,371", + "created": 1580423734.371667, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -883,8 +883,8 @@ "{ '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' }", "" ], - "asctime": "2020-01-30 22:06:34,394", - "created": 1580418394.3947024, + "asctime": "2020-01-30 23:35:34,371", + "created": 1580423734.3714578, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -894,15 +894,15 @@ "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' } ()", "module": "test", - "msecs": 394.7024345397949, + "msecs": 371.4578151702881, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 199.63502883911133, + "relativeCreated": 199.33629035949707, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -911,8 +911,8 @@ "{ '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 }", "" ], - "asctime": "2020-01-30 22:06:34,394", - "created": 1580418394.3948064, + "asctime": "2020-01-30 23:35:34,371", + "created": 1580423734.3715613, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -922,37 +922,37 @@ "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 } ()", "module": "test", - "msecs": 394.8063850402832, + "msecs": 371.56128883361816, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 199.7389793395996, + "relativeCreated": 199.43976402282715, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 394.9148654937744, + "msecs": 371.66690826416016, "msg": "Media data for image_exif_gps.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 199.84745979309082, + "relativeCreated": 199.54538345336914, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.00010848045349121094 + "time_consumption": 0.00010561943054199219 }, { "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-01-30 22:06:34,398", - "created": 1580418394.3987355, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.3753371, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -969,8 +969,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-01-30 22:06:34,398", - "created": 1580418394.3985393, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.375182, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -980,15 +980,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": 398.53930473327637, + "msecs": 375.1819133758545, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 203.47189903259277, + "relativeCreated": 203.06038856506348, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -997,8 +997,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-01-30 22:06:34,398", - "created": 1580418394.3986442, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.3752575, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1008,37 +1008,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": 398.64420890808105, + "msecs": 375.2574920654297, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 203.57680320739746, + "relativeCreated": 203.13596725463867, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 398.73552322387695, + "msecs": 375.3371238708496, "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": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 203.66811752319336, + "relativeCreated": 203.2155990600586, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 9.131431579589844e-05 + "time_consumption": 7.963180541992188e-05 }, { "args": [ "{'size': 1139092, 'time': 1449870515, 'tm_is_subst': True}", "" ], - "asctime": "2020-01-30 22:06:34,399", - "created": 1580418394.399145, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.3757436, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1053,8 +1053,8 @@ "args": [ "/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg" ], - "asctime": "2020-01-30 22:06:34,398", - "created": 1580418394.3989413, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.3755352, "exc_info": null, "exc_text": null, "filename": "metadata.py", @@ -1064,15 +1064,15 @@ "lineno": 152, "message": "/user_data/data/dirk/prj/unittest/media/unittest/input_data/image_non_exif.jpg does not have any exif information", "module": "metadata", - "msecs": 398.9412784576416, + "msecs": 375.535249710083, "msg": "%s does not have any exif information", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 203.873872756958, + "relativeCreated": 203.413724899292, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1081,8 +1081,8 @@ "{ 'size': 1139092, 'time': 1449870515, 'tm_is_subst': True }", "" ], - "asctime": "2020-01-30 22:06:34,399", - "created": 1580418394.3990424, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.3756378, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1092,15 +1092,15 @@ "lineno": 22, "message": "Result (Media data for image_non_exif.jpg): { 'size': 1139092, 'time': 1449870515, 'tm_is_subst': True } ()", "module": "test", - "msecs": 399.04236793518066, + "msecs": 375.6377696990967, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 203.97496223449707, + "relativeCreated": 203.51624488830566, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1109,8 +1109,8 @@ "{ 'time': 1449870515, 'tm_is_subst': True, 'size': 1139092 }", "" ], - "asctime": "2020-01-30 22:06:34,399", - "created": 1580418394.399093, + "asctime": "2020-01-30 23:35:34,375", + "created": 1580423734.3756888, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1120,37 +1120,37 @@ "lineno": 26, "message": "Expectation (Media data for image_non_exif.jpg): result = { 'time': 1449870515, 'tm_is_subst': True, 'size': 1139092 } ()", "module": "test", - "msecs": 399.0929126739502, + "msecs": 375.6887912750244, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 204.0255069732666, + "relativeCreated": 203.5672664642334, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 399.14488792419434, + "msecs": 375.7436275482178, "msg": "Media data for image_non_exif.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 204.07748222351074, + "relativeCreated": 203.62210273742676, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 5.1975250244140625e-05 + "time_consumption": 5.4836273193359375e-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-01-30 22:06:34,403", - "created": 1580418394.4032836, + "asctime": "2020-01-30 23:35:34,379", + "created": 1580423734.3798156, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1165,8 +1165,8 @@ "args": [ "{0: b'\\x02\\x02\\x00\\x00'}" ], - "asctime": "2020-01-30 22:06:34,403", - "created": 1580418394.403025, + "asctime": "2020-01-30 23:35:34,379", + "created": 1580423734.379549, "exc_info": null, "exc_text": null, "filename": "metadata.py", @@ -1176,15 +1176,15 @@ "lineno": 258, "message": "GPS data extraction failed for {0: b'\\x02\\x02\\x00\\x00'}", "module": "metadata", - "msecs": 403.02491188049316, + "msecs": 379.5490264892578, "msg": "GPS data extraction failed for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 207.95750617980957, + "relativeCreated": 207.4275016784668, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1193,8 +1193,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-01-30 22:06:34,403", - "created": 1580418394.403149, + "asctime": "2020-01-30 23:35:34,379", + "created": 1580423734.3796718, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1204,15 +1204,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": 403.148889541626, + "msecs": 379.6718120574951, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 208.08148384094238, + "relativeCreated": 207.5502872467041, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1221,8 +1221,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-01-30 22:06:34,403", - "created": 1580418394.4032133, + "asctime": "2020-01-30 23:35:34,379", + "created": 1580423734.3797376, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1232,37 +1232,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": 403.2132625579834, + "msecs": 379.73761558532715, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 208.1458568572998, + "relativeCreated": 207.61609077453613, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 403.28359603881836, + "msecs": 379.81557846069336, "msg": "Media data for image_extraction_failed.jpg is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 208.21619033813477, + "relativeCreated": 207.69405364990234, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 7.033348083496094e-05 + "time_consumption": 7.796287536621094e-05 }, { "args": [ "{'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345}", "" ], - "asctime": "2020-01-30 22:06:34,458", - "created": 1580418394.4580746, + "asctime": "2020-01-30 23:35:34,435", + "created": 1580423734.4350774, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1279,8 +1279,8 @@ "{ 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 }", "" ], - "asctime": "2020-01-30 22:06:34,457", - "created": 1580418394.457794, + "asctime": "2020-01-30 23:35:34,434", + "created": 1580423734.434815, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1290,15 +1290,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": 457.7939510345459, + "msecs": 434.8149299621582, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 262.7265453338623, + "relativeCreated": 262.6934051513672, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1307,8 +1307,8 @@ "{ 'width': 800, 'height': 480, 'ratio': 1.6666666666666667, 'duration': 3.964, 'bitrate': 2341765, 'time': 1414948303, 'size': 1160345 }", "" ], - "asctime": "2020-01-30 22:06:34,457", - "created": 1580418394.457974, + "asctime": "2020-01-30 23:35:34,434", + "created": 1580423734.434988, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1318,37 +1318,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": 457.9739570617676, + "msecs": 434.98802185058594, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 262.906551361084, + "relativeCreated": 262.8664970397949, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 458.07456970214844, + "msecs": 435.077428817749, "msg": "Media data for video.3gp is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 263.00716400146484, + "relativeCreated": 262.955904006958, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.00010061264038085938 + "time_consumption": 8.940696716308594e-05 }, { "args": [ "{'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508}", "" ], - "asctime": "2020-01-30 22:06:34,602", - "created": 1580418394.6029294, + "asctime": "2020-01-30 23:35:34,579", + "created": 1580423734.5798893, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1365,8 +1365,8 @@ "{ 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 }", "" ], - "asctime": "2020-01-30 22:06:34,602", - "created": 1580418394.6025841, + "asctime": "2020-01-30 23:35:34,579", + "created": 1580423734.5796008, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1376,15 +1376,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": 602.5841236114502, + "msecs": 579.6008110046387, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 407.5167179107666, + "relativeCreated": 407.47928619384766, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1393,8 +1393,8 @@ "{ 'width': 1920, 'height': 1080, 'ratio': 1.7777777777777777, 'duration': 12.453, 'bitrate': 17883888, 'time': 1503125482, 'size': 27838508 }", "" ], - "asctime": "2020-01-30 22:06:34,602", - "created": 1580418394.6028209, + "asctime": "2020-01-30 23:35:34,579", + "created": 1580423734.5797846, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1404,37 +1404,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": 602.820873260498, + "msecs": 579.784631729126, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 407.75346755981445, + "relativeCreated": 407.66310691833496, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 602.9293537139893, + "msecs": 579.8892974853516, "msg": "Media data for video.mp4 is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 407.86194801330566, + "relativeCreated": 407.76777267456055, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.00010848045349121094 + "time_consumption": 0.00010466575622558594 }, { "args": [ "{'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622}", "" ], - "asctime": "2020-01-30 22:06:34,655", - "created": 1580418394.6559129, + "asctime": "2020-01-30 23:35:34,634", + "created": 1580423734.6340902, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1451,8 +1451,8 @@ "duration", "duration" ], - "asctime": "2020-01-30 22:06:34,655", - "created": 1580418394.6553006, + "asctime": "2020-01-30 23:35:34,632", + "created": 1580423734.6324155, "exc_info": null, "exc_text": null, "filename": "metadata.py", @@ -1462,15 +1462,15 @@ "lineno": 142, "message": "Can't convert 'N/A' (duration) for duration", "module": "metadata", - "msecs": 655.3006172180176, + "msecs": 632.4155330657959, "msg": "Can't convert %s (%s) for %s", "name": "MEDIA", "pathname": "src/media/metadata.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 460.233211517334, + "relativeCreated": 460.2940082550049, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1479,8 +1479,8 @@ "{ 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 }", "" ], - "asctime": "2020-01-30 22:06:34,655", - "created": 1580418394.6557658, + "asctime": "2020-01-30 23:35:34,633", + "created": 1580423734.6334946, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1490,15 +1490,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": 655.7657718658447, + "msecs": 633.4946155548096, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 460.69836616516113, + "relativeCreated": 461.37309074401855, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1507,8 +1507,8 @@ "{ 'width': 320, 'height': 240, 'ratio': 0.0, 'duration': 26.531264, 'bitrate': 840554, 'time': 1086778620, 'size': 2787622 }", "" ], - "asctime": "2020-01-30 22:06:34,655", - "created": 1580418394.6558366, + "asctime": "2020-01-30 23:35:34,633", + "created": 1580423734.6338127, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1518,37 +1518,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": 655.8365821838379, + "msecs": 633.812665939331, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 460.7691764831543, + "relativeCreated": 461.69114112854004, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 655.9128761291504, + "msecs": 634.0901851654053, "msg": "Media data for video_special_time.avi is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 460.8454704284668, + "relativeCreated": 461.96866035461426, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 7.62939453125e-05 + "time_consumption": 0.00027751922607421875 }, { "args": [ "{'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True}", "" ], - "asctime": "2020-01-30 22:06:34,716", - "created": 1580418394.7162106, + "asctime": "2020-01-30 23:35:34,690", + "created": 1580423734.6905332, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1565,8 +1565,8 @@ "{ 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'size': 2965248, 'time': 1158528375, 'tm_is_subst': True }", "" ], - "asctime": "2020-01-30 22:06:34,715", - "created": 1580418394.7158937, + "asctime": "2020-01-30 23:35:34,690", + "created": 1580423734.6902063, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1576,15 +1576,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": 715.8937454223633, + "msecs": 690.2062892913818, "msg": "Result (%s): %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 520.8263397216797, + "relativeCreated": 518.0847644805908, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" }, { @@ -1593,8 +1593,8 @@ "{ 'width': 640, 'height': 480, 'ratio': 1.3333333333333333, 'duration': 11.016, 'bitrate': 2153411, 'time': 1158528375, 'tm_is_subst': True, 'size': 2965248 }", "" ], - "asctime": "2020-01-30 22:06:34,716", - "created": 1580418394.716101, + "asctime": "2020-01-30 23:35:34,690", + "created": 1580423734.6904237, "exc_info": null, "exc_text": null, "filename": "test.py", @@ -1604,40 +1604,40 @@ "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": 716.1009311676025, + "msecs": 690.4237270355225, "msg": "Expectation (%s): result = %s (%s)", "name": "__unittest__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 521.033525466919, + "relativeCreated": 518.3022022247314, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread" } ], - "msecs": 716.2106037139893, + "msecs": 690.5331611633301, "msg": "Media data for video_no_date.avi is correct (Content %s and Type is %s).", "name": "__tLogger__", "pathname": "src/unittest/test.py", - "process": 27732, + "process": 7409, "processName": "MainProcess", - "relativeCreated": 521.1431980133057, + "relativeCreated": 518.4116363525391, "stack_info": null, - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.00010967254638671875 + "time_consumption": 0.00010943412780761719 } ], - "thread": 139823516395328, + "thread": 140036534933312, "threadName": "MainThread", - "time_consumption": 0.46280741691589355, - "time_finished": "2020-01-30 22:06:34,716", - "time_start": "2020-01-30 22:06:34,253" + "time_consumption": 0.46115565299987793, + "time_finished": "2020-01-30 23:35:34,690", + "time_start": "2020-01-30 23:35:34,229" } }, "testrun_id": "p3", - "time_consumption": 0.46280741691589355, + "time_consumption": 0.46115565299987793, "uid_list_sorted": [ "_XzMFcHYZEem_kd-7nxt1sg" ] diff --git a/_testresults_/unittest.pdf b/_testresults_/unittest.pdf index f526a6e8553566f55daa1ab9f1039a8a31c201c8..6d5adcb28cc7016d96a422d6e4f1e2560f6c6f1b 100644 GIT binary patch delta 27708 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 KN delta 27736 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 X0n3cHV^~U5fS>>>J-wW|JnH`fN7Ppx diff --git a/metadata.py b/metadata.py index dffcd8e..db667b1 100644 --- a/metadata.py +++ b/metadata.py @@ -45,7 +45,7 @@ __KEY_CAMERA_MODEL__ = 'camera_model' def get_filetype(full_path): - ext = os.path.splitext(full_path)[1] + ext = os.path.splitext(full_path.lower())[1] if ext in EXTENTIONS_AUDIO: return FILETYPE_AUDIO elif ext in EXTENTIONS_IMAGE: