Skip to content

Commit 00d7dda

Browse files
committed
Reverting back to boto3 resource level call in tasks
1 parent 7de9aad commit 00d7dda

3 files changed

Lines changed: 10 additions & 18 deletions

File tree

taiga2/tasks.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,17 @@ def background_process_new_upload_session_file(
130130
)
131131

132132
# We copy the file to 'convert/'
133+
copy_source = {"Bucket": bucket_name, "Key": initial_s3_key}
133134
b = s3.Bucket(bucket_name)
134135
existing_obj = b.Object(initial_s3_key)
135-
aws.s3_client.copy_object(
136-
Bucket=bucket_name,
137-
Key=converted_s3_key,
138-
CopySource={"Bucket": bucket_name, "Key": initial_s3_key},
139-
)
136+
b.copy(copy_source, converted_s3_key)
137+
# If using MiniStack locally and b.copy() fails (MiniStack omits ETag),
138+
# comment out b.copy() above and uncomment the client-level call below:
139+
# aws.s3_client.copy_object(
140+
# Bucket=bucket_name,
141+
# Key=converted_s3_key,
142+
# CopySource={"Bucket": bucket_name, "Key": initial_s3_key},
143+
# )
140144
compressed_s3_object = s3.Object(bucket_name, compressed_s3_key)
141145
with tempfile.NamedTemporaryFile("w+b") as download_dest:
142146
with tempfile.NamedTemporaryFile("w+b") as compressed_dest:

taiga2/tests/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ def app(request, mock_s3, mock_sts, tmpdir):
7070
# Monkey patch S3
7171
g._s3_resource = mock_s3
7272

73-
g._s3_client = MockS3Client(mock_s3)
73+
g._s3_client = MockS3Client()
7474

7575
g._sts_client = mock_sts
7676

taiga2/tests/mock_s3.py

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -101,21 +101,9 @@ def download_as_bytes(self):
101101

102102

103103
class MockS3Client:
104-
def __init__(self, mock_s3=None):
105-
self._mock_s3 = mock_s3
106-
107104
def generate_presigned_url(self, ClientMethod, Params):
108105
return "https://mocks3/{}/{}?signed=Y".format(Params["Bucket"], Params["Key"])
109106

110-
def copy_object(self, Bucket, Key, CopySource, **kwargs):
111-
if self._mock_s3 is None:
112-
raise RuntimeError("MockS3Client needs a MockS3 reference to perform copy_object")
113-
src_bucket = CopySource["Bucket"]
114-
src_key = CopySource["Key"]
115-
src_path = self._mock_s3.file_per_key[(src_bucket, src_key)]
116-
with open(src_path, "rb") as f:
117-
self._mock_s3.Bucket(Bucket).put_object(Key=Key, Body=f)
118-
119107

120108
def parse_presigned_url(url):
121109
g = re.match("https://mocks3/([^/]+)/([^?]+)\\?signed=Y", url)

0 commit comments

Comments
 (0)