def test_extract_submission_data_succesfully( self, mock_createdir, mock_down_ext ): with mock.patch( "scripts.workers.submission_worker.return_file_url_per_environment" ) as mock_url: submission_worker.extract_submission_data(self.submission.pk) submission_input_file = self.submission.input_file.url mock_url.assert_called_with(submission_input_file) submission_data_directory = "mocked/dir/submission_{}".format( self.submission.pk ) mock_createdir.assert_called_with(submission_data_directory) submission_worker.extract_submission_data(self.submission.pk) name = os.path.basename(self.submission.input_file.name) submission_input_file_url = f"http://{settings.DJANGO_SERVER}:{settings.DJANGO_SERVER_PORT}{self.submission.input_file.url}" submission_input_file_path = "mocked/dir/submission_{}/{}".format( self.submission.pk, name ) mock_down_ext.assert_called_with( submission_input_file_url, submission_input_file_path )
def test_extract_submission_data_when_submission_does_not_exist( self, mock_logger): submission_pk = self.submission.pk - 999 value = submission_worker.extract_submission_data(submission_pk) mock_logger.assert_called_with( "Submission {} does not exist".format(submission_pk)) self.assertEqual(value, None)
def test_extract_submission_data_success( self, mock_download_and_extract_file, mock_create_dir_as_python_package): submission_input_file_path = join(self.SUBMISSION_DATA_DIR, "{input_file}") mock_submission_data_dir = mock.patch( "scripts.workers.submission_worker.SUBMISSION_DATA_DIR", self.SUBMISSION_DATA_DIR, ) mock_submission_input_file_path = mock.patch( "scripts.workers.submission_worker.SUBMISSION_INPUT_FILE_PATH", submission_input_file_path, ) mock_submission_data_dir.start() mock_submission_input_file_path.start() submission = extract_submission_data(self.submission.pk) expected_submission_data_dir = self.SUBMISSION_DATA_DIR.format( submission_id=self.submission.pk) mock_create_dir_as_python_package.assert_called_with( expected_submission_data_dir) expected_submission_input_file = "{0}{1}".format( self.testserver, self.submission.input_file.url) expected_submission_input_file_path = self.get_submission_input_file_path( self.submission.pk, self.submission.input_file) mock_download_and_extract_file.assert_called_with( expected_submission_input_file, expected_submission_input_file_path) self.assertEqual(submission, self.submission) mock_submission_data_dir.stop() mock_submission_input_file_path.stop()
def test_extract_submission_data_when_submission_does_not_exist( self, mock_logger): non_existing_submission_pk = self.submission.pk + 1 value = extract_submission_data(non_existing_submission_pk) mock_logger.assert_called_with( "Submission {} does not exist".format(non_existing_submission_pk)) self.assertEqual(value, None)