mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
rewrite a misprocessed teardown_method method as a custom decorator
teardown_method is a standard pytest method used to put any code to be executed after each test method is executed. While treated correctly by our integration tests, this method is misinterpreted by in-tree tests in the following way: in-tree tests try to execute it even if all the test methods are skipped due to test resources being not configured. This causes the tests, that otherwise would have been skipped, to fail https://fedorahosted.org/freeipa/ticket/5723 Reviewed-By: Martin Basti <mbasti@redhat.com>
This commit is contained in:
parent
5b32ffcd1a
commit
d58cd04e8a
@ -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
|
||||
|
@ -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',
|
||||
|
Loading…
Reference in New Issue
Block a user