added unittests for base functions

This commit is contained in:
brian
2024-11-16 18:27:59 +00:00
parent 01ee4664ff
commit 556e26f21d
4 changed files with 105 additions and 64 deletions
@@ -30,4 +30,4 @@ class TestConnectMinio(unittest.TestCase):
self.tearDown()
# run test
with self.assertRaises(AssertionError):
connect_minio()
_ = connect_minio()
+11 -27
View File
@@ -1,7 +1,5 @@
"""Definition of unittests for delete function."""
import random
import string
import unittest
from unittest.mock import Mock
@@ -13,22 +11,19 @@ from shared.datastore import delete
class TestDelete(unittest.TestCase):
def setUp(self):
# mock minio client
# set relevant variables
self.client = Mock(spec=Minio)
# set bucket name
self.bucket_name = 'test-bucket'
# set object name
self.object_name = ''.join(
random.choices(
string.ascii_uppercase + string.digits,
k=24,
),
)
self.object_name = '46KXJMFIAPVLM0TKRFZR5YPPTVJ6PJNX'
# set bad arguments
self.bad_minio_client = 'not-minio-type'
self.bad_string = float(0.0)
self.len_0_string = ''
def test_should_fail_on_wrong_input_type_client(self):
with self.assertRaises(AssertionError):
delete(
client='not-minio-type',
client=self.bad_minio_client,
bucket_name=self.bucket_name,
object_name=self.object_name,
)
@@ -37,7 +32,7 @@ class TestDelete(unittest.TestCase):
with self.assertRaises(AssertionError):
delete(
client=self.client,
bucket_name=0.0,
bucket_name=self.bad_string,
object_name=self.object_name,
)
@@ -45,7 +40,7 @@ class TestDelete(unittest.TestCase):
with self.assertRaises(AssertionError):
delete(
client=self.client,
bucket_name='',
bucket_name=self.len_0_string,
object_name=self.object_name,
)
@@ -54,7 +49,7 @@ class TestDelete(unittest.TestCase):
delete(
client=self.client,
bucket_name=self.bucket_name,
object_name=0.0,
object_name=self.bad_string,
)
def test_should_fail_on_wrong_input_length_object_name(self):
@@ -62,16 +57,5 @@ class TestDelete(unittest.TestCase):
delete(
client=self.client,
bucket_name=self.bucket_name,
object_name='',
)
def test_should_call_client__remove_object(self):
delete(
client=self.client,
bucket_name=self.bucket_name,
object_name=self.object_name,
)
self.client.remove_object.assert_called_with(
bucket_name=self.bucket_name,
object_name=self.object_name,
object_name=self.len_0_string,
)
+13 -36
View File
@@ -1,10 +1,7 @@
"""Definition of unittests for get function."""
import random
import string
import unittest
from io import BytesIO
from unittest.mock import Mock
from unittest.mock import MagicMock
from minio import Minio
@@ -12,29 +9,20 @@ from shared.datastore import get
class TestGet(unittest.TestCase):
def setUp(self):
# mock minio client
self.client = Mock(spec=Minio)
# set bucket name
# set relevant variables
self.client = MagicMock(spec=Minio)
self.bucket_name = 'test-bucket'
# set object name
self.object_name = ''.join(
random.choices(
string.ascii_uppercase + string.digits,
k=24,
),
)
# mock response object
self.client.get_object.return_value.status = 200
buffer = BytesIO(random.randbytes(2**20))
self.client.return_value.get_object = buffer
self.client.get_object.return_value.read = buffer.getvalue()
self.object_name = '46KXJMFIAPVLM0TKRFZR5YPPTVJ6PJNX'
# set bad arguments
self.bad_minio_client = 'not-minio-type'
self.bad_string = float(0.0)
self.len_0_string = ''
def test_should_fail_on_wrong_input_type_client(self):
with self.assertRaises(AssertionError):
get(
client='not-minio-type',
client=self.bad_minio_client,
bucket_name=self.bucket_name,
object_name=self.object_name,
)
@@ -43,7 +31,7 @@ class TestGet(unittest.TestCase):
with self.assertRaises(AssertionError):
get(
client=self.client,
bucket_name=0.0,
bucket_name=self.bad_string,
object_name=self.object_name,
)
@@ -51,7 +39,7 @@ class TestGet(unittest.TestCase):
with self.assertRaises(AssertionError):
get(
client=self.client,
bucket_name='',
bucket_name=self.len_0_string,
object_name=self.object_name,
)
@@ -60,7 +48,7 @@ class TestGet(unittest.TestCase):
get(
client=self.client,
bucket_name=self.bucket_name,
object_name=0.0,
object_name=self.bad_string,
)
def test_should_fail_on_wrong_input_length_object_name(self):
@@ -68,16 +56,5 @@ class TestGet(unittest.TestCase):
get(
client=self.client,
bucket_name=self.bucket_name,
object_name='',
)
def test_should_call_client__get_object(self):
get(
client=self.client,
bucket_name=self.bucket_name,
object_name=self.object_name,
)
self.client.get_object.assert_called_with(
bucket_name=self.bucket_name,
object_name=self.object_name,
object_name=self.len_0_string,
)
+80
View File
@@ -0,0 +1,80 @@
"""Definition of unittests for put function."""
import unittest
from io import BytesIO
from unittest.mock import MagicMock
from minio import Minio
from PIL import Image
from shared.datastore import put
class TestPut(unittest.TestCase):
def setUp(self):
# set relevant variables
self.client = MagicMock(spec=Minio)
self.bucket_name = 'test-bucket'
self.object_name = '46KXJMFIAPVLM0TKRFZR5YPPTVJ6PJNX'
self.image = Image.new(mode='RGB', size=(480, 480))
self.buffer = BytesIO()
self.image.save(self.buffer, 'png')
# set bad arguments
self.bad_minio_client = 'not-minio-type'
self.bad_string = float(0.0)
self.bad_buffer = 'not-buffer-type'
self.len_0_string = ''
def test_should_fail_on_wrong_input_type_client(self):
with self.assertRaises(AssertionError):
put(
client=self.bad_minio_client,
buffer=self.buffer,
bucket_name=self.bucket_name,
object_name=self.object_name,
)
def test_should_fail_on_wrong_input_type_buffer(self):
with self.assertRaises(AssertionError):
put(
client=self.bad_minio_client,
buffer=self.bad_buffer,
bucket_name=self.bucket_name,
object_name=self.object_name,
)
def test_should_fail_on_wrong_input_type_bucket_name(self):
with self.assertRaises(AssertionError):
put(
client=self.client,
buffer=self.buffer,
bucket_name=self.bad_string,
object_name=self.object_name,
)
def test_should_fail_on_wrong_input_length_bucket_name(self):
with self.assertRaises(AssertionError):
put(
client=self.client,
buffer=self.buffer,
bucket_name=self.len_0_string,
object_name=self.object_name,
)
def test_should_fail_on_wrong_input_type_object_name(self):
with self.assertRaises(AssertionError):
put(
client=self.client,
buffer=self.buffer,
bucket_name=self.bucket_name,
object_name=self.bad_string,
)
def test_should_fail_on_wrong_input_length_object_name(self):
with self.assertRaises(AssertionError):
put(
client=self.client,
buffer=self.buffer,
bucket_name=self.bucket_name,
object_name=self.len_0_string,
)