symlink: Ensure headers are returned as a list on py3

Change-Id: Ic2f4487b6caf81fef3455ce03dda2cc144ae24ec
Related-Bug: #1929083
Co-Authored-By: Walter Doekes <walter+github@wjd.nu>
(cherry picked from commit 6bfd93d886)
This commit is contained in:
Tim Burke 2021-05-20 15:32:50 -07:00 committed by Tim Burke
parent 96e24bb1db
commit fa6edcc7e6
2 changed files with 2 additions and 1 deletions

View File

@ -417,7 +417,7 @@ class SymlinkObjectContext(WSGIContext):
resp = self._app_call(req.environ) resp = self._app_call(req.environ)
response_header_dict = HeaderKeyDict(self._response_headers) response_header_dict = HeaderKeyDict(self._response_headers)
symlink_sysmeta_to_usermeta(response_header_dict) symlink_sysmeta_to_usermeta(response_header_dict)
self._response_headers = response_header_dict.items() self._response_headers = list(response_header_dict.items())
return resp return resp
def handle_get_head(self, req): def handle_get_head(self, req):

View File

@ -360,6 +360,7 @@ class TestSymlinkMiddleware(TestSymlinkMiddlewareBase):
req = Request.blank('/v1/a/c/symlink?symlink=get', method='GET') req = Request.blank('/v1/a/c/symlink?symlink=get', method='GET')
status, headers, body = self.call_sym(req) status, headers, body = self.call_sym(req)
self.assertEqual(status, '200 OK') self.assertEqual(status, '200 OK')
self.assertIsInstance(headers, list)
self.assertIn(('X-Symlink-Target', 'c1/o'), headers) self.assertIn(('X-Symlink-Target', 'c1/o'), headers)
self.assertNotIn('X-Symlink-Target-Account', dict(headers)) self.assertNotIn('X-Symlink-Target-Account', dict(headers))