From 181565b9791136af184ab0cb1e50d0d6a0505330 Mon Sep 17 00:00:00 2001 From: p-boon <24475562+p-boon@users.noreply.github.com> Date: Thu, 8 May 2025 20:09:34 +0200 Subject: [PATCH] Fixes after merging. --- frigate/test/test_motion.py | 15 ++++++++------- ...calibrating.py => 031_add_is_calibrating.py} | 2 +- testdata/test_motion_video-3.mp4 | Bin 0 -> 25746 bytes 3 files changed, 9 insertions(+), 8 deletions(-) rename migrations/{029_add_is_calibrating.py => 031_add_is_calibrating.py} (96%) create mode 100644 testdata/test_motion_video-3.mp4 diff --git a/frigate/test/test_motion.py b/frigate/test/test_motion.py index ed9e14ce8..cc118fc02 100644 --- a/frigate/test/test_motion.py +++ b/frigate/test/test_motion.py @@ -14,7 +14,8 @@ from frigate.config.camera.motion import MotionConfig from frigate.motion.improved_motion import ImprovedMotionDetector from frigate.util.image import create_mask -logging.basicConfig(level=logging.DEBUG) +logger = logging.getLogger(__name__) +logger.setLevel(logging.DEBUG) class TestMotionVideo: @@ -97,10 +98,10 @@ class TestMotion(unittest.TestCase): ) if detectedMotionFrameCount == 0: success = False - logging.error( + logger.error( f"{test_clip.file_name} No motion detected in range {expected_motion_range[0]}-{expected_motion_range[1]}" ) - logging.debug( + logger.debug( f"{detectedMotionFrameCount} out of {expectedMotionFrameCount} motion frames detected ({100 if expectedMotionFrameCount == 0 else round(detectedMotionFrameCount / expectedMotionFrameCount * 100, 2)}%)" ) @@ -113,7 +114,7 @@ class TestMotion(unittest.TestCase): for x in test_clip.motion_ranges ): success = False - logging.error( + logger.error( f"{test_clip.file_name} Invalid motion detected at frame {motion_frame}" ) # When calculating accuracy, we take the exact expected motion ranges. For passing the test, we allow for motion to linger a few frames. @@ -122,7 +123,7 @@ class TestMotion(unittest.TestCase): for x in test_clip.motion_ranges ): falsePositiveFrameCount += 1 - logging.debug( + logger.debug( f"{falsePositiveFrameCount} invalid motion frames detected ({round((total_frame_count - expectedMotionFrameCount - falsePositiveFrameCount) / (total_frame_count - expectedMotionFrameCount) * 100, 2)}%)" ) @@ -135,7 +136,7 @@ class TestMotion(unittest.TestCase): motion_detector: ImprovedMotionDetector, profile: cProfile.Profile, ): - logging.debug(f"file: {test_clip.file_name}") + logger.debug(f"file: {test_clip.file_name}") ret, frame = cap.read() frame_counter = 1 motion_frames = [] @@ -167,4 +168,4 @@ class TestMotion(unittest.TestCase): pstats.Stats(profile, stream=s).strip_dirs().sort_stats( SortKey.CUMULATIVE ).print_stats(r"\((?!\_).*\)$", 10) - logging.debug(s.getvalue()) + logger.debug(s.getvalue()) diff --git a/migrations/029_add_is_calibrating.py b/migrations/031_add_is_calibrating.py similarity index 96% rename from migrations/029_add_is_calibrating.py rename to migrations/031_add_is_calibrating.py index 58e6c2fb7..8e2d88f6a 100644 --- a/migrations/029_add_is_calibrating.py +++ b/migrations/031_add_is_calibrating.py @@ -1,4 +1,4 @@ -"""Peewee migrations -- 029_add_is_calibrating.py. +"""Peewee migrations -- 031_add_is_calibrating.py. Some examples (model - class or model name):: diff --git a/testdata/test_motion_video-3.mp4 b/testdata/test_motion_video-3.mp4 new file mode 100644 index 0000000000000000000000000000000000000000..065ee4937d0fb45cfac6bac1ee0c0673f9560d33 GIT binary patch literal 25746 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 literal 0 HcmV?d00001