コード例 #1
0
    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)
コード例 #2
0
    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)
コード例 #3
0
    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))
コード例 #4
0
    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)