diff options
Diffstat (limited to 'test/unit/proxy/controllers/test_base.py')
-rw-r--r-- | test/unit/proxy/controllers/test_base.py | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/test/unit/proxy/controllers/test_base.py b/test/unit/proxy/controllers/test_base.py index 1ab0037..8351843 100644 --- a/test/unit/proxy/controllers/test_base.py +++ b/test/unit/proxy/controllers/test_base.py @@ -26,8 +26,8 @@ from swift.common import exceptions from swift.common.utils import split_path from swift.common.header_key_dict import HeaderKeyDict from swift.common.http import is_success -from swift.common.storage_policy import StoragePolicy -from test.unit import fake_http_connect, FakeRing, FakeMemcache +from swift.common.storage_policy import StoragePolicy, StoragePolicyCollection +from test.unit import fake_http_connect, FakeRing, FakeMemcache, PatchPolicies from swift.proxy import server as proxy_server from swift.common.request_helpers import ( get_sys_meta_prefix, get_object_transient_sysmeta @@ -209,7 +209,8 @@ class TestFuncs(unittest.TestCase): self.assertEqual(info_c['object_count'], 1000) # Make sure the env cache is set exp_cached_info_c = { - k: str(v) if k in ('bytes', 'object_count') else v + k: str(v) if k in ( + 'bytes', 'object_count', 'storage_policy') else v for k, v in info_c.items()} self.assertEqual(env['swift.infocache'].get('account/a'), exp_cached_info_a) @@ -340,7 +341,7 @@ class TestFuncs(unittest.TestCase): req = Request.blank("/v1/AUTH_account/cont", environ={'swift.cache': FakeCache({})}) resp = get_container_info(req.environ, FakeApp()) - self.assertEqual(resp['storage_policy'], '0') + self.assertEqual(resp['storage_policy'], 0) self.assertEqual(resp['bytes'], 6666) self.assertEqual(resp['object_count'], 1000) @@ -365,7 +366,7 @@ class TestFuncs(unittest.TestCase): req = Request.blank("/v1/account/cont", environ={'swift.cache': FakeCache(cache_stub)}) resp = get_container_info(req.environ, FakeApp()) - self.assertEqual(resp['storage_policy'], '0') + self.assertEqual(resp['storage_policy'], 0) self.assertEqual(resp['bytes'], 3333) self.assertEqual(resp['object_count'], 10) self.assertEqual(resp['status'], 404) @@ -614,6 +615,30 @@ class TestFuncs(unittest.TestCase): resp, headers_to_account_info(headers.items(), 200)) + def test_headers_to_account_info_storage_policies(self): + headers = { + 'x-account-storage-policy-zero-object-count': '13', + 'x-account-storage-policy-zero-container-count': '120', + 'x-account-storage-policy-zero-bytes-used': '1002', + 'x-account-storage-policy-one-object-count': '10', + 'x-account-storage-policy-one-container-count': '20', + } + spc = StoragePolicyCollection([StoragePolicy(0, 'zero', True), + StoragePolicy(1, 'one', False)]) + with PatchPolicies(spc): + resp = headers_to_account_info(headers.items(), 200) + self.assertEqual( + resp['storage_policies'][0]['object_count'], 13) + self.assertEqual( + resp['storage_policies'][0]['container_count'], 120) + self.assertEqual( + resp['storage_policies'][0]['bytes'], 1002) + self.assertEqual( + resp['storage_policies'][1]['object_count'], 10) + self.assertEqual( + resp['storage_policies'][1]['container_count'], 20) + self.assertEqual(resp['storage_policies'][1]['bytes'], 0) + def test_headers_to_object_info_missing(self): resp = headers_to_object_info({}, 404) self.assertEqual(resp['status'], 404) |