import unittest from frigate.config import RetainModeEnum from frigate.record.maintainer import SegmentInfo class TestRecordRetention(unittest.TestCase): def test_motion_should_keep_motion_not_object(self): segment_info = SegmentInfo( motion_area=1, active_object_count=0, region_count=0, average_dBFS=0 ) assert not segment_info.should_discard_segment(RetainModeEnum.motion) assert segment_info.should_discard_segment(RetainModeEnum.active_objects) def test_object_should_keep_object_not_motion(self): segment_info = SegmentInfo( motion_area=0, active_object_count=1, region_count=0, average_dBFS=0 ) assert segment_info.should_discard_segment(RetainModeEnum.motion) assert not segment_info.should_discard_segment(RetainModeEnum.active_objects) def test_all_should_keep_all(self): segment_info = SegmentInfo( motion_area=0, active_object_count=0, region_count=0, average_dBFS=0 ) assert not segment_info.should_discard_segment(RetainModeEnum.all) def test_should_keep_audio_in_motion_mode(self): segment_info = SegmentInfo( motion_area=0, active_object_count=0, region_count=0, average_dBFS=1 ) assert not segment_info.should_discard_segment(RetainModeEnum.motion) assert segment_info.should_discard_segment(RetainModeEnum.active_objects)