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_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)