Fix account metadata test for Ceph RadosGW Squid release
The test_list_no_account_metadata test was failing with Ceph RadosGW
19.2.x (Squid release) because it returns X-Account-Meta-Quota-Containers
as a system-generated header.
This change filters out the specific x-account-meta-quota-containers
header when checking for user-defined account metadata, allowing the
test to pass with both Swift and Ceph RadosGW backends while still
validating that no user-defined metadata headers are present.
Related ceph commit: https://github.com/ceph/ceph/commit/55f196cb47c9a452fc718ba9a58be7f68bb7a54a
Change-Id: Idbf22909b389190f7365bb3e54fd77d69df0c789
Signed-off-by: Maximilian Stinsky <maximilian.stinsky-damke@wiit.cloud>
diff --git a/tempest/api/object_storage/test_account_services.py b/tempest/api/object_storage/test_account_services.py
index 75414c0..031ddee 100644
--- a/tempest/api/object_storage/test_account_services.py
+++ b/tempest/api/object_storage/test_account_services.py
@@ -307,7 +307,18 @@
"""Test listing account metadata for account without metadata"""
resp, _ = self.account_client.list_account_metadata()
self.assertHeaders(resp, 'Account', 'HEAD')
- self.assertNotIn('x-account-meta-', str(resp))
+ # Filter out X-Account-Meta-Quota-Containers header which is
+ # returned by Ceph RadosGW (Squid release and later) as a
+ # system-generated header. This is a RadosGW extension not present
+ # in Swift.
+ # See: https://github.com/ceph/ceph/commit/55f196cb47c9a452fc718ba9a58be7f68bb7a54a # noqa: E501
+ user_metadata_headers = [k for k in resp.keys()
+ if k.startswith('x-account-meta-') and
+ k.lower() !=
+ 'x-account-meta-quota-containers']
+ self.assertEmpty(user_metadata_headers,
+ 'Found user-defined account metadata headers: %s' %
+ user_metadata_headers)
@decorators.idempotent_id('e2a08b5f-3115-4768-a3ee-d4287acd6c08')
def test_update_account_metadata_with_create_metadata(self):