コード例 #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_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
コード例 #5
0
 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))
コード例 #6
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)