From 6d59cbf596589b922e33969580321198f2482700 Mon Sep 17 00:00:00 2001 From: David Hadas Date: Sun, 9 Jun 2013 12:54:32 +0300 Subject: [PATCH] Swift tests for unicode headers Swift functional tests sends ilegal headers (unicode) and expects these headers to be processed by Swift. Apache2 seem to remove such headers which is a sound behavior for illegal headers. This change restrict the test tpo exist only for swift integral web front end. For future it is advised to disallow such behaviour. For example it is suggested to make the decission that in future APIs illegal headers are removed rather than processed. Change-Id: Ibf548f474de3f06a2687f8f4812beaeaf81ab216 Fixes: Bug #1189123 --- test/functionalnosetests/test_account.py | 35 +++++++++++----------- test/functionalnosetests/test_container.py | 30 ++++++++++--------- 2 files changed, 34 insertions(+), 31 deletions(-) diff --git a/test/functionalnosetests/test_account.py b/test/functionalnosetests/test_account.py index 481632cfa7..dd8851ee52 100755 --- a/test/functionalnosetests/test_account.py +++ b/test/functionalnosetests/test_account.py @@ -21,7 +21,7 @@ from nose import SkipTest from swift.common.constraints import MAX_META_COUNT, MAX_META_NAME_LENGTH, \ MAX_META_OVERALL_SIZE, MAX_META_VALUE_LENGTH -from swift_testing import check_response, retry, skip +from swift_testing import check_response, retry, skip, web_front_end class TestAccount(unittest.TestCase): @@ -74,16 +74,16 @@ class TestAccount(unittest.TestCase): def head(url, token, parsed, conn): conn.request('HEAD', parsed.path, '', {'X-Auth-Token': token}) return check_response(conn) - uni_key = u'X-Account-Meta-uni\u0E12' uni_value = u'uni\u0E12' - resp = retry(post, uni_key, '1') - resp.read() - self.assertTrue(resp.status in (201, 204)) - resp = retry(head) - resp.read() - self.assert_(resp.status in (200, 204), resp.status) - self.assertEquals(resp.getheader(uni_key.encode('utf-8')), '1') + if (web_front_end == 'integral'): + resp = retry(post, uni_key, '1') + resp.read() + self.assertTrue(resp.status in (201, 204)) + resp = retry(head) + resp.read() + self.assert_(resp.status in (200, 204), resp.status) + self.assertEquals(resp.getheader(uni_key.encode('utf-8')), '1') resp = retry(post, 'X-Account-Meta-uni', uni_value) resp.read() self.assertEquals(resp.status, 204) @@ -92,14 +92,15 @@ class TestAccount(unittest.TestCase): self.assert_(resp.status in (200, 204), resp.status) self.assertEquals(resp.getheader('X-Account-Meta-uni'), uni_value.encode('utf-8')) - resp = retry(post, uni_key, uni_value) - resp.read() - self.assertEquals(resp.status, 204) - resp = retry(head) - resp.read() - self.assert_(resp.status in (200, 204), resp.status) - self.assertEquals(resp.getheader(uni_key.encode('utf-8')), - uni_value.encode('utf-8')) + if (web_front_end == 'integral'): + resp = retry(post, uni_key, uni_value) + resp.read() + self.assertEquals(resp.status, 204) + resp = retry(head) + resp.read() + self.assert_(resp.status in (200, 204), resp.status) + self.assertEquals(resp.getheader(uni_key.encode('utf-8')), + uni_value.encode('utf-8')) def test_multi_metadata(self): if skip: diff --git a/test/functionalnosetests/test_container.py b/test/functionalnosetests/test_container.py index 2a7280487e..31867588c3 100755 --- a/test/functionalnosetests/test_container.py +++ b/test/functionalnosetests/test_container.py @@ -115,13 +115,14 @@ class TestContainer(unittest.TestCase): uni_key = u'X-Container-Meta-uni\u0E12' uni_value = u'uni\u0E12' - resp = retry(post, uni_key, '1') - resp.read() - self.assertEquals(resp.status, 204) - resp = retry(head) - resp.read() - self.assert_(resp.status in (200, 204), resp.status) - self.assertEquals(resp.getheader(uni_key.encode('utf-8')), '1') + if (web_front_end == 'integral'): + resp = retry(post, uni_key, '1') + resp.read() + self.assertEquals(resp.status, 204) + resp = retry(head) + resp.read() + self.assert_(resp.status in (200, 204), resp.status) + self.assertEquals(resp.getheader(uni_key.encode('utf-8')), '1') resp = retry(post, 'X-Container-Meta-uni', uni_value) resp.read() self.assertEquals(resp.status, 204) @@ -130,13 +131,14 @@ class TestContainer(unittest.TestCase): self.assert_(resp.status in (200, 204), resp.status) self.assertEquals(resp.getheader('X-Container-Meta-uni'), uni_value.encode('utf-8')) - resp = retry(post, uni_key, uni_value) - resp.read() - self.assertEquals(resp.status, 204) - resp = retry(head) - resp.read() - self.assert_(resp.status in (200, 204), resp.status) - self.assertEquals(resp.getheader(uni_key.encode('utf-8')), + if (web_front_end == 'integral'): + resp = retry(post, uni_key, uni_value) + resp.read() + self.assertEquals(resp.status, 204) + resp = retry(head) + resp.read() + self.assert_(resp.status in (200, 204), resp.status) + self.assertEquals(resp.getheader(uni_key.encode('utf-8')), uni_value.encode('utf-8')) def test_PUT_metadata(self):