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: 55f196cb47

Change-Id: Idbf22909b389190f7365bb3e54fd77d69df0c789
Signed-off-by: Maximilian Stinsky <maximilian.stinsky-damke@wiit.cloud>
This commit is contained in:
Maximilian Stinsky
2026-01-16 11:52:14 +01:00
parent 32545c430b
commit 4091cd3fa2

View File

@@ -307,7 +307,18 @@ class AccountTest(base.BaseObjectTest):
"""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):