Beispiel #1
0
def test_uploader__uploader_sleeps_after_loop_getting_sdk_status(mocker):
    mocker.patch.object(file_uploader, "get_file_md5", autospec=True)
    mocker.patch.object(file_uploader, "get_access_token", autospec=True)
    mocker.patch.object(file_uploader, "get_upload_details", autospec=True)
    mocker.patch.object(file_uploader, "upload_file_to_s3", autospec=True)
    mocked_get_sdk_status = mocker.patch.object(file_uploader,
                                                "get_sdk_status",
                                                autospec=True,
                                                return_value="status")
    mocker.patch.object(file_uploader,
                        "download_analysis_from_s3",
                        autospec=True)
    mocked_sleep = mocker.patch.object(file_uploader, "sleep", autospec=True)

    uploader(
        TEST_FILEPATH,
        TEST_FILENAME,
        TEST_ZIPDIR,
        TEST_CUSTOMER_ACCOUNT_ID,
        TEST_PASSWORD,
        TEST_USER_ACCOUNT_ID,
        max_num_loops=2,
    )
    mocked_sleep.assert_called_once_with(5)
    assert len(mocked_get_sdk_status.call_args_list) == 2
Beispiel #2
0
def test_create_zip_file__create_zip_file_should_not_be_called_with_previously_failed_zip_file(
        mocker):
    mocked_create_zip_file = mocker.patch.object(file_uploader,
                                                 "create_zip_file",
                                                 autospec=True)
    mocker.patch.object(file_uploader, "get_file_md5", autospec=True)
    mocker.patch.object(file_uploader, "get_access_token", autospec=True)
    mocker.patch.object(file_uploader, "get_upload_details", autospec=True)
    mocker.patch.object(file_uploader, "upload_file_to_s3", autospec=True)
    mocker.patch.object(file_uploader,
                        "download_analysis_from_s3",
                        autospec=True)
    mocker.patch.object(
        file_uploader,
        "get_sdk_status",
        autospec=True,
        return_value="https",
    )

    uploader(
        TEST_FILEPATH,
        TEST_FILENAME,
        TEST_ZIPDIR,
        TEST_CUSTOMER_ACCOUNT_ID,
        TEST_PASSWORD,
        TEST_USER_ACCOUNT_ID,
    )
    mocked_create_zip_file.assert_not_called()
Beispiel #3
0
def test_download_analysis_from_s3__writes_to_downloads_directory_after_successful_upload(
        mocker):
    mocker.patch.object(file_uploader, "get_file_md5", autospec=True)
    mocker.patch.object(file_uploader, "get_access_token", autospec=True)
    mocker.patch.object(file_uploader, "get_upload_details", autospec=True)
    mocker.patch.object(file_uploader, "upload_file_to_s3", autospec=True)
    mocker.patch.object(file_uploader,
                        "get_sdk_status",
                        autospec=True,
                        return_value="https")

    with tempfile.TemporaryFile() as tmp_file:
        tmp_file.content = "test"
        mocked_post = mocker.patch.object(requests,
                                          "get",
                                          autospec=True,
                                          return_value=tmp_file)
        mocked_open = mocker.patch("builtins.open", autospec=True)
        mocker.patch.object(os.path,
                            "exists",
                            autospec=True,
                            return_value=False)
        mocker.patch.object(os, "makedirs", autospec=True)

        with tempfile.TemporaryDirectory() as temp_dir:
            test_sub_dir = temp_dir

            uploader(
                TEST_FILEPATH,
                test_sub_dir,
                TEST_ZIPDIR,
                TEST_CUSTOMER_ACCOUNT_ID,
                TEST_PASSWORD,
                TEST_USER_ACCOUNT_ID,
            )

            mocked_open.assert_called_once_with(f"{test_sub_dir}.xlsx", "wb")
            mocked_open.return_value.__enter__().write.assert_called_once_with(
                mocked_post.return_value.content)
Beispiel #4
0
def test_uploader__runs_upload_procedure_correctly_for_log_files(mocker):
    mocked_create_zip_file = mocker.patch.object(file_uploader,
                                                 "create_zip_file",
                                                 autospec=True)
    mocked_get_file_md5 = mocker.patch.object(file_uploader,
                                              "get_file_md5",
                                              autospec=True)
    mocked_get_access_token = mocker.patch.object(file_uploader,
                                                  "get_access_token",
                                                  autospec=True)
    mocked_get_upload_details = mocker.patch.object(file_uploader,
                                                    "get_upload_details",
                                                    autospec=True)
    mocked_upload_file = mocker.patch.object(file_uploader,
                                             "upload_file_to_s3",
                                             autospec=True)
    spied_download_analaysis = mocker.spy(file_uploader,
                                          "download_analysis_from_s3")
    spied_get_sdk_status = mocker.spy(
        file_uploader,
        "get_sdk_status",
    )

    with tempfile.TemporaryDirectory() as tmp_dir:
        expected_upload_details = mocked_get_upload_details.return_value
        expected_access_token = mocked_get_access_token.return_value
        expected_md5 = mocked_get_file_md5.return_value
        mocker.patch.object(os.path,
                            "exists",
                            autospec=True,
                            return_value=True)

        test_dir = tmp_dir
        zipped_file_name = f"{test_dir}.zip"
        zipped_file_path = mocked_create_zip_file.return_value

        uploader(
            TEST_LOGPATH,
            test_dir,
            TEST_ZIPDIR,
            TEST_CUSTOMER_ACCOUNT_ID,
            TEST_PASSWORD,
        )

        mocked_create_zip_file.assert_called_once_with(
            TEST_LOGPATH,
            test_dir,
            f"{os.path.join(TEST_ZIPDIR, TEST_CUSTOMER_ACCOUNT_ID)}",
        )
        mocked_get_access_token.assert_called_once_with(
            TEST_CUSTOMER_ACCOUNT_ID, TEST_PASSWORD)
        mocked_get_file_md5.assert_called_once_with(zipped_file_path)
        mocked_get_upload_details.assert_called_once_with(
            expected_access_token,
            zipped_file_name,
            TEST_CUSTOMER_ACCOUNT_ID,
            expected_md5,
            None,
            LOG_UPLOAD_TYPE,
        )
        mocked_upload_file.assert_called_once_with(zipped_file_path,
                                                   zipped_file_name,
                                                   expected_upload_details)
        spied_get_sdk_status.assert_not_called()
        spied_download_analaysis.assert_not_called()