@@ -122,6 +122,13 @@ def test_timecode_string():
122122 assert FrameTimecode (timecode = "00:00:02.0000" , fps = 1 ).frame_num == 2
123123 assert FrameTimecode (timecode = "00:00:02.0001" , fps = 1 ).frame_num == 2
124124
125+ # MM:SS[.nnn] is also allowed
126+ assert FrameTimecode (timecode = "00:01" , fps = 1 ).frame_num == 1
127+ assert FrameTimecode (timecode = "00:01.9999" , fps = 1 ).frame_num == 2
128+ assert FrameTimecode (timecode = "00:02.0000" , fps = 1 ).frame_num == 2
129+ assert FrameTimecode (timecode = "00:02.0001" , fps = 1 ).frame_num == 2
130+
131+ # Conversion edge cases
125132 assert FrameTimecode (timecode = "00:00:01" , fps = 10 ).frame_num == 10
126133 assert FrameTimecode (timecode = "00:00:00.5" , fps = 10 ).frame_num == 5
127134 assert FrameTimecode (timecode = "00:00:00.100" , fps = 10 ).frame_num == 1
@@ -135,6 +142,10 @@ def test_timecode_string():
135142 assert FrameTimecode (timecode = "01:00:00.000" , fps = 1 ).frame_num == 3600
136143 assert FrameTimecode (timecode = "01:00:00.001" , fps = 1 ).frame_num == 3600
137144
145+ # Check too many ":" characters (https://github.com/Breakthrough/PySceneDetect/issues/476)
146+ with pytest .raises (ValueError ):
147+ FrameTimecode (timecode = "01:01:00:00.001" , fps = 1 )
148+
138149
139150def test_get_frames ():
140151 """Test FrameTimecode get_frames() method."""
0 commit comments