def test_finished_mp3(self):
        conf = Config()
        conf.COMMANDS.rtmpdump = '/bin/true'
        conf.COMMANDS.ffmpeg = '/bin/true'
        extracting = ExtractAudio(conf, [])

        file_record = FileRecord(Fileinfo('20150816.flv', Ftypes.FLV,
                                          audio_f=Ftypes.MP3))
        proc_info = extracting.spawn(file_record)
        self.assertIsNot(proc_info, None)
        self.assertEqual(file_record.rec, [Fileinfo('20150816.flv', Ftypes.FLV,
                                                    audio_f=Ftypes.MP3),
                                           Fileinfo('20150816.mp3', Ftypes.MP3,
                                                    'ExtractAudio', Ftypes.MP3)])
        self.assertEqual(proc_info, Procinfo(proc_info.proc, file_record))
        os.chdir(os.path.dirname(__file__))
        open('20150816.mp3', 'w')
        while proc_info.proc.poll() is None:
            time.sleep(0.05)

        ret = extracting.finished_handler(proc_info)
        os.remove('20150816.mp3')
        self.assertEqual(ret, 0)
        print(extracting.out[MsgTypes.finished])
        self.assertEqual(extracting.out[MsgTypes.finished].msglist[0][0], '20150816.mp3')
        self.assertEqual(extracting.finished_ready[0], file_record)
    def test_spawn_same_type(self):
        conf = Config()
        conf.COMMANDS.rtmpdump = '/bin/true'
        conf.COMMANDS.ffmpeg = '/bin/true'
        extracting = ExtractAudio(conf, [])

        file_record = FileRecord(Fileinfo('20150816.mp3', 'mp3', audio_f='mp3'))
        ret = extracting.spawn(file_record)
        self.assertIsNone(ret)
    def test_spawn_file_exists(self):
        conf = Config()
        conf.COMMANDS.rtmpdump = '/bin/true'
        conf.COMMANDS.ffmpeg = '/bin/true'
        extracting = ExtractAudio(conf, [])

        os.chdir(os.path.dirname(__file__))
        file_record = FileRecord(Fileinfo('existing_file.flv', Ftypes.FLV,
                                          audio_f=Ftypes.MP3))
        ret = extracting.spawn(file_record)
        self.assertIsNone(ret)
    def test_spawn(self):
        conf = Config()
        conf.COMMANDS.rtmpdump = '/bin/true'
        conf.COMMANDS.ffmpeg = '/bin/true'
        extracting = ExtractAudio(conf, [])

        file_record = FileRecord(Fileinfo('20150816.flv', Ftypes.FLV,
                                          audio_f=Ftypes.MP3))
        proc_info = extracting.spawn(file_record)
        self.assertIsNot(proc_info, None)
        self.assertEqual(file_record[-1], Fileinfo('20150816.mp3',
                                                   Ftypes.MP3,
                                                   'ExtractAudio',
                                                   Ftypes.MP3))
        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'
        extracting = ExtractAudio(conf, [])
        destdir = 'destdir'

        extracting.destination = destdir
        self.assertEqual(extracting.destination, destdir)
        self.assertTrue(os.path.isdir(destdir))
        try:
            os.rmdir(destdir)
        except OSError:
            if os.path.isdir(destdir):
                raise