123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- from datetime import datetime, timedelta
- from nose.tools import raises, eq_
- from .forge import (
- get_files_and_intervals,
- get_timefile_exact,
- round_timefile,
- get_timefile,
- mp3_join,
- )
- from .config_manager import get_config
- eight = datetime(2014, 5, 30, 20)
- nine = datetime(2014, 5, 30, 21)
- ten = datetime(2014, 5, 30, 22)
- get_config()["AUDIO_INPUT"] = ""
- get_config()["AUDIO_INPUT_FORMAT"] = "%Y-%m/%d/%Y-%m-%d-%H-%M-%S.mp3"
- get_config()["FFMPEG_PATH"] = "ffmpeg"
- get_config()["FFMPEG_OUT_CODEC"] = ["-acodec", "copy"]
- def minutes(n):
- return timedelta(minutes=n)
- def seconds(n):
- return timedelta(seconds=n)
- # timefile
- def test_timefile_exact():
- eq_(get_timefile_exact(eight), "2014-05/30/2014-05-30-20-00-00.mp3")
- # Rounding
- def test_rounding_similarity():
- eq_(round_timefile(eight), round_timefile(eight + minutes(20)))
- assert round_timefile(eight) != round_timefile(nine)
- def test_rounding_value():
- eq_(round_timefile(eight), eight)
- eq_(round_timefile(eight + minutes(20)), eight)
- # Rounding + timefile
- def test_timefile_alreadyround():
- eq_(get_timefile(eight), "2014-05/30/2014-05-30-20-00-00.mp3")
- def test_timefile_toround():
- eq_(get_timefile(eight + minutes(20)), "2014-05/30/2014-05-30-20-00-00.mp3")
- # Intervals
- @raises(ValueError)
- def test_intervals_same():
- tuple(get_files_and_intervals(eight, eight))
- @raises(ValueError)
- def test_intervals_before():
- tuple(get_files_and_intervals(nine, eight))
- def test_intervals_full_1():
- res = list(get_files_and_intervals(eight, nine - seconds(1)))
- eq_(len(res), 1)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- def test_intervals_partial_1():
- res = list(get_files_and_intervals(eight, nine - minutes(10)))
- eq_(len(res), 1)
- eq_(res[0][1], 0)
- eq_(res[0][2], 10 * 60 - 1)
- def test_intervals_exact_2():
- res = list(get_files_and_intervals(eight, nine))
- eq_(len(res), 2)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 3599)
- def test_intervals_partial_2():
- res = list(get_files_and_intervals(eight, nine + minutes(50)))
- eq_(len(res), 2)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 599)
- def test_intervals_full_2():
- res = list(get_files_and_intervals(eight, nine + minutes(59) + seconds(59)))
- eq_(len(res), 2)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 0)
- def test_intervals_exact_3():
- res = list(get_files_and_intervals(eight, ten))
- eq_(len(res), 3)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 0)
- eq_(res[2][1], 0)
- eq_(res[2][2], 3599)
- def test_intervals_partial_3():
- res = list(get_files_and_intervals(eight, ten + minutes(50)))
- eq_(len(res), 3)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 0)
- eq_(res[2][1], 0)
- eq_(res[2][2], 599)
- def test_intervals_full_3():
- res = list(get_files_and_intervals(eight, ten + minutes(59) + seconds(59)))
- eq_(len(res), 3)
- eq_(res[0][1], 0)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 0)
- eq_(res[2][1], 0)
- eq_(res[2][2], 0)
- def test_intervals_middle_1():
- res = list(get_files_and_intervals(eight + minutes(20), nine - minutes(20)))
- eq_(len(res), 1)
- eq_(res[0][1], 20 * 60)
- eq_(res[0][2], 20 * 60 - 1)
- def test_intervals_left_2():
- res = list(get_files_and_intervals(eight + minutes(30), nine))
- eq_(len(res), 2)
- eq_(res[0][1], 30 * 60)
- eq_(res[0][2], 0)
- eq_(res[1][1], 0)
- eq_(res[1][2], 3599)
- # MP3 Join
- def test_mp3_1():
- eq_(" ".join(mp3_join((("a", 0, 0),))), "ffmpeg -i concat:a -acodec copy")
- def test_mp3_1_left():
- eq_(" ".join(mp3_join((("a", 160, 0),))), "ffmpeg -i concat:a -acodec copy -ss 160")
- def test_mp3_1_right():
- eq_(
- " ".join(mp3_join((("a", 0, 1600),))), "ffmpeg -i concat:a -acodec copy -t 2000"
- )
- def test_mp3_1_leftright():
- eq_(
- " ".join(mp3_join((("a", 160, 1600),))),
- "ffmpeg -i concat:a -acodec copy -ss 160 -t 1840",
- )
- def test_mp3_2():
- eq_(
- " ".join(mp3_join((("a", 0, 0), ("b", 0, 0)))),
- "ffmpeg -i concat:a|b -acodec copy",
- )
- def test_mp3_2_leftright():
- eq_(
- " ".join(mp3_join((("a", 1000, 0), ("b", 0, 1600)))),
- "ffmpeg -i concat:a|b -acodec copy -ss 1000 -t 4600",
- )
|