summaryrefslogtreecommitdiffstats
path: root/test/functional/swift_test_client.py
diff options
context:
space:
mode:
authorPrashanth Pai <ppai@redhat.com>2014-03-12 16:54:30 +0530
committerLuis Pabon <lpabon@redhat.com>2014-03-13 05:09:19 -0700
commit2ccd2c4d969cdd6e7feedd21ac2e5cb8498ff37d (patch)
tree1886732cf56e26ab836f9fd67c853eff2005fbeb /test/functional/swift_test_client.py
parent1a6b55714fddf7a1b526a31ee3f27589f01e98e5 (diff)
Sync with OpenStack Swift v1.13.0
Also, bumped version of gluster-swift to v1.13.0 Change-Id: I797dc704c9523540cba847b1e8ff3da97b79630c Signed-off-by: Prashanth Pai <ppai@redhat.com> Reviewed-on: http://review.gluster.org/7229 Reviewed-by: Chetan Risbud <crisbud@redhat.com> Reviewed-by: Luis Pabon <lpabon@redhat.com> Tested-by: Luis Pabon <lpabon@redhat.com>
Diffstat (limited to 'test/functional/swift_test_client.py')
-rw-r--r--test/functional/swift_test_client.py23
1 files changed, 17 insertions, 6 deletions
diff --git a/test/functional/swift_test_client.py b/test/functional/swift_test_client.py
index 47e023e..ecb2a6d 100644
--- a/test/functional/swift_test_client.py
+++ b/test/functional/swift_test_client.py
@@ -40,7 +40,7 @@ class RequestError(Exception):
class ResponseError(Exception):
- def __init__(self, response, method, path):
+ def __init__(self, response, method=None, path=None):
self.status = response.status
self.reason = response.reason
self.method = method
@@ -310,10 +310,11 @@ class Base:
def __str__(self):
return self.name
- def header_fields(self, fields):
+ def header_fields(self, required_fields, optional_fields=()):
headers = dict(self.conn.response.getheaders())
ret = {}
- for field in fields:
+
+ for field in required_fields:
if field[1] not in headers:
raise ValueError("%s was not found in response header" %
(field[1]))
@@ -322,6 +323,15 @@ class Base:
ret[field[0]] = int(headers[field[1]])
except ValueError:
ret[field[0]] = headers[field[1]]
+
+ for field in optional_fields:
+ if field[1] not in headers:
+ continue
+ try:
+ ret[field[0]] = int(headers[field[1]])
+ except ValueError:
+ ret[field[0]] = headers[field[1]]
+
return ret
@@ -480,10 +490,11 @@ class Container(Base):
parms=parms, cfg=cfg)
if self.conn.response.status == 204:
- fields = [['bytes_used', 'x-container-bytes-used'],
- ['object_count', 'x-container-object-count']]
+ required_fields = [['bytes_used', 'x-container-bytes-used'],
+ ['object_count', 'x-container-object-count']]
+ optional_fields = [['versions', 'x-versions-location']]
- return self.header_fields(fields)
+ return self.header_fields(required_fields, optional_fields)
raise ResponseError(self.conn.response, 'HEAD',
self.conn.make_path(self.path))