From 8608b5e816031eb072bc95fce59a7b30d8e3496a Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Thu, 10 Jul 2014 15:37:08 -0400 Subject: [PATCH 1/7] fix functional tests to cleanup containers Current tests from upstream swift leave containers in the database after they are done running. This causes an issue with sof tests because we clean up the tests directory /mnt/swiftonfile. When running the functional tests a second time always fails because the setup functions tries to delete existing containers, but the sof object servers returns 404, thus causing the whole test to fail. Signed-off-by: Thiago da Silva --- test/functional/tests.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/functional/tests.py b/test/functional/tests.py index 4d9179e..5a084e8 100644 --- a/test/functional/tests.py +++ b/test/functional/tests.py @@ -119,6 +119,10 @@ class TestAccount(Base): env = TestAccountEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testNoAuthToken(self): self.assertRaises(ResponseError, self.env.account.info, cfg={'no_auth_token': True}) @@ -352,6 +356,10 @@ class TestContainer(Base): env = TestContainerEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testContainerNameLimit(self): limit = load_constraint('max_container_name_length') @@ -817,6 +825,10 @@ class TestFile(Base): env = TestFileEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testCopy(self): # makes sure to test encoded characters source_filename = 'dealde%2Fl04 011e%204c8df/flash.png' @@ -1535,6 +1547,10 @@ class TestDlo(Base): env = TestDloEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def test_get_manifest(self): file_item = self.env.container.file('man1') file_contents = file_item.read() @@ -1698,6 +1714,10 @@ class TestFileComparison(Base): env = TestFileComparisonEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testIfMatch(self): for file_item in self.env.files: hdrs = {'If-Match': file_item.md5} @@ -1872,6 +1892,10 @@ class TestSlo(Base): "Expected slo_enabled to be True/False, got %r" % (self.env.slo_enabled,)) + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def test_slo_get_simple_manifest(self): file_item = self.env.container.file('manifest-abcde') file_contents = file_item.read() @@ -2149,6 +2173,10 @@ class TestObjectVersioning(Base): "Expected versioning_enabled to be True/False, got %r" % (self.env.versioning_enabled,)) + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def test_overwriting(self): container = self.env.container versions_container = self.env.versions_container @@ -2255,6 +2283,10 @@ class TestTempurl(Base): self.obj_tempurl_parms = {'temp_url_sig': sig, 'temp_url_expires': str(expires)} + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def tempurl_sig(self, method, expires, path, key): return hmac.new( key, @@ -2433,6 +2465,10 @@ class TestSloTempurl(Base): "Expected enabled to be True/False, got %r" % (self.env.enabled,)) + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def tempurl_sig(self, method, expires, path, key): return hmac.new( key, From eeb164ac2d02eb58029c99d69e14096ffa09cc6e Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Fri, 11 Jul 2014 15:02:55 -0400 Subject: [PATCH 2/7] Revert "fix functional tests to cleanup containers" This reverts commit 8608b5e816031eb072bc95fce59a7b30d8e3496a. --- test/functional/tests.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/test/functional/tests.py b/test/functional/tests.py index 5a084e8..4d9179e 100644 --- a/test/functional/tests.py +++ b/test/functional/tests.py @@ -119,10 +119,6 @@ class TestAccount(Base): env = TestAccountEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testNoAuthToken(self): self.assertRaises(ResponseError, self.env.account.info, cfg={'no_auth_token': True}) @@ -356,10 +352,6 @@ class TestContainer(Base): env = TestContainerEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testContainerNameLimit(self): limit = load_constraint('max_container_name_length') @@ -825,10 +817,6 @@ class TestFile(Base): env = TestFileEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testCopy(self): # makes sure to test encoded characters source_filename = 'dealde%2Fl04 011e%204c8df/flash.png' @@ -1547,10 +1535,6 @@ class TestDlo(Base): env = TestDloEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def test_get_manifest(self): file_item = self.env.container.file('man1') file_contents = file_item.read() @@ -1714,10 +1698,6 @@ class TestFileComparison(Base): env = TestFileComparisonEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testIfMatch(self): for file_item in self.env.files: hdrs = {'If-Match': file_item.md5} @@ -1892,10 +1872,6 @@ class TestSlo(Base): "Expected slo_enabled to be True/False, got %r" % (self.env.slo_enabled,)) - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def test_slo_get_simple_manifest(self): file_item = self.env.container.file('manifest-abcde') file_contents = file_item.read() @@ -2173,10 +2149,6 @@ class TestObjectVersioning(Base): "Expected versioning_enabled to be True/False, got %r" % (self.env.versioning_enabled,)) - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def test_overwriting(self): container = self.env.container versions_container = self.env.versions_container @@ -2283,10 +2255,6 @@ class TestTempurl(Base): self.obj_tempurl_parms = {'temp_url_sig': sig, 'temp_url_expires': str(expires)} - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def tempurl_sig(self, method, expires, path, key): return hmac.new( key, @@ -2465,10 +2433,6 @@ class TestSloTempurl(Base): "Expected enabled to be True/False, got %r" % (self.env.enabled,)) - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def tempurl_sig(self, method, expires, path, key): return hmac.new( key, From 068f6000e9c5d40dae4a2cc8649b6174eeded4a5 Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Fri, 11 Jul 2014 15:06:58 -0400 Subject: [PATCH 3/7] clean up saio env after running func tests Current tests from upstream swift leave containers in the database after they are done running. This causes an issue with sof tests because we clean up the tests directory /mnt/swiftonfile. When running the functional tests a second time always fails because the setup functions tries to delete existing containers, but the sof object servers returns 404, thus causing the whole test to fail. Signed-off-by: Thiago da Silva --- test/functional/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/functional/__init__.py b/test/functional/__init__.py index fb9f421..75856c0 100644 --- a/test/functional/__init__.py +++ b/test/functional/__init__.py @@ -32,7 +32,8 @@ from shutil import rmtree from tempfile import mkdtemp from test import get_config -from test.functional.swift_test_client import Connection, ResponseError +from test.functional.swift_test_client import Account, Connection, \ + ResponseError # This has the side effect of mocking out the xattr module so that unit tests # (and in this case, when in-process functional tests are called for) can run # on file systems that don't support extended attributes. @@ -507,6 +508,11 @@ def teardown_package(): global orig_collate locale.setlocale(locale.LC_COLLATE, orig_collate) + conn = Connection(config) + conn.authenticate() + account = Account(conn, config.get('account', config['username'])) + account.delete_containers() + global in_process if in_process: try: From 09affa39517112a7c348b7801db170a2ab7db1f4 Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Thu, 10 Jul 2014 15:37:08 -0400 Subject: [PATCH 4/7] fix functional tests to cleanup containers Current tests from upstream swift leave containers in the database after they are done running. This causes an issue with sof tests because we clean up the tests directory /mnt/swiftonfile. When running the functional tests a second time always fails because the setup functions tries to delete existing containers, but the sof object servers returns 404, thus causing the whole test to fail. Signed-off-by: Thiago da Silva --- test/functional/tests.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/test/functional/tests.py b/test/functional/tests.py index 4d9179e..5a084e8 100644 --- a/test/functional/tests.py +++ b/test/functional/tests.py @@ -119,6 +119,10 @@ class TestAccount(Base): env = TestAccountEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testNoAuthToken(self): self.assertRaises(ResponseError, self.env.account.info, cfg={'no_auth_token': True}) @@ -352,6 +356,10 @@ class TestContainer(Base): env = TestContainerEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testContainerNameLimit(self): limit = load_constraint('max_container_name_length') @@ -817,6 +825,10 @@ class TestFile(Base): env = TestFileEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testCopy(self): # makes sure to test encoded characters source_filename = 'dealde%2Fl04 011e%204c8df/flash.png' @@ -1535,6 +1547,10 @@ class TestDlo(Base): env = TestDloEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def test_get_manifest(self): file_item = self.env.container.file('man1') file_contents = file_item.read() @@ -1698,6 +1714,10 @@ class TestFileComparison(Base): env = TestFileComparisonEnv set_up = False + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def testIfMatch(self): for file_item in self.env.files: hdrs = {'If-Match': file_item.md5} @@ -1872,6 +1892,10 @@ class TestSlo(Base): "Expected slo_enabled to be True/False, got %r" % (self.env.slo_enabled,)) + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def test_slo_get_simple_manifest(self): file_item = self.env.container.file('manifest-abcde') file_contents = file_item.read() @@ -2149,6 +2173,10 @@ class TestObjectVersioning(Base): "Expected versioning_enabled to be True/False, got %r" % (self.env.versioning_enabled,)) + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def test_overwriting(self): container = self.env.container versions_container = self.env.versions_container @@ -2255,6 +2283,10 @@ class TestTempurl(Base): self.obj_tempurl_parms = {'temp_url_sig': sig, 'temp_url_expires': str(expires)} + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def tempurl_sig(self, method, expires, path, key): return hmac.new( key, @@ -2433,6 +2465,10 @@ class TestSloTempurl(Base): "Expected enabled to be True/False, got %r" % (self.env.enabled,)) + @classmethod + def tearDownClass(self): + self.env.account.delete_containers() + def tempurl_sig(self, method, expires, path, key): return hmac.new( key, From 72eb3be6d2103d56e61fba7d2a0c10a172535a34 Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Fri, 11 Jul 2014 15:02:55 -0400 Subject: [PATCH 5/7] Revert "fix functional tests to cleanup containers" This reverts commit 8608b5e816031eb072bc95fce59a7b30d8e3496a. --- test/functional/tests.py | 36 ------------------------------------ 1 file changed, 36 deletions(-) diff --git a/test/functional/tests.py b/test/functional/tests.py index 5a084e8..4d9179e 100644 --- a/test/functional/tests.py +++ b/test/functional/tests.py @@ -119,10 +119,6 @@ class TestAccount(Base): env = TestAccountEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testNoAuthToken(self): self.assertRaises(ResponseError, self.env.account.info, cfg={'no_auth_token': True}) @@ -356,10 +352,6 @@ class TestContainer(Base): env = TestContainerEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testContainerNameLimit(self): limit = load_constraint('max_container_name_length') @@ -825,10 +817,6 @@ class TestFile(Base): env = TestFileEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testCopy(self): # makes sure to test encoded characters source_filename = 'dealde%2Fl04 011e%204c8df/flash.png' @@ -1547,10 +1535,6 @@ class TestDlo(Base): env = TestDloEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def test_get_manifest(self): file_item = self.env.container.file('man1') file_contents = file_item.read() @@ -1714,10 +1698,6 @@ class TestFileComparison(Base): env = TestFileComparisonEnv set_up = False - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def testIfMatch(self): for file_item in self.env.files: hdrs = {'If-Match': file_item.md5} @@ -1892,10 +1872,6 @@ class TestSlo(Base): "Expected slo_enabled to be True/False, got %r" % (self.env.slo_enabled,)) - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def test_slo_get_simple_manifest(self): file_item = self.env.container.file('manifest-abcde') file_contents = file_item.read() @@ -2173,10 +2149,6 @@ class TestObjectVersioning(Base): "Expected versioning_enabled to be True/False, got %r" % (self.env.versioning_enabled,)) - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def test_overwriting(self): container = self.env.container versions_container = self.env.versions_container @@ -2283,10 +2255,6 @@ class TestTempurl(Base): self.obj_tempurl_parms = {'temp_url_sig': sig, 'temp_url_expires': str(expires)} - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def tempurl_sig(self, method, expires, path, key): return hmac.new( key, @@ -2465,10 +2433,6 @@ class TestSloTempurl(Base): "Expected enabled to be True/False, got %r" % (self.env.enabled,)) - @classmethod - def tearDownClass(self): - self.env.account.delete_containers() - def tempurl_sig(self, method, expires, path, key): return hmac.new( key, From d56711110304bb176502a2af0a6ab856bea3d77c Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Fri, 11 Jul 2014 15:06:58 -0400 Subject: [PATCH 6/7] clean up saio env after running func tests Current tests from upstream swift leave containers in the database after they are done running. This causes an issue with sof tests because we clean up the tests directory /mnt/swiftonfile. When running the functional tests a second time always fails because the setup functions tries to delete existing containers, but the sof object servers returns 404, thus causing the whole test to fail. Signed-off-by: Thiago da Silva --- test/functional/__init__.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/functional/__init__.py b/test/functional/__init__.py index fb9f421..75856c0 100644 --- a/test/functional/__init__.py +++ b/test/functional/__init__.py @@ -32,7 +32,8 @@ from shutil import rmtree from tempfile import mkdtemp from test import get_config -from test.functional.swift_test_client import Connection, ResponseError +from test.functional.swift_test_client import Account, Connection, \ + ResponseError # This has the side effect of mocking out the xattr module so that unit tests # (and in this case, when in-process functional tests are called for) can run # on file systems that don't support extended attributes. @@ -507,6 +508,11 @@ def teardown_package(): global orig_collate locale.setlocale(locale.LC_COLLATE, orig_collate) + conn = Connection(config) + conn.authenticate() + account = Account(conn, config.get('account', config['username'])) + account.delete_containers() + global in_process if in_process: try: From 3ba8ce2700b5a4d7163666c140cf38bdd973e0b8 Mon Sep 17 00:00:00 2001 From: Thiago da Silva Date: Thu, 24 Jul 2014 21:11:22 -0400 Subject: [PATCH 7/7] added comment to code change Signed-off-by: Thiago da Silva --- test/functional/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/test/functional/__init__.py b/test/functional/__init__.py index 75856c0..1d66169 100644 --- a/test/functional/__init__.py +++ b/test/functional/__init__.py @@ -508,6 +508,7 @@ def teardown_package(): global orig_collate locale.setlocale(locale.LC_COLLATE, orig_collate) + # clean up containers and objects left behind after running tests conn = Connection(config) conn.authenticate() account = Account(conn, config.get('account', config['username']))