def test_spawn_unknown_type(self): conf = Config() conf.COMMANDS.rtmpdump = '/bin/true' conf.COMMANDS.ffmpeg = '/bin/true' downloads = Download(conf, []) file_record = FileRecord(Fileinfo('foo', 20)) ret = downloads.spawn(file_record) self.assertIsNone(ret)
def test_spawn_file_exists(self): conf = Config() conf.COMMANDS.rtmpdump = '/bin/true' conf.COMMANDS.ffmpeg = '/bin/true' downloads = Download(conf, []) os.chdir(os.path.dirname(__file__)) file_record = FileRecord(Fileinfo('rtmp://existing_file', Rtypes.RTMP)) ret = downloads.spawn(file_record) self.assertIsNone(ret)
def test_spawn_http(self): conf = Config() conf.COMMANDS.rtmpdump = '/bin/true' conf.COMMANDS.ffmpeg = '/bin/true' downloads = Download(conf, []) file_record = FileRecord(Fileinfo('replay/mp4:20150816.mp4/playlist.m3u8', Rtypes.HTTP)) proc_info = downloads.spawn(file_record) self.assertEqual(file_record[-1], Fileinfo('20150816.mp4', Ftypes.MP4, 'Download', Ftypes.AAC)) self.assertEqual(proc_info, Procinfo(proc_info.proc, file_record))
def test_set_destdir(self): conf = Config() conf.COMMANDS.rtmpdump = '/bin/true' conf.COMMANDS.ffmpeg = '/bin/true' downloads = Download(conf, []) destdir = 'destdir' downloads.destination = destdir self.assertEqual(downloads.destination, destdir) self.assertTrue(os.path.isdir(destdir)) try: os.rmdir(destdir) except OSError: if os.path.isdir(destdir): raise
def test_parse_todownload_list(self): l = [' # foo', 'bar', 'http://baz', ' foo1', 'http://bar1 '] down_list = Download.parse_todownload_list(l) self.assertEqual(down_list[0][-1], Fileinfo(path='rtmp://bar', type=Rtypes.RTMP)) self.assertEqual(down_list[1][-1], Fileinfo(path='http://baz', type=Rtypes.HTTP)) self.assertEqual(down_list[2][-1], Fileinfo(path='rtmp://foo1', type=Rtypes.RTMP)) self.assertEqual(down_list[3][-1], Fileinfo(path='http://bar1', type=Rtypes.HTTP))
def test_finished_rtmp(self): conf = Config() conf.COMMANDS.rtmpdump = '/bin/true' conf.COMMANDS.ffmpeg = '/bin/true' downloads = Download(conf, []) file_record = FileRecord(Fileinfo('rtmp://foo', Rtypes.RTMP)) proc_info = downloads.spawn(file_record) self.assertEqual(proc_info, Procinfo(proc_info.proc, file_record)) self.assertEqual(file_record.rec, [Fileinfo('rtmp://foo', Rtypes.RTMP), Fileinfo('foo.flv', Ftypes.FLV, 'Download', Ftypes.MP3)]) os.chdir(os.path.dirname(__file__)) open('foo.flv.part', 'w') while proc_info.proc.poll() is None: time.sleep(0.05) ret = downloads.finished_handler(proc_info) os.remove('foo.flv') self.assertEqual(ret, 0) self.assertEqual(downloads.out[MsgTypes.finished].msglist[0][0], 'foo.flv') self.assertEqual(downloads.finished_ready[0], file_record)