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
        )
示例#2
0
 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)
示例#3
0
    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()
示例#4
0
 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)