mirror of
https://github.com/KevinMidboe/spotify-downloader.git
synced 2025-10-29 18:00:15 +00:00
Handle '.' as a time value separator (#301)
This commit is contained in:
@@ -129,7 +129,14 @@ def videotime_from_seconds(time):
|
|||||||
|
|
||||||
|
|
||||||
def get_sec(time_str):
|
def get_sec(time_str):
|
||||||
v = time_str.split(':', 3)
|
if ':' in time_str:
|
||||||
|
splitter = ':'
|
||||||
|
elif '.' in time_str:
|
||||||
|
splitter = '.'
|
||||||
|
else:
|
||||||
|
raise ValueError("No expected character found in {} to split"
|
||||||
|
"time values.".format(time_str))
|
||||||
|
v = time_str.split(splitter, 3)
|
||||||
v.reverse()
|
v.reverse()
|
||||||
sec = 0
|
sec = 0
|
||||||
if len(v) > 0: # seconds
|
if len(v) > 0: # seconds
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ from core import internals
|
|||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
|
||||||
def test_default_music_directory():
|
def test_default_music_directory():
|
||||||
@@ -35,7 +36,7 @@ class TestPathFilterer:
|
|||||||
assert is_file == expect_file
|
assert is_file == expect_file
|
||||||
|
|
||||||
|
|
||||||
class TestVideoTime:
|
class TestVideoTimeFromSeconds:
|
||||||
def test_from_seconds(self):
|
def test_from_seconds(self):
|
||||||
expect_duration = '35'
|
expect_duration = '35'
|
||||||
duration = internals.videotime_from_seconds(35)
|
duration = internals.videotime_from_seconds(35)
|
||||||
@@ -50,3 +51,32 @@ class TestVideoTime:
|
|||||||
expect_duration = '1:16:02'
|
expect_duration = '1:16:02'
|
||||||
duration = internals.videotime_from_seconds(4562)
|
duration = internals.videotime_from_seconds(4562)
|
||||||
assert duration == expect_duration
|
assert duration == expect_duration
|
||||||
|
|
||||||
|
|
||||||
|
class TestGetSeconds:
|
||||||
|
def test_from_seconds(self):
|
||||||
|
expect_secs = 45
|
||||||
|
secs = internals.get_sec('0:45')
|
||||||
|
assert secs == expect_secs
|
||||||
|
secs = internals.get_sec('0.45')
|
||||||
|
assert secs == expect_secs
|
||||||
|
|
||||||
|
def test_from_minutes(self):
|
||||||
|
expect_secs = 213
|
||||||
|
secs = internals.get_sec('3.33')
|
||||||
|
assert secs == expect_secs
|
||||||
|
secs = internals.get_sec('3:33')
|
||||||
|
assert secs == expect_secs
|
||||||
|
|
||||||
|
def test_from_hours(self):
|
||||||
|
expect_secs = 5405
|
||||||
|
secs = internals.get_sec('1.30.05')
|
||||||
|
assert secs == expect_secs
|
||||||
|
secs = internals.get_sec('1:30:05')
|
||||||
|
assert secs == expect_secs
|
||||||
|
|
||||||
|
def test_raise_error(self):
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
internals.get_sec('10*05')
|
||||||
|
with pytest.raises(ValueError):
|
||||||
|
internals.get_sec('02,28,46')
|
||||||
|
|||||||
Reference in New Issue
Block a user