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