From 64ed605c14e9de54c13256cdb4d006234f5954c4 Mon Sep 17 00:00:00 2001 From: Steve Pulec Date: Wed, 13 Aug 2014 22:13:17 -0400 Subject: [PATCH] Ignore S3 ACL for now since we do not implement it. --- moto/s3/responses.py | 8 ++++++-- tests/test_s3/test_s3.py | 17 +++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/moto/s3/responses.py b/moto/s3/responses.py index eee8e22de..027735261 100644 --- a/moto/s3/responses.py +++ b/moto/s3/responses.py @@ -253,7 +253,7 @@ class ResponseObject(object): if method == 'GET': return self._key_response_get(bucket_name, query, key_name, headers) elif method == 'PUT': - return self._key_response_put(request, body, bucket_name, query, key_name, headers) + return self._key_response_put(request, parsed_url, body, bucket_name, query, key_name, headers) elif method == 'HEAD': return self._key_response_head(bucket_name, key_name, headers) elif method == 'DELETE': @@ -284,7 +284,7 @@ class ResponseObject(object): else: return 404, headers, "" - def _key_response_put(self, request, body, bucket_name, query, key_name, headers): + def _key_response_put(self, request, parsed_url, body, bucket_name, query, key_name, headers): if 'uploadId' in query and 'partNumber' in query: upload_id = query['uploadId'][0] part_number = int(query['partNumber'][0]) @@ -305,6 +305,10 @@ class ResponseObject(object): storage_class = request.headers.get('x-amz-storage-class', 'STANDARD') + if parsed_url.query == 'acl': + # We don't implement ACL yet, so just return + return 200, headers, "" + if 'x-amz-copy-source' in request.headers: # Copy key src_bucket, src_key = request.headers.get("x-amz-copy-source").split("/", 1) diff --git a/tests/test_s3/test_s3.py b/tests/test_s3/test_s3.py index 1738db53f..f5eb6888a 100644 --- a/tests/test_s3/test_s3.py +++ b/tests/test_s3/test_s3.py @@ -589,3 +589,20 @@ def test_list_versions(): versions[1].name.should.equal('the-key') versions[1].version_id.should.equal('1') versions[1].get_contents_as_string().should.equal("Version 2") + + +@mock_s3 +def test_acl_is_ignored_for_now(): + conn = boto.connect_s3() + bucket = conn.create_bucket('foobar') + content = 'imafile' + keyname = 'test.txt' + + key = Key(bucket, name=keyname) + key.content_type = 'text/plain' + key.set_contents_from_string(content) + key.make_public() + + key = bucket.get_key(keyname) + + assert key.get_contents_as_string() == content