Fix tests
Signed-off-by: András Schmelczer <andras@schmelczer.dev>
This commit is contained in:
parent
efdd1af45b
commit
be567897d9
1 changed files with 19 additions and 33 deletions
|
|
@ -1,9 +1,9 @@
|
||||||
import unittest
|
import unittest
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any
|
from typing import Any
|
||||||
from unittest.mock import Mock, create_autospec, patch
|
from unittest.mock import Mock, patch
|
||||||
|
|
||||||
import botocore.session
|
import boto3
|
||||||
|
|
||||||
PATH = Path(__file__).parent.resolve()
|
PATH = Path(__file__).parent.resolve()
|
||||||
|
|
||||||
|
|
@ -15,7 +15,7 @@ credentials = {
|
||||||
"aws_access_key_id": "YOUR_ACCESS_KEY_ID",
|
"aws_access_key_id": "YOUR_ACCESS_KEY_ID",
|
||||||
"aws_secret_access_key": "YOUR_VERY_SECRET_ACCESS_KEY",
|
"aws_secret_access_key": "YOUR_VERY_SECRET_ACCESS_KEY",
|
||||||
"large_files_bucket_name": "create_a_bucket_and_put_its_name_here",
|
"large_files_bucket_name": "create_a_bucket_and_put_its_name_here",
|
||||||
"endpoint_url": "this is optional, for backblaze, use this: https://s3.us-west-002.backblazeb2.com",
|
"aws_endpoint_url": "this is optional, for backblaze, use this: https://s3.us-west-002.backblazeb2.com",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -29,13 +29,8 @@ class TestLargeFile(unittest.TestCase):
|
||||||
self.assertRaises(ValueError, LargeFile, "test-file", "w+r")
|
self.assertRaises(ValueError, LargeFile, "test-file", "w+r")
|
||||||
self.assertRaises(ValueError, LargeFile, "test-file", "test")
|
self.assertRaises(ValueError, LargeFile, "test-file", "test")
|
||||||
|
|
||||||
@patch("botocore.session")
|
@patch.object(boto3, "client")
|
||||||
def test_initialized_with_dict(self, session: Any) -> None:
|
def test_initialized_with_dict(self, client: Any) -> None:
|
||||||
session_mock = Mock()
|
|
||||||
session.get_session = create_autospec(
|
|
||||||
botocore.session.get_session, return_value=session_mock
|
|
||||||
)
|
|
||||||
|
|
||||||
s3 = Mock()
|
s3 = Mock()
|
||||||
s3.list_objects_v2 = Mock(
|
s3.list_objects_v2 = Mock(
|
||||||
return_value={
|
return_value={
|
||||||
|
|
@ -55,25 +50,23 @@ class TestLargeFile(unittest.TestCase):
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
boto3.client = Mock(return_value=s3)
|
||||||
session_mock.create_client = Mock(return_value=s3)
|
|
||||||
|
|
||||||
LargeFile.configure_credentials(
|
LargeFile.configure_credentials(
|
||||||
aws_region_name=credentials["aws_region_name"],
|
aws_region_name=credentials["aws_region_name"],
|
||||||
aws_access_key_id=credentials["aws_access_key_id"],
|
aws_access_key_id=credentials["aws_access_key_id"],
|
||||||
aws_secret_access_key=credentials["aws_secret_access_key"],
|
aws_secret_access_key=credentials["aws_secret_access_key"],
|
||||||
large_files_bucket_name=credentials["large_files_bucket_name"],
|
large_files_bucket_name=credentials["large_files_bucket_name"],
|
||||||
endpoint_url=credentials["endpoint_url"],
|
aws_endpoint_url=credentials["aws_endpoint_url"],
|
||||||
)
|
)
|
||||||
lf = LargeFile("test-file")
|
lf = LargeFile("test-file")
|
||||||
session_mock.set_credentials.assert_called_once_with(
|
|
||||||
access_key=credentials["aws_access_key_id"],
|
boto3.client.assert_called_once_with(
|
||||||
secret_key=credentials["aws_secret_access_key"],
|
|
||||||
)
|
|
||||||
session_mock.create_client.assert_called_once_with(
|
|
||||||
"s3",
|
"s3",
|
||||||
|
aws_access_key_id=credentials["aws_access_key_id"],
|
||||||
|
aws_secret_access_key=credentials["aws_secret_access_key"],
|
||||||
region_name=credentials["aws_region_name"],
|
region_name=credentials["aws_region_name"],
|
||||||
endpoint_url=credentials["endpoint_url"],
|
endpoint_url=credentials["aws_endpoint_url"],
|
||||||
)
|
)
|
||||||
|
|
||||||
s3.list_objects_v2.assert_called_once_with(
|
s3.list_objects_v2.assert_called_once_with(
|
||||||
|
|
@ -84,13 +77,8 @@ class TestLargeFile(unittest.TestCase):
|
||||||
self.assertEqual(lf._local_name, "test-file-2")
|
self.assertEqual(lf._local_name, "test-file-2")
|
||||||
self.assertEqual(lf._s3_name, "test-file/2")
|
self.assertEqual(lf._s3_name, "test-file/2")
|
||||||
|
|
||||||
@patch("botocore.session")
|
@patch.object(boto3, "client")
|
||||||
def test_initialized_with_file(self, session: Any) -> None:
|
def test_initialized_with_file(self, client: Any) -> None:
|
||||||
session_mock = Mock()
|
|
||||||
session.get_session = create_autospec(
|
|
||||||
botocore.session.get_session, return_value=session_mock
|
|
||||||
)
|
|
||||||
|
|
||||||
s3 = Mock()
|
s3 = Mock()
|
||||||
s3.list_objects_v2 = Mock(
|
s3.list_objects_v2 = Mock(
|
||||||
return_value={
|
return_value={
|
||||||
|
|
@ -111,19 +99,17 @@ class TestLargeFile(unittest.TestCase):
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
session_mock.create_client = Mock(return_value=s3)
|
boto3.client = Mock(return_value=s3)
|
||||||
|
|
||||||
LargeFile.configure_credentials_from_file(PATH / "../../example_secrets.ini")
|
LargeFile.configure_credentials_from_file(PATH / "../../example_secrets.ini")
|
||||||
lf = LargeFile("test-file")
|
lf = LargeFile("test-file")
|
||||||
|
|
||||||
session_mock.set_credentials.assert_called_once_with(
|
boto3.client.assert_called_once_with(
|
||||||
access_key=credentials["aws_access_key_id"],
|
|
||||||
secret_key=credentials["aws_secret_access_key"],
|
|
||||||
)
|
|
||||||
session_mock.create_client.assert_called_once_with(
|
|
||||||
"s3",
|
"s3",
|
||||||
|
aws_access_key_id=credentials["aws_access_key_id"],
|
||||||
|
aws_secret_access_key=credentials["aws_secret_access_key"],
|
||||||
region_name=credentials["aws_region_name"],
|
region_name=credentials["aws_region_name"],
|
||||||
endpoint_url=credentials["endpoint_url"],
|
endpoint_url=credentials["aws_endpoint_url"],
|
||||||
)
|
)
|
||||||
|
|
||||||
assert s3.list_objects_v2.called
|
assert s3.list_objects_v2.called
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue