From aca97507cd119ad55e0c3c18ca65087cb5576c82 Mon Sep 17 00:00:00 2001 From: Sumedh Sidhaye Date: Mon, 13 Jun 2022 13:49:08 +0530 Subject: [PATCH] Added a check while removing 'cert_dir'. The teardown method is called even if all the tests are skipped since the required PKI version is not present. The teardown is trying to remove a non-existent directory. Currently the cert_dir attribute is only present if IPA installation was done. If IPA was not installed the attribute does not exist. In order that the uninstall code finds the attribute a class attribute is added. Pagure Issue: https://pagure.io/freeipa/issue/9179 Signed-off-by: Sumedh Sidhaye Reviewed-By: Florence Blanc-Renaud Reviewed-By: Rob Crittenden --- ipatests/test_integration/test_caless.py | 12 +++++++++++- .../test_integration/test_random_serial_numbers.py | 6 ++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/ipatests/test_integration/test_caless.py b/ipatests/test_integration/test_caless.py index 96f477bbe4b0e25184605a80659b5ec6529a2320..4c370f77e84215714e533b1b6ebeb89216319c0f 100644 --- a/ipatests/test_integration/test_caless.py +++ b/ipatests/test_integration/test_caless.py @@ -122,6 +122,15 @@ def replica_install_teardown(func): class CALessBase(IntegrationTest): + # The teardown method is called even if all the tests are skipped + # since the required PKI version is not present. + # The teardown is trying to remove a non-existent directory. + # Currently the cert_dir attribute is only present if IPA installation was + # done. If IPA was not installed the attribute does not exist. + # In order that the uninstall code finds the attribute a class attribute + # is added. + cert_dir = None + @classmethod def install(cls, mh): cls.cert_dir = tempfile.mkdtemp(prefix="ipatest-") @@ -164,7 +173,8 @@ class CALessBase(IntegrationTest): @classmethod def uninstall(cls, mh): # Remove the NSS database - shutil.rmtree(cls.cert_dir) + if cls.cert_dir: + shutil.rmtree(cls.cert_dir) super(CALessBase, cls).uninstall(mh) @classmethod diff --git a/ipatests/test_integration/test_random_serial_numbers.py b/ipatests/test_integration/test_random_serial_numbers.py index a931c7b562f00f94e10d1e9e891fbf0624d5fd88..c52cfa4ed50e2718791b0844d743fb240d26b365 100644 --- a/ipatests/test_integration/test_random_serial_numbers.py +++ b/ipatests/test_integration/test_random_serial_numbers.py @@ -64,3 +64,9 @@ class TestServerCALessToExternalCA_RSN(TestServerCALessToExternalCA): if not pki_supports_RSNv3(mh.master): raise pytest.skip("RNSv3 not supported") super(TestServerCALessToExternalCA_RSN, cls).install(mh) + + @classmethod + def uninstall(cls, mh): + if not pki_supports_RSNv3(mh.master): + raise pytest.skip("RSNv3 not supported") + super(TestServerCALessToExternalCA_RSN, cls).uninstall(mh) -- 2.37.2