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 ""
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
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
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
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
def setUp(self): super().setUp() self.socketio_client = socketio.test_client(app) ProcessRepository.set_encoding_active(False) self.socketio_client.queue.clear()
def setUp(self): super().setUp() self.socketio_client = socketio.test_client(app) ProcessRepository.set_encoding_active(False) self.socketio_client.queue.clear()