ipatests: honor class inheritance in TestACMEwithExternalCA

TestACMEwithExternalCA subclasses TestACME which subclasses
CALessBase.

CALessBase is necessary to generate the certificates for the
test_third_party_certs() test.

This means that the TestACME install classmethod needs to be
called by its subclasses. But the install actually does the
installation of the servers as well so needs to be aborted
at that point in the case of a subclass.

https://pagure.io/freeipa/issue/8581

Signed-off-by: Rob Crittenden <rcritten@redhat.com>
Reviewed-By: Mohammad Rizwan <myusuf@redhat.com>
Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
Reviewed-By: Armando Neto <abiagion@redhat.com>
This commit is contained in:
Rob Crittenden 2020-11-23 18:23:33 -05:00
parent 3a9fc01156
commit e6489dcb8c

View File

@ -109,6 +109,10 @@ class TestACME(CALessBase):
# install packages before client install in case of IPA DNS problems # install packages before client install in case of IPA DNS problems
cls.prepare_acme_client() cls.prepare_acme_client()
# Each subclass handles its own server installation procedure
if cls.__name__ != 'TestACME':
return
tasks.install_master(cls.master, setup_dns=True) tasks.install_master(cls.master, setup_dns=True)
tasks.install_client(cls.master, cls.clients[0]) tasks.install_client(cls.master, cls.clients[0])
@ -510,8 +514,7 @@ class TestACMEwithExternalCA(TestACME):
@classmethod @classmethod
def install(cls, mh): def install(cls, mh):
super(TestACMEwithExternalCA, cls).install(mh)
cls.prepare_acme_client()
# install master with external-ca # install master with external-ca
result = install_server_external_ca_step1(cls.master) result = install_server_external_ca_step1(cls.master)