summaryrefslogtreecommitdiffstats
path: root/ipatests
diff options
context:
space:
mode:
Diffstat (limited to 'ipatests')
-rw-r--r--ipatests/test_integration/tasks.py22
-rw-r--r--ipatests/test_integration/test_replica_promotion.py17
2 files changed, 26 insertions, 13 deletions
diff --git a/ipatests/test_integration/tasks.py b/ipatests/test_integration/tasks.py
index c2129708b..f6390377d 100644
--- a/ipatests/test_integration/tasks.py
+++ b/ipatests/test_integration/tasks.py
@@ -1153,3 +1153,25 @@ def uninstall_replica(master, replica):
"-p", master.config.dirman_password,
replica.hostname], raiseonerr=False)
uninstall_master(replica)
+
+
+def replicas_cleanup(func):
+ """
+ replicas_cleanup decorator, applied to any test method in integration tests
+ uninstalls all replicas in the topology leaving only master
+ configured
+ """
+ def wrapped(*args):
+ func(*args)
+ for host in args[0].replicas:
+ uninstall_replica(args[0].master, host)
+ uninstall_client(host)
+ result = args[0].master.run_command(
+ ["ipa", "host-del", "--updatedns", host.hostname],
+ raiseonerr=False)
+ # Workaround for 5627
+ if "host not found" in result.stderr_text:
+ args[0].master.run_command(["ipa",
+ "host-del",
+ host.hostname], raiseonerr=False)
+ return wrapped
diff --git a/ipatests/test_integration/test_replica_promotion.py b/ipatests/test_integration/test_replica_promotion.py
index c44cafb5f..c60b0964b 100644
--- a/ipatests/test_integration/test_replica_promotion.py
+++ b/ipatests/test_integration/test_replica_promotion.py
@@ -8,6 +8,7 @@ from ipatests.test_integration.test_caless import assert_error
from ipalib.constants import DOMAIN_LEVEL_0
from ipalib.constants import DOMAIN_LEVEL_1
from ipalib.constants import DOMAIN_SUFFIX_NAME
+from ipatests.test_integration.tasks import replicas_cleanup
class ReplicaPromotionBase(IntegrationTest):
@@ -16,19 +17,6 @@ class ReplicaPromotionBase(IntegrationTest):
def install(cls, mh):
tasks.install_master(cls.master, domain_level=cls.domain_level)
- def teardown_method(self, method):
- for host in self.replicas:
- tasks.uninstall_replica(self.master, host)
- tasks.uninstall_client(host)
- result = self.master.run_command(
- ["ipa", "host-del", "--updatedns", host.hostname],
- raiseonerr=False)
- # Workaround for 5627
- if "host not found" in result.stderr_text:
- self.master.run_command(["ipa",
- "host-del",
- host.hostname], raiseonerr=False)
-
def test_kra_install_master(self):
result1 = tasks.install_kra(self.master,
first_instance=True,
@@ -47,6 +35,7 @@ class TestReplicaPromotionLevel0(ReplicaPromotionBase):
num_replicas = 1
domain_level = DOMAIN_LEVEL_0
+ @replicas_cleanup
def test_promotion_disabled(self):
"""
Testcase:
@@ -64,6 +53,7 @@ class TestReplicaPromotionLevel0(ReplicaPromotionBase):
'You must provide a file generated by ipa-replica-prepare'
' to create a replica when the domain is at level 0', 1)
+ @replicas_cleanup
def test_backup_restore(self):
"""
TestCase:
@@ -172,6 +162,7 @@ class TestReplicaPromotionLevel1(ReplicaPromotionBase):
num_replicas = 1
domain_level = DOMAIN_LEVEL_1
+ @replicas_cleanup
def test_replica_prepare_disabled(self):
replica = self.replicas[0]
args = ['ipa-replica-prepare',