Пример #1
0
def toggle_encoding_active():
    """
    toggle the current encoding active status (from either True to False and vice-versa)
    :return: ""
    """

    ProcessRepository.set_encoding_active(not ProcessRepository.encoding_active)
    return ""
Пример #2
0
    def test_check_and_start_processes(self, mock_probe, mock_run):
        def mocked_run_ffmpeg(cmd, frame_count):
            yield {
                "return_code": -1,
                "ffmpeg_eta": 1,
                "ffmpeg_progress": 0,
                "ffmpeg_bitrate": 0,
                "ffmpeg_time": 0,
                "ffmpeg_size": 0,
                "ffmpeg_fps": 0
            }

        # mock run_ffmpeg()
        mock_run.side_effect = mocked_run_ffmpeg

        # add Package
        package = Package(queue=True)
        db.session.add(package)
        # add File
        file = File(status=StatusMap.queued.value,
                    filename="dummy.mkv",
                    size=100 * 1024)
        db.session.add(file)
        package.files.append(file)

        db.session.commit()

        # set parallel processes to 1
        config["general"]["parallel_processes"] = "1"

        # start processing
        with patch("os.rename"):
            with patch("os.remove"):
                ProcessRepository.set_encoding_active(True)

        self.assertTrue(mock_run.called)
        self.assertTrue(mock_run.call_count == 1)

        received = self.socketio_client.get_received()
        # there should have gotten one file_started and file_done event triggered
        self.assertEqual(
            len([x for x in received if x["name"] == "file_started"]), 1)
        self.assertEqual(
            len([x for x in received if x["name"] == "file_done"]), 1)

        # the status should be "finished" now
        # self.assertEqual(File.query.filter_by(id=file.id).first().status, StatusMap.finished.value)
        # print(File.query.filter_by(id=file.id).first().status)
        return
Пример #3
0
    def test_set_encoding_active(self):
        # encoding_active should be False when creating app
        self.assertFalse(ProcessRepository.encoding_active)

        ProcessRepository.set_encoding_active(True)

        # ... and should be True now
        self.assertTrue(ProcessRepository.encoding_active)

        # test we received active_changed with the correct data
        received = self.socketio_client.get_received()
        self.assertEqual(len(received), 1)
        self.assertEqual(received[0]["name"], "active_changed")
        self.assertEqual(received[0]["args"], [{"active": True}])

        return
Пример #4
0
    def test_set_encoding_active(self):
        # encoding_active should be False when creating app
        self.assertFalse(ProcessRepository.encoding_active)

        ProcessRepository.set_encoding_active(True)

        # ... and should be True now
        self.assertTrue(ProcessRepository.encoding_active)

        # test we received active_changed with the correct data
        received = self.socketio_client.get_received()
        self.assertEqual(len(received), 1)
        self.assertEqual(received[0]["name"], "active_changed")
        self.assertEqual(received[0]["args"], [{"active": True}])

        return
Пример #5
0
    def test_check_and_start_processes(self, mock_probe, mock_run):
        def mocked_run_ffmpeg(cmd, frame_count):
            yield {"return_code": -1, "ffmpeg_eta": 1, "ffmpeg_progress": 0, "ffmpeg_bitrate": 0, "ffmpeg_time": 0, "ffmpeg_size": 0, "ffmpeg_fps": 0}

        # mock run_ffmpeg()
        mock_run.side_effect = mocked_run_ffmpeg

        # add Package
        package = Package(queue=True)
        db.session.add(package)
        # add File
        file = File(status=StatusMap.queued.value, filename="dummy.mkv", size=100 * 1024)
        db.session.add(file)
        package.files.append(file)

        db.session.commit()

        # set parallel processes to 1
        config["general"]["parallel_processes"] = "1"

        # start processing
        with patch("os.rename"):
            with patch("os.remove"):
                ProcessRepository.set_encoding_active(True)

        self.assertTrue(mock_run.called)
        self.assertTrue(mock_run.call_count == 1)

        received = self.socketio_client.get_received()
        # there should have gotten one file_started and file_done event triggered
        self.assertEqual(len([x for x in received if x["name"] == "file_started"]), 1)
        self.assertEqual(len([x for x in received if x["name"] == "file_done"]), 1)

        # the status should be "finished" now
        # self.assertEqual(File.query.filter_by(id=file.id).first().status, StatusMap.finished.value)
        # print(File.query.filter_by(id=file.id).first().status)
        return
Пример #6
0
    def setUp(self):
        super().setUp()

        self.socketio_client = socketio.test_client(app)
        ProcessRepository.set_encoding_active(False)
        self.socketio_client.queue.clear()
Пример #7
0
    def setUp(self):
        super().setUp()

        self.socketio_client = socketio.test_client(app)
        ProcessRepository.set_encoding_active(False)
        self.socketio_client.queue.clear()