From e384491cb7feca762ccc42e615d95ea7d8bbe96b Mon Sep 17 00:00:00 2001 From: josh7810 Date: Tue, 19 May 2015 14:41:20 -0500 Subject: [PATCH] Object Smoke Test Changes * Removed use of deprecated md5 library, using hashlib instead. * Slightly changed functionality of test object_creation_with_etag to test all object types. This removed the necessity for a separate method to test large objects. * Added test_object_creation_with_uppercase_etag * Updated copyright year Change-Id: Ia3310d0065c01683540da9fa1556709dcd164a75 --- .../objectstorage/smoke/object_smoke.py | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/cloudroast/objectstorage/smoke/object_smoke.py b/cloudroast/objectstorage/smoke/object_smoke.py index 884f916d..dbd41223 100644 --- a/cloudroast/objectstorage/smoke/object_smoke.py +++ b/cloudroast/objectstorage/smoke/object_smoke.py @@ -1,5 +1,5 @@ """ -Copyright 2013 Rackspace +Copyright 2015 Rackspace Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ See the License for the specific language governing permissions and limitations under the License. """ import calendar -import md5 import time import zlib +from hashlib import md5 from cafe.drivers.unittest.decorators import ( DataDrivenFixture, data_driven_test) @@ -396,7 +396,7 @@ class ObjectSmokeTest(ObjectStorageFixture): expected=expected, received=str(received))) - response_md5 = md5.new(response.content).hexdigest() + response_md5 = md5(response.content).hexdigest() self.assertEqual( object_info.get('md5'), response_md5, @@ -432,7 +432,7 @@ class ObjectSmokeTest(ObjectStorageFixture): expected=expected, received=str(received))) - @data_driven_test(ObjectDatasetList(exclude=['dlo', 'slo'])) + @data_driven_test(ObjectDatasetList()) def ddtest_object_creation_with_etag( self, object_type, generate_object): container_name = self.create_temp_container( @@ -465,7 +465,10 @@ class ObjectSmokeTest(ObjectStorageFixture): response.headers, msg="Etag header was set") - expected = object_info.get('etag') + if object_type == 'standard': + expected = object_info.get('etag') + else: + expected = '"{0}"'.format(object_info.get('etag')) received = response.headers.get('etag') self.assertEqual( @@ -476,18 +479,25 @@ class ObjectSmokeTest(ObjectStorageFixture): expected, received)) - @data_driven_test(ObjectDatasetList(exclude=['standard'])) - def ddtest_large_object_creation_with_etag( - self, object_type, generate_object): + @data_driven_test(ObjectDatasetList(exclude=['dlo', 'slo'])) + def test_object_creation_with_uppercase_etag(self): + container_name = self.create_temp_container( descriptor=CONTAINER_DESCRIPTOR) object_name = self.default_obj_name - object_info = generate_object(container_name, object_name) + object_data = "valid_data" + data_md5 = md5(object_data).hexdigest() + upper_etag = data_md5.upper() - response = object_info.get('response') - method = 'object creation with etag header' + headers = {"ETag": upper_etag} + create_response = self.client.create_object(container_name, + object_name, + data=object_data, + headers=headers) + + method = 'object creation with uppercase etag header' expected = 201 - received = response.status_code + received = create_response.status_code self.assertEqual( expected, @@ -497,20 +507,16 @@ class ObjectSmokeTest(ObjectStorageFixture): expected=expected, received=str(received))) - response = self.client.get_object_metadata( - container_name, - self.default_obj_name) - - response = self.client.get_object( + object_response = self.client.get_object( container_name, self.default_obj_name) self.assertIn( 'etag', - response.headers, + object_response.headers, msg="Etag header was set") - expected = '"{0}"'.format(object_info.get('etag')) - received = response.headers.get('etag') + expected = data_md5 + received = object_response.headers.get('etag') self.assertEqual( expected,