tests_for_datastore #63

Merged
brian merged 45 commits from tests_for_datastore into main 2024-12-21 17:31:14 +01:00
Showing only changes of commit 7b3374d451 - Show all commits
@@ -1,11 +1,13 @@
"""Integration tests related to base CRUD functions."""
import logging
import os
from io import BytesIO
import minio
import pytest
# from shared.datastore import connect_minio, delete, get, put
from shared.datastore import delete, get, put
def same_data(
@@ -22,85 +24,94 @@ def same_data(
data_a_bytes = data_a.read()
data_b_bytes = data_b.read()
# compare size
logging.error(len(data_a_bytes))
logging.error(len(data_b_bytes))
if len(data_a_bytes) != len(data_b_bytes):
logging.error(
'data has different length: %s and %s',
len(data_a_bytes),
len(data_b_bytes),
)
return False
# compare content
if data_a_bytes != data_b_bytes:
logging.error('data has different bytes')
return False
return True
# def test_should_get_data(
# minio_client,
# data_in_minio,
# ):
# data, bucket_name, object_name = data_in_minio
# received_data = get(
# client=minio_client,
# bucket_name=bucket_name,
# object_name=object_name,
# )
def test_should_get_data(
minio_client,
data_in_minio,
):
data, bucket_name, object_name = data_in_minio
received_data = get(
client=minio_client,
bucket_name=bucket_name,
object_name=object_name,
)
# assert isinstance(data, BytesIO)
# assert same_data(data, received_data)
assert isinstance(data, BytesIO)
assert same_data(data, received_data)
# def test_should_delete_data(
# data_in_minio,
# ):
# _, bucket_name, object_name = data_in_minio
# client = connect_minio()
# delete(
# client=client,
# bucket_name=bucket_name,
# object_name=object_name,
# )
# with pytest.raises(ValueError):
# _ = get(
# client=client,
# bucket_name=bucket_name,
# object_name=object_name,
# )
def test_should_delete_data(
minio_client,
data_in_minio,
):
_, bucket_name, object_name = data_in_minio
delete(
client=minio_client,
bucket_name=bucket_name,
object_name=object_name,
)
with pytest.raises(minio.error.S3Error):
_ = get(
client=minio_client,
bucket_name=bucket_name,
object_name=object_name,
)
# def test_should_put_data(
# data,
# ):
# buffer, bucket_name, object_name = data
# client = connect_minio()
# put(
# client=client,
# buffer=buffer,
# bucket_name=bucket_name,
# object_name=object_name,
# )
# received_data = get(
# client=client,
# bucket_name=bucket_name,
# object_name=object_name,
# )
# assert received_data == data
def test_should_put_data(
minio_client,
data,
):
# prepare variables
minio_bucket_name = str(os.getenv('MINIO_BUCKET_NAME'))
minio_object_name = str(os.getenv('MINIO_OBJECT_NAME'))
buffer = BytesIO(data)
put(
client=minio_client,
buffer=buffer,
bucket_name=minio_bucket_name,
object_name=minio_object_name,
)
received_data = get(
client=minio_client,
bucket_name=minio_bucket_name,
object_name=minio_object_name,
)
assert isinstance(received_data, BytesIO)
assert same_data(received_data, buffer)
# def test_should_update_data(
# data_in_minio,
# ):
# buffer, bucket_name, object_name = data_in_minio
# client = connect_minio()
# put(
# client=client,
# buffer=buffer,
# bucket_name=bucket_name,
# object_name=object_name,
# )
# received_data = get(
# client=client,
# bucket_name=bucket_name,
# object_name=object_name,
# )
# assert received_data == buffer
def test_should_update_data(
minio_client,
data_in_minio,
):
buffer, bucket_name, object_name = data_in_minio
put(
client=minio_client,
buffer=buffer,
bucket_name=bucket_name,
object_name=object_name,
)
received_data = get(
client=minio_client,
bucket_name=bucket_name,
object_name=object_name,
)
assert same_data(received_data, buffer)
if __name__ == '__main__':
pytest.main()