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
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()
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)
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()