Fix tests

Signed-off-by: András Schmelczer <andras@schmelczer.dev>
This commit is contained in:
Andras Schmelczer 2022-04-06 17:21:18 +02:00
parent 1684515eab
commit 3c1b02855a

View file

@ -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