From 347217a782a0fe09d217590c496a8d2457c36e41 Mon Sep 17 00:00:00 2001 From: "Frederick F. Kautz IV" Date: Thu, 16 Jul 2015 15:32:12 -0700 Subject: [PATCH] Adding 405 and 501 to list of handled errors. Fixes #226. --- integration/remove_bucket_integration.py | 5 +++++ integration/remove_object_integration.py | 5 +++++ minio/parsers.py | 3 +++ 3 files changed, 13 insertions(+) diff --git a/integration/remove_bucket_integration.py b/integration/remove_bucket_integration.py index b64e21544..f88c836d6 100644 --- a/integration/remove_bucket_integration.py +++ b/integration/remove_bucket_integration.py @@ -30,6 +30,7 @@ bucket = 'goroutine-delete-me' client = minio.Minio(url, access_key=access_key, secret_key=secret_key) +play_client = minio.Minio("https://play.minio.io:9000") class RemoveBucketIntegration(TestCase): @@ -44,3 +45,7 @@ def test_remove_bucket_with_data_fails(self): @raises(ResponseError) def test_invalid_bucket_name_exception(self): client.remove_bucket('1234') + + @raises(ResponseError) + def test_remove_object_not_allowed(self): + play_client.remove_object("foo", "bar") diff --git a/integration/remove_object_integration.py b/integration/remove_object_integration.py index 34bcb6521..18f466974 100644 --- a/integration/remove_object_integration.py +++ b/integration/remove_object_integration.py @@ -28,6 +28,7 @@ secret_key = credentials.secret_key() client = minio.Minio(url, access_key=access_key, secret_key=secret_key) +play_client = minio.Minio("https://play.minio.io:9000") bucket = 'goroutine-py' @@ -46,3 +47,7 @@ def test_bucket_not_found(self): def test_object_not_found(self): client.remove_object(bucket, 'missing-object') + + @raises(ResponseError) + def test_remove_bucket_not_allowed(self): + play_client.remove_bucket("foo") diff --git a/minio/parsers.py b/minio/parsers.py index 36ddaea39..de69ee272 100644 --- a/minio/parsers.py +++ b/minio/parsers.py @@ -182,6 +182,9 @@ def parse_error(response, url=None): amz_request_id = None if 'x-amz-request-id' in response.headers: amz_request_id = response.headers['x-amz-request-id'] + raise ResponseError('MethodNotAllowedException', response.reason, amz_request_id, None, url, response.data) + if response.status == 405 or response.status == 501: + raise ResponseError('MethodNotAllowedException', response.reason, amz_request_id, None, url, response.data) if response.status == 404: raise ResponseError('ObjectNotFoundException', response.reason, amz_request_id, None, url, response.data) if response.status == 403: