diff options
-rw-r--r-- | ipatests/test_integration/tasks.py | 22 | ||||
-rw-r--r-- | ipatests/test_integration/test_replica_promotion.py | 17 |
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', |