]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/rgw: pass encoding to Key.get_content_as_string()
authorKefu Chai <kchai@redhat.com>
Mon, 6 Apr 2020 15:11:21 +0000 (23:11 +0800)
committerKefu Chai <kchai@redhat.com>
Tue, 7 Apr 2020 13:51:23 +0000 (21:51 +0800)
we assume that boto.Key.get_content_as_string() returns str instead of
bytes, and compare the return value with a string, so, to ensure that
lhs and rhs are both strings, we need to decode the returned content.

since we always store strings composed with ASCII, it's safe to use
'ascii' to decode them.

Signed-off-by: Kefu Chai <kchai@redhat.com>
src/test/rgw/rgw_multi/tests.py
src/test/rgw/rgw_multi/tests_az.py
src/test/rgw/rgw_multi/zone_cloud.py

index f910b7c57e4a13aec33fa4affb309354ed67d383..5a496d39665fa14775a4abeb809da98d0548ded4 100644 (file)
@@ -998,14 +998,14 @@ def test_multi_zone_redirect():
 
     key2 = bucket2.get_key(obj)
 
-    eq(data, key2.get_contents_as_string())
+    eq(data, key2.get_contents_as_string(encoding='ascii'))
 
     key = bucket.new_key(obj)
 
     for x in ['a', 'b', 'c', 'd']:
         data = x*512
         key.set_contents_from_string(data)
-        eq(data, key2.get_contents_as_string())
+        eq(data, key2.get_contents_as_string(encoding='ascii'))
 
     # revert config changes
     set_sync_from_all(z2, True)
@@ -1239,10 +1239,10 @@ def test_encrypted_object_sync():
     # read the encrypted objects from the second zone
     bucket2 = get_bucket(zone2, bucket_name)
     key = bucket2.get_key('testobj-sse-c', headers=sse_c_headers)
-    eq(data, key.get_contents_as_string(headers=sse_c_headers))
+    eq(data, key.get_contents_as_string(headers=sse_c_headers, encoding='ascii'))
 
     key = bucket2.get_key('testobj-sse-kms')
-    eq(data, key.get_contents_as_string())
+    eq(data, key.get_contents_as_string(encoding='ascii'))
 
 def test_bucket_index_log_trim():
     zonegroup = realm.master_zonegroup()
index 1a1434ae26ce9c1478dc5eac0a4cd966528447ab..13ec832a2041ca2d8486d8bae7736bf735d164ab 100644 (file)
@@ -221,7 +221,7 @@ def test_az_object_replication():
     # check object on archive zone
     bucket_az = az_zones[0].conn.get_bucket(bucket_name)
     key_az = bucket_az.get_key("foo")
-    p1 = key_az.get_contents_as_string() == "bar"
+    p1 = key_az.get_contents_as_string(encoding='ascii') == "bar"
     assert_equal(p1, True)
 
 
@@ -238,7 +238,7 @@ def test_az_object_replication_versioning():
     # check object content on archive zone
     bucket_az = az_zones[0].conn.get_bucket(bucket_name)
     key_az = bucket_az.get_key("foo")
-    p1 = key_az.get_contents_as_string() == "bar"
+    p1 = key_az.get_contents_as_string(encoding='ascii') == "bar"
     assert_equal(p1, True)
     # grab object versioning and etag
     for b_version in bucket.list_versions():
@@ -345,13 +345,13 @@ def test_az_deleted_object_replication():
     bucket = zones[0].create_bucket(bucket_name)
     key = bucket.new_key("foo")
     key.set_contents_from_string("bar")
-    p1 = key.get_contents_as_string() == "bar"
+    p1 = key.get_contents_as_string(encoding='ascii') == "bar"
     assert_equal(p1, True)
     # sync
     zone_full_checkpoint(az_zones[0].zone, zones[0].zone)
     # update object on non archive zone
     key.set_contents_from_string("soup")
-    p2 = key.get_contents_as_string() == "soup"
+    p2 = key.get_contents_as_string(encoding='ascii') == "soup"
     assert_equal(p2, True)
     # sync
     zone_full_checkpoint(az_zones[0].zone, zones[0].zone)
@@ -367,7 +367,7 @@ def test_az_deleted_object_replication():
     key_az = bucket_az.get_key("foo")
     p4 = check_key_exists(key_az) == True
     assert_equal(p4, True)
-    p5 = key_az.get_contents_as_string() == "soup"
+    p5 = key_az.get_contents_as_string(encoding='ascii') == "soup"
     assert_equal(p5, True)
     b_ver_az = get_versioned_objs(bucket_az)
     p6 = len(b_ver_az) == 2
@@ -450,10 +450,10 @@ def test_az_old_object_version_in_archive_zone():
     assert_equal(p4, True)
     # check versioned objects on archive zone
     new_key_az = new_bucket_az.get_key("foo", version_id=obj_az_version_id)
-    p5 = new_key_az.get_contents_as_string() == "zero"
+    p5 = new_key_az.get_contents_as_string(encoding='ascii') == "zero"
     assert_equal(p5, True)
     new_key_latest_az = new_bucket_az.get_key("foo")
-    p6 = new_key_latest_az.get_contents_as_string() == "one"
+    p6 = new_key_latest_az.get_contents_as_string(encoding='ascii') == "one"
     assert_equal(p6, True)
 
 
@@ -589,9 +589,9 @@ def test_az_versioning_support_in_zones():
     # check body in zones
     obj_version_id = b_ver[0]['foo']['version_id']
     key = bucket.get_key("foo", version_id=obj_version_id)
-    p18 = key.get_contents_as_string() == "zero"
+    p18 = key.get_contents_as_string(encoding='ascii') == "zero"
     assert_equal(p18, True)
     obj_az_version_id = b_ver_az[0]['foo']['version_id']
     key_az = bucket_az.get_key("foo", version_id=obj_az_version_id)
-    p19 = key_az.get_contents_as_string() == "zero"
+    p19 = key_az.get_contents_as_string(encoding='ascii') == "zero"
     assert_equal(p19, True)
index a9caff1e84e6e43a104517f688def1b61996060c..eb945a44bc21d248430a50d38b2313fb0cc20c1f 100644 (file)
@@ -129,8 +129,8 @@ class CloudKey:
         self.content_language = k.content_language
 
 
-    def get_contents_as_string(self):
-        r = self.key.get_contents_as_string()
+    def get_contents_as_string(self, encoding=None):
+        r = self.key.get_contents_as_string(encoding=encoding)
 
         # the previous call changed the status of the source object, as it loaded
         # its metadata