У меня есть следующий метод, для которого мне нужно написать модульный тест. Я новичок в использовании pytest. Я загружаю файл в корзину на GCP, используя библиотеку хранилища google.cloud в python.
def upload_to_gcs(topic, upload_file_name, upload_file_location, gcs_bucket_name, gcp_key_json):
try:
client = storage.Client.from_service_account_json(gcp_key_json)
bucket = client.get_bucket(gcs_bucket_name)
gcs_folder_loc = topic + '/' + upload_file_name
bucket.blob(gcs_folder_loc).upload_from_filename(upload_file_location)
_LOGGER.info("File %s has been uploaded to folder %s", upload_file_name, topic)
except Exception as e:
_LOGGER.exception("Caught unexpected exception while uploading file to GCS %s", e)
finally:
try:
if os.path.isfile(upload_file_location):
os.remove(upload_file_location)
except OSError as e:
_LOGGER.exception("Error: %s - %s." % (e.filename, e.strerror))
У меня есть следующее, но я не уверен, как протестировать загрузку. Любая помощь приветствуется -
def test_upload_to_gcs():
mock_client = mock.create_autospec(storage.Client)
mock_bucket = mock.create_autospec(storage.bucket.Bucket)
mock_bucket.name = 'test_bucket'
mock_client.get_bucket.return_value = mock_bucket
mock_blob = mock.create_autospec(storage.blob.Blob)
mock_blob.name = 'test_blob'
mock_bucket.get_blob.return_value = mock_blob