mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
pytest: Migrate xunit-style setups to Pytest fixtures
Even though Pytest supports xunit style setups, unittest and nose tests, this support is limited and may be dropped in the future releases. Worst of all is that the mixing of various test frameworks results in weird conflicts and of course, is not widely tested. This is a part of work to remove the mixing of test idioms in the IPA's test suite: 1) replace xunit style 2) employ the fixtures' interdependencies Related: https://pagure.io/freeipa/issue/7989 Signed-off-by: Stanislav Levin <slev@altlinux.org> Reviewed-By: Christian Heimes <cheimes@redhat.com>
This commit is contained in:
parent
ff547a2777
commit
292d686c0b
@ -267,8 +267,11 @@ def mh(request, class_integration_logs):
|
||||
logger.info('Preparing host %s', host.hostname)
|
||||
tasks.prepare_host(host)
|
||||
|
||||
setup_class(cls, mh)
|
||||
mh._pytestmh_request.addfinalizer(lambda: teardown_class(cls))
|
||||
add_compat_attrs(cls, mh)
|
||||
|
||||
def fin():
|
||||
del_compat_attrs(cls)
|
||||
mh._pytestmh_request.addfinalizer(fin)
|
||||
|
||||
try:
|
||||
yield mh.install()
|
||||
@ -282,7 +285,7 @@ def mh(request, class_integration_logs):
|
||||
collect_systemd_journal(request.node, hosts, request.config)
|
||||
|
||||
|
||||
def setup_class(cls, mh):
|
||||
def add_compat_attrs(cls, mh):
|
||||
"""Add convenience attributes to the test class
|
||||
|
||||
This is deprecated in favor of the mh fixture.
|
||||
@ -299,7 +302,7 @@ def setup_class(cls, mh):
|
||||
cls.ad_treedomains = mh.ad_treedomains
|
||||
|
||||
|
||||
def teardown_class(cls):
|
||||
def del_compat_attrs(cls):
|
||||
"""Remove convenience attributes from the test class
|
||||
|
||||
This is deprecated in favor of the mh fixture.
|
||||
|
@ -27,6 +27,8 @@ import distutils.spawn
|
||||
import os
|
||||
import unittest
|
||||
|
||||
import pytest
|
||||
|
||||
from ipalib import api
|
||||
from ipalib import errors
|
||||
from ipaplatform.paths import paths
|
||||
@ -51,11 +53,12 @@ class cmdline_test(XMLRPC_test):
|
||||
# some reasonable default command
|
||||
command = paths.LS
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def cmdline_setup(self, request, xmlrpc_setup):
|
||||
# Find the executable in $PATH
|
||||
# This is neded because ipautil.run resets the PATH to
|
||||
# a system default.
|
||||
cls = request.cls
|
||||
original_command = cls.command
|
||||
if not os.path.isabs(cls.command):
|
||||
cls.command = distutils.spawn.find_executable(cls.command)
|
||||
@ -65,7 +68,6 @@ class cmdline_test(XMLRPC_test):
|
||||
raise AssertionError(
|
||||
'Command %r not available' % original_command
|
||||
)
|
||||
super(cmdline_test, cls).setup_class()
|
||||
if not server_available:
|
||||
raise unittest.SkipTest(
|
||||
'Server not available: %r' % api.env.xmlrpc_uri
|
||||
|
@ -70,7 +70,7 @@ def test_host(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def test_service(request, test_host):
|
||||
def test_service(request, test_host, keytab_retrieval_setup):
|
||||
service_tracker = service_plugin.ServiceTracker(u'srv', test_host.name)
|
||||
test_host.ensure_exists()
|
||||
return service_tracker.make_fixture(request)
|
||||
@ -84,10 +84,9 @@ class KeytabRetrievalTest(cmdline_test):
|
||||
command = "ipa-getkeytab"
|
||||
keytabname = None
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(KeytabRetrievalTest, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def keytab_retrieval_setup(self, request, cmdline_setup):
|
||||
cls = request.cls
|
||||
keytabfd, keytabname = tempfile.mkstemp()
|
||||
|
||||
os.close(keytabfd)
|
||||
@ -95,14 +94,13 @@ class KeytabRetrievalTest(cmdline_test):
|
||||
|
||||
cls.keytabname = keytabname
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
super(KeytabRetrievalTest, cls).teardown_class()
|
||||
def fin():
|
||||
try:
|
||||
os.unlink(cls.keytabname)
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
try:
|
||||
os.unlink(cls.keytabname)
|
||||
except OSError:
|
||||
pass
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def run_ipagetkeytab(self, service_principal, args=tuple(),
|
||||
raiseonerr=False, stdin=None):
|
||||
@ -275,10 +273,9 @@ class TestBindMethods(KeytabRetrievalTest):
|
||||
dm_password = None
|
||||
ca_cert = None
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(TestBindMethods, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def bindmethods_setup(self, request, keytab_retrieval_setup):
|
||||
cls = request.cls
|
||||
try:
|
||||
cls.dm_password = retrieve_dm_password()
|
||||
except errors.NotFound as e:
|
||||
@ -292,14 +289,12 @@ class TestBindMethods(KeytabRetrievalTest):
|
||||
|
||||
cls.ca_cert = temp_ca_cert
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
super(TestBindMethods, cls).teardown_class()
|
||||
|
||||
try:
|
||||
os.unlink(cls.ca_cert)
|
||||
except OSError:
|
||||
pass
|
||||
def fin():
|
||||
try:
|
||||
os.unlink(cls.ca_cert)
|
||||
except OSError:
|
||||
pass
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def check_ldapi(self):
|
||||
if not api.env.ldap_uri.startswith('ldapi://'):
|
||||
@ -418,7 +413,7 @@ class SMBServiceTracker(service_plugin.ServiceTracker):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def test_smb_svc(request, test_host):
|
||||
def test_smb_svc(request, test_host, smb_service_setup):
|
||||
service_tracker = SMBServiceTracker(u'cifs', test_host.name)
|
||||
test_host.ensure_exists()
|
||||
return service_tracker.make_fixture(request)
|
||||
@ -432,12 +427,12 @@ class test_smb_service(KeytabRetrievalTest):
|
||||
Test `ipa-getkeytab` for retrieving explicit enctypes
|
||||
"""
|
||||
command = "ipa-getkeytab"
|
||||
dm_password = None
|
||||
keytabname = None
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_smb_service, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def smb_service_setup(self, request, keytab_retrieval_setup):
|
||||
cls = request.cls
|
||||
try:
|
||||
cls.dm_password = retrieve_dm_password()
|
||||
except errors.NotFound as e:
|
||||
|
@ -40,10 +40,6 @@ class IntegrationTest:
|
||||
domain_level = None
|
||||
fips_mode = None
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def host_by_role(cls, role):
|
||||
for domain in cls.get_domains():
|
||||
@ -93,10 +89,6 @@ class IntegrationTest:
|
||||
cls.master, cls.replicas,
|
||||
cls.clients, domain_level)
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def uninstall(cls, mh):
|
||||
for replica in cls.replicas:
|
||||
try:
|
||||
|
@ -19,6 +19,8 @@ import os
|
||||
import re
|
||||
import time
|
||||
|
||||
import pytest
|
||||
|
||||
from ipatests.test_integration.base import IntegrationTest
|
||||
from ipatests.pytest_ipa.integration import tasks
|
||||
|
||||
@ -280,8 +282,11 @@ class TestIpaClientAutomountFileRestore(IntegrationTest):
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, setup_dns=True)
|
||||
|
||||
def teardown_method(self, method):
|
||||
tasks.uninstall_client(self.clients[0])
|
||||
@pytest.fixture(autouse=True)
|
||||
def automountfile_restore_setup(self, request):
|
||||
def fin():
|
||||
tasks.uninstall_client(self.clients[0])
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def nsswitch_backup_restore(
|
||||
self,
|
||||
|
@ -1,6 +1,9 @@
|
||||
#
|
||||
# Copyright (C) 2018 FreeIPA Contributors see COPYING for license
|
||||
#
|
||||
|
||||
import pytest
|
||||
|
||||
from ipatests.test_integration.base import IntegrationTest
|
||||
from ipatests.pytest_ipa.integration import tasks
|
||||
from ipaplatform.paths import paths
|
||||
@ -38,6 +41,17 @@ class TestNTPoptions(IntegrationTest):
|
||||
|
||||
exp_prom_err = "NTP configuration cannot be updated during promotion"
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def ntpoptions_setup(self, request):
|
||||
def fin():
|
||||
"""
|
||||
Uninstall ipa-server, ipa-replica and ipa-client
|
||||
"""
|
||||
tasks.uninstall_client(self.client)
|
||||
tasks.uninstall_master(self.replica)
|
||||
tasks.uninstall_master(self.master)
|
||||
request.addfinalizer(fin)
|
||||
|
||||
@classmethod
|
||||
def install(cls, mh):
|
||||
cls.client = cls.clients[0]
|
||||
@ -381,14 +395,6 @@ class TestNTPoptions(IntegrationTest):
|
||||
assert self.exp_records_msg in client_install.stderr_text
|
||||
assert self.exp_chrony_msg in client_install.stdout_text
|
||||
|
||||
def teardown_method(self, method):
|
||||
"""
|
||||
Uninstall ipa-server, ipa-replica and ipa-client
|
||||
"""
|
||||
tasks.uninstall_client(self.client)
|
||||
tasks.uninstall_master(self.replica)
|
||||
tasks.uninstall_master(self.master)
|
||||
|
||||
@classmethod
|
||||
def uninstall(cls, mh):
|
||||
# Cleanup already done in teardown_method
|
||||
|
@ -25,13 +25,16 @@ in a specific order:
|
||||
- Within a class, test methods are ordered according to source line
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from pytest_sourceorder import ordered
|
||||
|
||||
|
||||
@ordered
|
||||
class TestBase:
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
value = None
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def testbase_setup(self, request):
|
||||
cls = request.cls
|
||||
cls.value = 'unchanged'
|
||||
|
||||
def test_d_first(self):
|
||||
|
@ -7,6 +7,9 @@ from __future__ import absolute_import
|
||||
import time
|
||||
import re
|
||||
import textwrap
|
||||
|
||||
import pytest
|
||||
|
||||
from ipatests.test_integration.base import IntegrationTest
|
||||
from ipatests.pytest_ipa.integration import tasks
|
||||
from ipatests.pytest_ipa.integration.tasks import (
|
||||
@ -202,17 +205,20 @@ class TestWrongClientDomain(IntegrationTest):
|
||||
def install(cls, mh):
|
||||
tasks.install_master(cls.master, domain_level=cls.domain_level)
|
||||
|
||||
def teardown_method(self, method):
|
||||
if len(config.domains) == 0:
|
||||
# No YAML config was set
|
||||
return
|
||||
self.replicas[0].run_command(['ipa-client-install',
|
||||
'--uninstall', '-U'],
|
||||
@pytest.fixture(autouse=True)
|
||||
def wrong_client_dom_setup(self, request):
|
||||
def fin():
|
||||
if len(config.domains) == 0:
|
||||
# No YAML config was set
|
||||
return
|
||||
self.replicas[0].run_command(['ipa-client-install',
|
||||
'--uninstall', '-U'],
|
||||
raiseonerr=False)
|
||||
tasks.kinit_admin(self.master)
|
||||
self.master.run_command(['ipa', 'host-del',
|
||||
self.replicas[0].hostname],
|
||||
raiseonerr=False)
|
||||
tasks.kinit_admin(self.master)
|
||||
self.master.run_command(['ipa', 'host-del',
|
||||
self.replicas[0].hostname],
|
||||
raiseonerr=False)
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_wrong_client_domain(self):
|
||||
client = self.replicas[0]
|
||||
|
@ -34,7 +34,7 @@ from ipatests.util import Fuzzy
|
||||
from ipatests.data import binary_bytes, utf8_bytes, unicode_str
|
||||
from ipalib.frontend import Command
|
||||
from ipalib.request import context, Connection
|
||||
from ipalib import rpc, errors, api, request
|
||||
from ipalib import rpc, errors, api, request as ipa_request
|
||||
from ipapython.version import API_VERSION
|
||||
|
||||
if six.PY3:
|
||||
@ -261,17 +261,17 @@ class test_xmlclient(PluginTester):
|
||||
@pytest.mark.skip_ipaclient_unittest
|
||||
@pytest.mark.needs_ipaapi
|
||||
class test_xml_introspection:
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def xml_introsp_setup(self, request):
|
||||
try:
|
||||
api.Backend.xmlclient.connect()
|
||||
except (errors.NetworkError, IOError):
|
||||
raise unittest.SkipTest('%r: Server not available: %r' %
|
||||
(__name__, api.env.xmlrpc_uri))
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
request.destroy_context()
|
||||
def fin():
|
||||
ipa_request.destroy_context()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_list_methods(self):
|
||||
result = api.Backend.xmlclient.conn.system.listMethods()
|
||||
@ -351,16 +351,18 @@ class test_rpcclient_context(PluginTester):
|
||||
"""
|
||||
Test the context in `ipalib.rpc.rpcclient` plugin.
|
||||
"""
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def rpcclient_context_fsetup(self, request):
|
||||
try:
|
||||
api.Backend.rpcclient.connect(ca_certfile='foo')
|
||||
except (errors.NetworkError, IOError):
|
||||
raise unittest.SkipTest('%r: Server not available: %r' %
|
||||
(__name__, api.env.xmlrpc_uri))
|
||||
|
||||
def teardown(self):
|
||||
if api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.disconnect()
|
||||
def fin():
|
||||
if api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.disconnect()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_context_cafile(self):
|
||||
"""
|
||||
|
@ -77,7 +77,8 @@ class test_TestLang:
|
||||
|
||||
os.environ.update(self.saved_locale)
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def testlang_setup(self, request):
|
||||
self.tmp_dir = None
|
||||
self.setup_lang()
|
||||
|
||||
@ -117,11 +118,12 @@ class test_TestLang:
|
||||
|
||||
self.po_file_iterate = po_file_iterate
|
||||
|
||||
def teardown(self):
|
||||
self.teardown_lang()
|
||||
def fin():
|
||||
self.teardown_lang()
|
||||
|
||||
if self.tmp_dir is not None:
|
||||
shutil.rmtree(self.tmp_dir)
|
||||
if self.tmp_dir is not None:
|
||||
shutil.rmtree(self.tmp_dir)
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_test_lang(self):
|
||||
print("test_test_lang")
|
||||
|
@ -86,7 +86,8 @@ def test_ip_address(addr, words, prefixlen):
|
||||
|
||||
|
||||
class TestCIDict:
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def cidict_setup(self):
|
||||
self.cidict = ipautil.CIDict()
|
||||
self.cidict["Key1"] = "val1"
|
||||
self.cidict["key2"] = "val2"
|
||||
|
@ -41,7 +41,8 @@ class test_keyring:
|
||||
Test the kernel keyring interface
|
||||
"""
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def keyring_setup(self):
|
||||
try:
|
||||
kernel_keyring.del_key(TEST_KEY)
|
||||
except ValueError:
|
||||
|
@ -17,7 +17,8 @@ class test_session_storage:
|
||||
Test the session storage interface
|
||||
"""
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def session_storage_setup(self):
|
||||
# TODO: set up test user and kinit to it
|
||||
# tmpdir = tempfile.mkdtemp(prefix = "tmp-")
|
||||
# os.environ['KRB5CCNAME'] = 'FILE:%s/ccache' % tmpdir
|
||||
|
@ -37,7 +37,8 @@ new_password = u'new_password'
|
||||
class test_changepw(XMLRPC_test, Unauthorized_HTTP_test):
|
||||
app_uri = '/ipa/session/change_password'
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def changepw_setup(self, request):
|
||||
try:
|
||||
api.Command['user_add'](uid=testuser, givenname=u'Test', sn=u'User')
|
||||
api.Command['passwd'](testuser, password=u'old_password')
|
||||
@ -46,11 +47,13 @@ class test_changepw(XMLRPC_test, Unauthorized_HTTP_test):
|
||||
'Cannot set up test user: %s' % e
|
||||
)
|
||||
|
||||
def teardown(self):
|
||||
try:
|
||||
api.Command['user_del']([testuser])
|
||||
except errors.NotFound:
|
||||
pass
|
||||
def fin():
|
||||
try:
|
||||
api.Command['user_del']([testuser])
|
||||
except errors.NotFound:
|
||||
pass
|
||||
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def _changepw(self, user, old_password, new_password):
|
||||
return self.send_request(params={'user': str(user),
|
||||
|
@ -9,6 +9,8 @@ from abc import ABCMeta, abstractproperty
|
||||
from collections import namedtuple
|
||||
import itertools
|
||||
|
||||
import pytest
|
||||
|
||||
from ipatests.util import assert_equal
|
||||
from ipaserver.install.ipa_replica_install import ReplicaInstall
|
||||
|
||||
@ -23,16 +25,18 @@ class InstallerTestBase(six.with_metaclass(ABCMeta, object)):
|
||||
def tested_cls(self):
|
||||
return None
|
||||
|
||||
def setup_class(self):
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def installer_setup(self, request):
|
||||
"""Initializes the tested class so that it can be used later on
|
||||
"""
|
||||
self.tested_cls.make_parser()
|
||||
cls = request.cls
|
||||
cls.tested_cls.make_parser()
|
||||
assert \
|
||||
getattr(self.tested_cls, 'option_parser', False), \
|
||||
getattr(cls.tested_cls, 'option_parser', False), \
|
||||
("Unable to generate option parser for {}"
|
||||
.format(self.tested_cls.__name__))
|
||||
.format(cls.tested_cls.__name__))
|
||||
|
||||
self._populate_opts_dict()
|
||||
cls._populate_opts_dict()
|
||||
|
||||
@classmethod
|
||||
def _populate_opts_dict(cls):
|
||||
|
@ -72,10 +72,10 @@ def service_in_service_subtree(request):
|
||||
return princ
|
||||
|
||||
|
||||
@pytest.fixture(params=[service_in_kerberos_subtree,
|
||||
service_in_service_subtree])
|
||||
@pytest.fixture(params=["service_in_kerberos_subtree",
|
||||
"service_in_service_subtree"])
|
||||
def service(request):
|
||||
return request.param(request)
|
||||
return request.getfixturevalue(request.param)
|
||||
|
||||
|
||||
@pytest.mark.skipif(
|
||||
|
@ -50,15 +50,17 @@ class test_ldap:
|
||||
Test various LDAP client bind methods.
|
||||
"""
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def ldap_setup(self, request):
|
||||
self.conn = None
|
||||
self.ldapuri = api.env.ldap_uri
|
||||
self.dn = DN(('krbprincipalname','ldap/%s@%s' % (api.env.host, api.env.realm)),
|
||||
('cn','services'),('cn','accounts'),api.env.basedn)
|
||||
|
||||
def teardown(self):
|
||||
if self.conn and self.conn.isconnected():
|
||||
self.conn.disconnect()
|
||||
def fin():
|
||||
if self.conn and self.conn.isconnected():
|
||||
self.conn.disconnect()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_anonymous(self):
|
||||
"""
|
||||
@ -151,16 +153,18 @@ class test_LDAPEntry:
|
||||
dn1 = DN(('cn', cn1[0]))
|
||||
dn2 = DN(('cn', cn2[0]))
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def ldapentry_setup(self, request):
|
||||
self.ldapuri = api.env.ldap_uri
|
||||
self.conn = ldap2(api)
|
||||
self.conn.connect(autobind=AUTOBIND_DISABLED)
|
||||
|
||||
self.entry = self.conn.make_entry(self.dn1, cn=self.cn1)
|
||||
|
||||
def teardown(self):
|
||||
if self.conn and self.conn.isconnected():
|
||||
self.conn.disconnect()
|
||||
def fin():
|
||||
if self.conn and self.conn.isconnected():
|
||||
self.conn.disconnect()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_entry(self):
|
||||
e = self.entry
|
||||
|
@ -20,21 +20,21 @@ class test_migratepw(XMLRPC_test, Unauthorized_HTTP_test):
|
||||
"""
|
||||
app_uri = '/ipa/migration/migration.py'
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def migratepw_setup(self, request):
|
||||
"""
|
||||
Prepare for tests
|
||||
"""
|
||||
api.Command['user_add'](uid=testuser, givenname=u'Test', sn=u'User')
|
||||
api.Command['passwd'](testuser, password=password)
|
||||
|
||||
def teardown(self):
|
||||
"""
|
||||
Clean up
|
||||
"""
|
||||
try:
|
||||
api.Command['user_del']([testuser])
|
||||
except errors.NotFound:
|
||||
pass
|
||||
def fin():
|
||||
try:
|
||||
api.Command['user_del']([testuser])
|
||||
except errors.NotFound:
|
||||
pass
|
||||
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def _migratepw(self, user, password, method='POST'):
|
||||
"""
|
||||
|
@ -20,15 +20,17 @@ class TestTopologyPlugin:
|
||||
"""
|
||||
pwfile = os.path.join(api.env.dot_ipa, ".dmpw")
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def topologyplugin_setup(self, request):
|
||||
"""
|
||||
setup for test
|
||||
"""
|
||||
self.conn = None
|
||||
|
||||
def teardown(self):
|
||||
if self.conn and self.conn.isconnected():
|
||||
self.conn.disconnect()
|
||||
def fin():
|
||||
if self.conn and self.conn.isconnected():
|
||||
self.conn.disconnect()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
@pytest.mark.skipif(os.path.isfile(pwfile) is False,
|
||||
reason="You did not provide a .dmpw file with the DM password")
|
||||
|
@ -84,8 +84,8 @@ class TestAutomember(UI_driver):
|
||||
'Automember rule with name "{}" already exists'
|
||||
)
|
||||
|
||||
def setup(self):
|
||||
super(TestAutomember, self).setup()
|
||||
@pytest.fixture(autouse=True)
|
||||
def automember_setup(self, ui_driver_fsetup):
|
||||
self.init_app()
|
||||
|
||||
def add_user_group_rules(self, *pkeys, **kwargs):
|
||||
|
@ -187,8 +187,8 @@ class Location:
|
||||
@pytest.mark.tier1
|
||||
class TestAutomount(UI_driver):
|
||||
|
||||
def setup(self):
|
||||
super().setup()
|
||||
@pytest.fixture(autouse=True)
|
||||
def automount_setup(self, ui_driver_fsetup):
|
||||
self.init_app()
|
||||
|
||||
def add_key(self, key, mount_info, **kwargs):
|
||||
|
@ -83,9 +83,8 @@ def check_minimum_serial(self, serial, option):
|
||||
@pytest.mark.tier1
|
||||
class test_cert(UI_driver):
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
super(test_cert, self).setup(*args, **kwargs)
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def cert_setup(self, ui_driver_fsetup):
|
||||
if not self.has_ca():
|
||||
self.skip('CA not configured')
|
||||
|
||||
|
@ -35,9 +35,8 @@ import pytest
|
||||
@pytest.mark.tier1
|
||||
class test_dns(UI_driver):
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
super(test_dns, self).setup(*args, **kwargs)
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def dns_setup(self, ui_driver_fsetup):
|
||||
if not self.has_dns():
|
||||
self.skip('DNS not configured')
|
||||
|
||||
|
@ -48,8 +48,8 @@ ENTITY = 'host'
|
||||
@pytest.mark.tier1
|
||||
class host_tasks(UI_driver):
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
super(host_tasks, self).setup(*args, **kwargs)
|
||||
@pytest.fixture(autouse=True)
|
||||
def hosttasks_setup(self, ui_driver_fsetup):
|
||||
self.prep_data()
|
||||
self.prep_data2()
|
||||
self.prep_data3()
|
||||
|
@ -24,22 +24,22 @@ import pytest
|
||||
@pytest.mark.tier1
|
||||
class TestLoginScreen(UI_driver):
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
super(TestLoginScreen, self).setup(*args, **kwargs)
|
||||
@pytest.fixture(autouse=True)
|
||||
def loginscreen_setup(self, request, ui_driver_fsetup):
|
||||
self.init_app()
|
||||
self.add_test_user()
|
||||
self.logout()
|
||||
|
||||
def teardown(self, *args, **kwargs):
|
||||
# log out first
|
||||
if (self.logged_in()):
|
||||
self.logout()
|
||||
else:
|
||||
self.load_url(self.get_base_url())
|
||||
# log in as administrator
|
||||
self.login()
|
||||
self.delete_test_user()
|
||||
super(TestLoginScreen, self).teardown(*args, **kwargs)
|
||||
def fin():
|
||||
# log out first
|
||||
if (self.logged_in()):
|
||||
self.logout()
|
||||
else:
|
||||
self.load_url(self.get_base_url())
|
||||
# log in as administrator
|
||||
self.login()
|
||||
self.delete_test_user()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def delete_test_user(self):
|
||||
"""
|
||||
|
@ -38,8 +38,8 @@ PKEY = 'itest-range'
|
||||
@pytest.mark.tier1
|
||||
class test_range(range_tasks):
|
||||
|
||||
def setup(self):
|
||||
super().setup()
|
||||
@pytest.fixture(autouse=True)
|
||||
def range_setup(self, ui_driver_fsetup):
|
||||
self.init_app()
|
||||
self.get_shifts()
|
||||
|
||||
|
@ -45,6 +45,10 @@ CONFIG_DATA2 = {
|
||||
@pytest.mark.tier1
|
||||
class trust_tasks(UI_driver):
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def trusttasks_setup(self, ui_driver_fsetup):
|
||||
pass
|
||||
|
||||
def get_data(self, add_data=None):
|
||||
|
||||
domain = self.config.get('ad_domain')
|
||||
@ -100,8 +104,8 @@ class test_trust(trust_tasks):
|
||||
|
||||
request_timeout = 120
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
super(test_trust, self).setup(*args, **kwargs)
|
||||
@pytest.fixture(autouse=True)
|
||||
def trust_setup(self, trusttasks_setup):
|
||||
if not self.has_trusts():
|
||||
self.skip('Trusts not configured')
|
||||
|
||||
|
@ -32,6 +32,10 @@ import pytest
|
||||
@pytest.mark.tier1
|
||||
class vault_tasks(UI_driver):
|
||||
|
||||
@pytest.fixture(autouse=True)
|
||||
def vault_tasks_setup(self, ui_driver_fsetup):
|
||||
pass
|
||||
|
||||
def prep_service_data(self):
|
||||
|
||||
host = self.config.get('ipa_server')
|
||||
@ -64,8 +68,8 @@ class vault_tasks(UI_driver):
|
||||
@pytest.mark.tier1
|
||||
class test_vault(vault_tasks):
|
||||
|
||||
def setup(self, *args, **kwargs):
|
||||
super(test_vault, self).setup(*args, **kwargs)
|
||||
@pytest.fixture(autouse=True)
|
||||
def vault_setup(self, vault_tasks_setup):
|
||||
if not self.has_kra():
|
||||
self.skip('KRA not configured')
|
||||
|
||||
|
@ -162,19 +162,22 @@ class UI_driver:
|
||||
|
||||
request_timeout = 60
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def ui_driver_setup(self, request):
|
||||
cls = request.cls
|
||||
if NO_SELENIUM:
|
||||
raise unittest.SkipTest('Selenium not installed')
|
||||
cls.load_config()
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def ui_driver_fsetup(self, request):
|
||||
self.driver = self.get_driver()
|
||||
self.driver.maximize_window()
|
||||
|
||||
def teardown(self):
|
||||
self.driver.delete_all_cookies()
|
||||
self.driver.quit()
|
||||
def fin():
|
||||
self.driver.delete_all_cookies()
|
||||
self.driver.quit()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
@classmethod
|
||||
def load_config(cls):
|
||||
|
@ -16,24 +16,24 @@ from ipatests.test_xmlrpc.tracker.idview_plugin import IdviewTracker
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def idview(request):
|
||||
def idview(request, xmlrpc_setup):
|
||||
tracker = IdviewTracker(cn=u'MyView')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def testuser(request):
|
||||
def testuser(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'testuser', givenname=u'John', sn=u'Donne')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def cert1(request):
|
||||
def cert1(request, xmlrpc_setup):
|
||||
return get_testcert(DN(('CN', u'testuser')), u'testuser')
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def cert2(request):
|
||||
def cert2(request, xmlrpc_setup):
|
||||
return get_testcert(DN(('CN', u'testuser')), u'testuser')
|
||||
|
||||
|
||||
@ -52,6 +52,15 @@ class CertManipCmdTestBase(XMLRPC_test):
|
||||
entity_add=None,
|
||||
caacl=None,
|
||||
)
|
||||
|
||||
certs = None
|
||||
certs_remainder = None
|
||||
certs_subset = None
|
||||
invalid_b64 = None
|
||||
malformed_cert = None
|
||||
mixed_certs = None
|
||||
nonexistent_certs = None
|
||||
|
||||
cert_add_cmd = None
|
||||
cert_del_cmd = None
|
||||
|
||||
@ -100,9 +109,9 @@ class CertManipCmdTestBase(XMLRPC_test):
|
||||
def remove_caacl(cls):
|
||||
pass
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(CertManipCmdTestBase, cls).setup_class()
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def certmanipcmd_setup(self, request, xmlrpc_setup):
|
||||
cls = request.cls
|
||||
|
||||
cls.delete_entity()
|
||||
|
||||
@ -215,16 +224,15 @@ class CertManipCmdTestBase(XMLRPC_test):
|
||||
cls.malformed_cert = [base64.b64encode(b'malformed cert')]
|
||||
|
||||
# store entity info for the final test
|
||||
cls.entity_attrs = api.Command['%s_show' % cls.entity_class](
|
||||
cls.entity_pkey)
|
||||
cls.entity_attrs = api.Command[
|
||||
'%s_show' % cls.entity_class](cls.entity_pkey)
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
cls.delete_entity()
|
||||
cls.remove_caacl()
|
||||
def fin():
|
||||
cls.delete_entity()
|
||||
cls.remove_caacl()
|
||||
cls.restore_profile_store()
|
||||
|
||||
cls.restore_profile_store()
|
||||
super(CertManipCmdTestBase, cls).teardown_class()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def add_certs(self, certs):
|
||||
# pylint: disable=E1102
|
||||
|
@ -29,7 +29,7 @@ import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user(request):
|
||||
def user(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'user1', givenname=u'Test', sn=u'User1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
@ -58,7 +58,7 @@ hostgroup_exclude_regex3 = u'^webserver5'
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def manager1(request):
|
||||
def manager1(request, xmlrpc_setup):
|
||||
""" User tracker used as a manager account """
|
||||
tracker = UserTracker(name=u'mscott', sn=u'Manager1',
|
||||
givenname=u'Automember test manager user1')
|
||||
@ -74,49 +74,49 @@ def user1(request, manager1):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group1(request):
|
||||
def group1(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'tgroup1',
|
||||
description=u'Automember test group1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def defaultgroup1(request):
|
||||
def defaultgroup1(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'defaultgroup1',
|
||||
description=u'Automember test defaultgroup1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup1(request):
|
||||
def hostgroup1(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'thostgroup1',
|
||||
description=u'Automember test hostgroup1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup2(request):
|
||||
def hostgroup2(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'thostgroup2',
|
||||
description=u'Automember test hostgroup2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup3(request):
|
||||
def hostgroup3(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'thostgroup3',
|
||||
description=u'Automember test hostgroup3')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup4(request):
|
||||
def hostgroup4(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'thostgroup4',
|
||||
description=u'Automember test hostgroup4')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def defaulthostgroup1(request):
|
||||
def defaulthostgroup1(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'defaulthostgroup1',
|
||||
description=u'Automember test'
|
||||
'defaulthostgroup1')
|
||||
@ -124,31 +124,31 @@ def defaulthostgroup1(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host1(request):
|
||||
def host1(request, xmlrpc_setup):
|
||||
tracker = HostTracker(u'web1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host2(request):
|
||||
def host2(request, xmlrpc_setup):
|
||||
tracker = HostTracker(u'dev1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host3(request):
|
||||
def host3(request, xmlrpc_setup):
|
||||
tracker = HostTracker(u'web5')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host4(request):
|
||||
def host4(request, xmlrpc_setup):
|
||||
tracker = HostTracker(u'www5')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host5(request):
|
||||
def host5(request, xmlrpc_setup):
|
||||
tracker = HostTracker(u'webserver5')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
@ -45,7 +45,7 @@ def default_ca(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def crud_subca(request):
|
||||
def crud_subca(request, xmlrpc_setup):
|
||||
name = u'crud-subca'
|
||||
subject = u'CN=crud subca test,O=crud testing inc'
|
||||
tracker = CATracker(name, subject)
|
||||
@ -54,7 +54,7 @@ def crud_subca(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def subject_conflict_subca(request):
|
||||
def subject_conflict_subca(request, xmlrpc_setup):
|
||||
name = u'crud-subca-2'
|
||||
subject = u'CN=crud subca test,O=crud testing inc'
|
||||
tracker = CATracker(name, subject)
|
||||
@ -64,7 +64,7 @@ def subject_conflict_subca(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def unrecognised_subject_dn_attrs_subca(request):
|
||||
def unrecognised_subject_dn_attrs_subca(request, xmlrpc_setup):
|
||||
name = u'crud-subca-3'
|
||||
subject = u'CN=crud subca test,DN=example.com,O=crud testing inc'
|
||||
tracker = CATracker(name, subject)
|
||||
|
@ -18,7 +18,7 @@ from ipatests.test_xmlrpc.tracker.ca_plugin import CATracker
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def default_profile(request):
|
||||
def default_profile(request, xmlrpc_setup):
|
||||
name = 'caIPAserviceCert'
|
||||
desc = u'Standard profile for network services'
|
||||
tracker = CertprofileTracker(name, store=True, desc=desc)
|
||||
@ -27,7 +27,7 @@ def default_profile(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def default_acl(request):
|
||||
def default_acl(request, xmlrpc_setup):
|
||||
name = u'hosts_services_caIPAserviceCert'
|
||||
tracker = CAACLTracker(name, service_category=u'all', host_category=u'all')
|
||||
tracker.track_create()
|
||||
@ -37,7 +37,7 @@ def default_acl(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def crud_acl(request):
|
||||
def crud_acl(request, xmlrpc_setup):
|
||||
name = u'crud-acl'
|
||||
tracker = CAACLTracker(name)
|
||||
|
||||
@ -45,7 +45,7 @@ def crud_acl(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def category_acl(request):
|
||||
def category_acl(request, xmlrpc_setup):
|
||||
name = u'category_acl'
|
||||
tracker = CAACLTracker(name, ipacertprofile_category=u'all',
|
||||
user_category=u'all', service_category=u'all',
|
||||
@ -55,14 +55,14 @@ def category_acl(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def caacl_test_ca(request):
|
||||
def caacl_test_ca(request, xmlrpc_setup):
|
||||
name = u'caacl-test-ca'
|
||||
subject = u'CN=caacl test subca,O=test industries inc.'
|
||||
return CATracker(name, subject).make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def staged_user(request):
|
||||
def staged_user(request, xmlrpc_setup):
|
||||
name = u'st-user'
|
||||
tracker = StageUserTracker(name, u'stage', u'test')
|
||||
|
||||
|
@ -63,7 +63,7 @@ def generate_user_csr(username, domain=None):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def smime_profile(request):
|
||||
def smime_profile(request, xmlrpc_setup):
|
||||
profile_path = prepare_config(
|
||||
SMIME_PROFILE_TEMPLATE,
|
||||
dict(ipadomain=api.env.domain, iparealm=api.env.realm))
|
||||
@ -76,7 +76,7 @@ def smime_profile(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def smime_acl(request):
|
||||
def smime_acl(request, xmlrpc_setup):
|
||||
tracker = CAACLTracker(u'smime_acl')
|
||||
|
||||
return tracker.make_fixture(request)
|
||||
@ -86,7 +86,7 @@ def smime_acl(request):
|
||||
# UserTracker has problems while setting passwords.
|
||||
# Until fixed, will use this fixture.
|
||||
@pytest.fixture(scope='class')
|
||||
def smime_user(request):
|
||||
def smime_user(request, xmlrpc_setup):
|
||||
username = u'alice'
|
||||
api.Command.user_add(uid=username, givenname=u'Alice', sn=u'SMIME',
|
||||
userpassword=SMIME_USER_INIT_PW)
|
||||
@ -101,7 +101,7 @@ def smime_user(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def smime_group(request):
|
||||
def smime_group(request, xmlrpc_setup):
|
||||
api.Command.group_add(u'smime_users')
|
||||
|
||||
def fin():
|
||||
@ -259,7 +259,7 @@ class TestSignWithChangedProfile(XMLRPC_test):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def smime_signing_ca(request):
|
||||
def smime_signing_ca(request, xmlrpc_setup):
|
||||
name = u'smime-signing-ca'
|
||||
subject = u'CN=SMIME CA,O=test industries Inc.'
|
||||
return CATracker(name, subject).make_fixture(request)
|
||||
@ -368,7 +368,7 @@ class TestCertSignMIMEwithSubCA(XMLRPC_test):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def santest_subca(request):
|
||||
def santest_subca(request, xmlrpc_setup):
|
||||
name = u'default-profile-subca'
|
||||
subject = u'CN={},O=test'.format(name)
|
||||
tr = CATracker(name, subject)
|
||||
@ -376,19 +376,19 @@ def santest_subca(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def santest_subca_acl(request):
|
||||
def santest_subca_acl(request, xmlrpc_setup):
|
||||
tr = CAACLTracker(u'default_profile_subca')
|
||||
return tr.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def santest_host_1(request):
|
||||
def santest_host_1(request, xmlrpc_setup):
|
||||
tr = HostTracker(u'santest-host-1')
|
||||
return tr.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def santest_host_2(request):
|
||||
def santest_host_2(request, xmlrpc_setup):
|
||||
tr = HostTracker(u'santest-host-2')
|
||||
return tr.make_fixture(request)
|
||||
|
||||
|
@ -78,11 +78,13 @@ def is_db_configured():
|
||||
class BaseCert(XMLRPC_test):
|
||||
host_fqdn = u'ipatestcert.%s' % api.env.domain
|
||||
service_princ = u'test/%s@%s' % (host_fqdn, api.env.realm)
|
||||
certfile = None
|
||||
nssdb = None
|
||||
reqfile = None
|
||||
subject = None
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(BaseCert, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def basecert_setup(self, request, xmlrpc_setup):
|
||||
if 'cert_request' not in api.Command:
|
||||
raise unittest.SkipTest('cert_request not registered')
|
||||
if 'cert_show' not in api.Command:
|
||||
@ -90,7 +92,8 @@ class BaseCert(XMLRPC_test):
|
||||
|
||||
is_db_configured()
|
||||
|
||||
def setup(self):
|
||||
@pytest.fixture(autouse=True)
|
||||
def basecert_fsetup(self, request):
|
||||
self.nssdb = NSSDatabase()
|
||||
secdir = self.nssdb.secdir
|
||||
self.reqfile = os.path.join(secdir, "test.csr")
|
||||
@ -99,8 +102,9 @@ class BaseCert(XMLRPC_test):
|
||||
self.nssdb.create_db()
|
||||
self.subject = DN(('CN', self.host_fqdn), subject_base())
|
||||
|
||||
def teardown(self):
|
||||
self.nssdb.close() # remove tempdir
|
||||
def fin():
|
||||
self.nssdb.close()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def generateCSR(self, subject):
|
||||
self.nssdb.run_certutil([
|
||||
@ -115,11 +119,6 @@ class BaseCert(XMLRPC_test):
|
||||
|
||||
@pytest.mark.tier1
|
||||
class test_cert(BaseCert):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_cert, cls).setup_class()
|
||||
|
||||
"""
|
||||
Test the `cert` plugin.
|
||||
"""
|
||||
@ -270,11 +269,11 @@ class test_cert(BaseCert):
|
||||
|
||||
@pytest.mark.tier1
|
||||
class test_cert_find(XMLRPC_test):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_cert_find, cls).setup_class()
|
||||
|
||||
"""
|
||||
Test the `cert-find` command.
|
||||
"""
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def certfind_setup(self, request, xmlrpc_setup):
|
||||
if 'cert_find' not in api.Command:
|
||||
raise unittest.SkipTest('cert_find not registered')
|
||||
|
||||
@ -283,9 +282,6 @@ class test_cert_find(XMLRPC_test):
|
||||
|
||||
is_db_configured()
|
||||
|
||||
"""
|
||||
Test the `cert-find` command.
|
||||
"""
|
||||
short = api.env.host.split('.')[0]
|
||||
|
||||
def test_0001_find_all(self):
|
||||
@ -456,10 +452,6 @@ class test_cert_find(XMLRPC_test):
|
||||
@pytest.mark.tier1
|
||||
class test_cert_revocation(BaseCert):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_cert_revocation, cls).setup_class()
|
||||
|
||||
# create CSR, request cert, revoke cert, check cert attributes
|
||||
def revoke_cert(self, reason):
|
||||
# add host
|
||||
|
@ -46,7 +46,7 @@ ipv6_revrec_s = 'a.f.5.9.9.9.2.4.b.a.d.b.8.1.f.8'
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host(request):
|
||||
def host(request, xmlrpc_setup):
|
||||
tr = HostTracker('iptest')
|
||||
return tr.make_fixture(request)
|
||||
|
||||
|
@ -82,19 +82,19 @@ def update_idfn(update):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def certmap_rule(request):
|
||||
def certmap_rule(request, xmlrpc_setup):
|
||||
tracker = CertmapruleTracker(**certmaprule_create_params)
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def certmap_rule_trusted_domain(request):
|
||||
def certmap_rule_trusted_domain(request, xmlrpc_setup):
|
||||
tracker = CertmapruleTracker(**certmaprule_create_trusted_params)
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def certmap_config(request):
|
||||
def certmap_config(request, xmlrpc_setup):
|
||||
tracker = CertmapconfigTracker()
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
@ -344,7 +344,7 @@ def change_permissions_bindtype(perm, bindtype):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def bindtype_permission(request):
|
||||
def bindtype_permission(request, xmlrpc_setup):
|
||||
orig_bindtype = {}
|
||||
# set bindtype to permission to actually test the permission
|
||||
for perm_name in certmaprule_permissions.values():
|
||||
|
@ -44,7 +44,7 @@ RENAME_ERR_TEMPL = (
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def default_profile(request):
|
||||
def default_profile(request, xmlrpc_setup):
|
||||
name = 'caIPAserviceCert'
|
||||
desc = u'Standard profile for network services'
|
||||
tracker = CertprofileTracker(name, store=True, desc=desc)
|
||||
@ -53,7 +53,7 @@ def default_profile(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user_profile(request):
|
||||
def user_profile(request, xmlrpc_setup):
|
||||
name = 'caIPAserviceCert_mod'
|
||||
profile_path = prepare_config(
|
||||
CA_IPA_SERVICE_MODIFIED_TEMPLATE,
|
||||
@ -70,7 +70,7 @@ def user_profile(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def malformed(request):
|
||||
def malformed(request, xmlrpc_setup):
|
||||
name = u'caIPAserviceCert_mal'
|
||||
profile_path = prepare_config(
|
||||
CA_IPA_SERVICE_MALFORMED_TEMPLATE,
|
||||
@ -86,7 +86,7 @@ def malformed(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def xmlprofile(request):
|
||||
def xmlprofile(request, xmlrpc_setup):
|
||||
name = u'caIPAserviceCert_xml'
|
||||
profile_path = prepare_config(
|
||||
CA_IPA_SERVICE_XML_TEMPLATE,
|
||||
|
@ -426,10 +426,8 @@ if have_ldap2:
|
||||
@pytest.mark.tier1
|
||||
class test_dns(Declarative):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_dns, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def dns_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@ -3338,10 +3336,8 @@ class test_dns(Declarative):
|
||||
@pytest.mark.tier1
|
||||
class test_root_zone(Declarative):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_root_zone, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def root_zone_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@ -3424,10 +3420,8 @@ class test_root_zone(Declarative):
|
||||
class test_forward_zones(Declarative):
|
||||
# https://fedorahosted.org/freeipa/ticket/4750
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_forward_zones, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def forward_zone_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@ -4633,10 +4627,8 @@ class test_forward_zones(Declarative):
|
||||
class test_forward_master_zones_mutual_exlusion(Declarative):
|
||||
# https://fedorahosted.org/freeipa/ticket/4750
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_forward_master_zones_mutual_exlusion, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def forward_master_zone_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@ -5013,10 +5005,8 @@ class test_forward_master_zones_mutual_exlusion(Declarative):
|
||||
@pytest.mark.tier1
|
||||
class test_forwardzone_delegation_warnings(Declarative):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_forwardzone_delegation_warnings, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def forw_zone_deleg_warn_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@ -5524,10 +5514,8 @@ class test_forwardzone_delegation_warnings(Declarative):
|
||||
@pytest.mark.tier1
|
||||
class test_dns_soa(Declarative):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_dns_soa, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def dns_soa_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@ -6313,9 +6301,8 @@ class test_dns_soa(Declarative):
|
||||
class test_dns_type_uri(test_dns):
|
||||
"""Test behavior specific for URI RR type."""
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_dns_type_uri, cls).setup_class()
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def dns_type_uri_setup(self, dns_setup):
|
||||
try:
|
||||
api.Command['dnszone_add'](zone1, idnssoarname=zone1_rname)
|
||||
except errors.DuplicateEntry:
|
||||
|
@ -46,9 +46,8 @@ def get_trusted_group_name():
|
||||
|
||||
@pytest.mark.tier1
|
||||
class test_external_members(Declarative):
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_external_members, cls).setup_class()
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def ext_member_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
|
@ -41,13 +41,13 @@ external_sid1 = u'S-1-1-123456-789-1'
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group(request):
|
||||
def group(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'testgroup1', description=u'Test desc1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group2(request):
|
||||
def group2(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'testgroup2', description=u'Test desc2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
@ -65,7 +65,7 @@ def managed_group(request, user):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user(request):
|
||||
def user(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'user1', givenname=u'Test', sn=u'User1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
@ -85,7 +85,7 @@ def user_npg2(request, group):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def admins(request):
|
||||
def admins(request, xmlrpc_setup):
|
||||
# Track the admins group
|
||||
tracker = GroupTracker(
|
||||
name=u'admins', description=u'Account administrators group'
|
||||
@ -97,7 +97,7 @@ def admins(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def trustadmins(request):
|
||||
def trustadmins(request, xmlrpc_setup):
|
||||
# Track the 'trust admins' group
|
||||
tracker = GroupTracker(
|
||||
name=u'trust admins', description=u'Trusts administrators group'
|
||||
|
@ -108,37 +108,37 @@ ipv4_in_missingrevzone_ip = u'172.16.30.22'
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host(request):
|
||||
def host(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'testhost1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host2(request):
|
||||
def host2(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'testhost2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host3(request):
|
||||
def host3(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'testhost3')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host4(request):
|
||||
def host4(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'testhost4')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host5(request):
|
||||
def host5(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'testhost5')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def lab_host(request):
|
||||
def lab_host(request, xmlrpc_setup):
|
||||
name = u'testhost1'
|
||||
tracker = HostTracker(name=name,
|
||||
fqdn=u'%s.lab.%s' % (name, api.env.domain))
|
||||
@ -146,7 +146,7 @@ def lab_host(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def this_host(request):
|
||||
def this_host(request, xmlrpc_setup):
|
||||
"""Fixture for the current master"""
|
||||
tracker = HostTracker(name=api.env.host.partition('.')[0],
|
||||
fqdn=api.env.host)
|
||||
@ -158,41 +158,41 @@ def this_host(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def invalid_host(request):
|
||||
def invalid_host(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name='foo_bar',)
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def ipv6only_host(request):
|
||||
def ipv6only_host(request, xmlrpc_setup):
|
||||
name = u'testipv6onlyhost'
|
||||
tracker = HostTracker(name=name, fqdn=u'%s.%s' % (name, dnszone))
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def ipv4only_host(request):
|
||||
def ipv4only_host(request, xmlrpc_setup):
|
||||
name = u'testipv4onlyhost'
|
||||
tracker = HostTracker(name=name, fqdn=u'%s.%s' % (name, dnszone))
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def ipv46both_host(request):
|
||||
def ipv46both_host(request, xmlrpc_setup):
|
||||
name = u'testipv4and6host'
|
||||
tracker = HostTracker(name=name, fqdn=u'%s.%s' % (name, dnszone))
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def ipv4_fromip_host(request):
|
||||
def ipv4_fromip_host(request, xmlrpc_setup):
|
||||
name = u'testipv4fromip'
|
||||
tracker = HostTracker(name=name, fqdn=u'%s.%s' % (name, dnszone))
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def ipv6_fromip_host(request):
|
||||
def ipv6_fromip_host(request, xmlrpc_setup):
|
||||
name = u'testipv6fromip'
|
||||
tracker = HostTracker(name=name, fqdn=u'%s.%s' % (name, dnszone))
|
||||
return tracker.make_fixture(request)
|
||||
|
@ -31,25 +31,25 @@ import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup(request):
|
||||
def hostgroup(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'hostgroup')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup_invalid(request):
|
||||
def hostgroup_invalid(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'@invalid')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup_single(request):
|
||||
def hostgroup_single(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'a')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host(request):
|
||||
def host(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'host')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
@ -17,25 +17,25 @@ from ipapython.dnsutil import DNSName
|
||||
|
||||
|
||||
@pytest.fixture(scope='class', params=[u'location1', u'sk\xfa\u0161ka.idna'])
|
||||
def location(request):
|
||||
def location(request, xmlrpc_setup):
|
||||
tracker = LocationTracker(request.param)
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def location_invalid(request):
|
||||
def location_invalid(request, xmlrpc_setup):
|
||||
tracker = LocationTracker(u'invalid..location')
|
||||
return tracker
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def location_absolute(request):
|
||||
def location_absolute(request, xmlrpc_setup):
|
||||
tracker = LocationTracker(u'invalid.absolute.')
|
||||
return tracker
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def server(request):
|
||||
def server(request, xmlrpc_setup):
|
||||
tracker = ServerTracker(api.env.host)
|
||||
return tracker.make_fixture_clean_location(request)
|
||||
|
||||
|
@ -29,67 +29,67 @@ import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user1(request):
|
||||
def user1(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'tuser1', givenname=u'Test1', sn=u'User1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user2(request):
|
||||
def user2(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'tuser2', givenname=u'Test2', sn=u'User2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user3(request):
|
||||
def user3(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'tuser3', givenname=u'Test3', sn=u'User3')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user4(request):
|
||||
def user4(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'tuser4', givenname=u'Test4', sn=u'User4')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group1(request):
|
||||
def group1(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'testgroup1', description=u'Test desc1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group2(request):
|
||||
def group2(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'testgroup2', description=u'Test desc2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group3(request):
|
||||
def group3(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'testgroup3', description=u'Test desc3')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group4(request):
|
||||
def group4(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'testgroup4', description=u'Test desc4')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def host1(request):
|
||||
def host1(request, xmlrpc_setup):
|
||||
tracker = HostTracker(name=u'host1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup1(request):
|
||||
def hostgroup1(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'hostgroup1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def hostgroup2(request):
|
||||
def hostgroup2(request, xmlrpc_setup):
|
||||
tracker = HostGroupTracker(name=u'hostgroup2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
@ -3442,10 +3442,8 @@ class test_managed_permissions(Declarative):
|
||||
('permission_del', [permission2], {'force': True}),
|
||||
]
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_managed_permissions, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def managed_perm_setup(self, declarative_setup):
|
||||
if not have_ldap2:
|
||||
raise unittest.SkipTest('server plugin not available')
|
||||
|
||||
|
@ -368,10 +368,38 @@ IPA_LOCAL_RANGE_MOD_ERR = (
|
||||
|
||||
@pytest.mark.tier1
|
||||
class test_range(Declarative):
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_range, cls).setup_class()
|
||||
cls.teardown_class()
|
||||
mockldap = None
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def range_setup(self, request, declarative_setup):
|
||||
cls = request.cls
|
||||
|
||||
def fin():
|
||||
cls.mockldap = MockLDAP()
|
||||
|
||||
cls.mockldap.del_entry(domain2_dn)
|
||||
cls.mockldap.del_entry(domain3_dn)
|
||||
cls.mockldap.del_entry(domain4_dn)
|
||||
cls.mockldap.del_entry(domain5_dn)
|
||||
cls.mockldap.del_entry(domain6_dn)
|
||||
cls.mockldap.del_entry(domain7_dn)
|
||||
|
||||
cls.mockldap.del_entry(domain1range1_dn)
|
||||
cls.mockldap.del_entry(domain2range1_dn)
|
||||
cls.mockldap.del_entry(domain2range2_dn)
|
||||
cls.mockldap.del_entry(domain3range1_dn)
|
||||
cls.mockldap.del_entry(domain3range2_dn)
|
||||
cls.mockldap.del_entry(domain4range1_dn)
|
||||
cls.mockldap.del_entry(domain5range1_dn)
|
||||
cls.mockldap.del_entry(domain5range2_dn)
|
||||
cls.mockldap.del_entry(domain6range1_dn)
|
||||
cls.mockldap.del_entry(domain7range1_dn)
|
||||
cls.mockldap.del_entry(trust_container_dn)
|
||||
cls.mockldap.del_entry(trust_local_dn)
|
||||
cls.mockldap.del_entry(smb_cont_dn)
|
||||
cls.mockldap.unbind()
|
||||
|
||||
fin()
|
||||
cls.mockldap = MockLDAP()
|
||||
cls.mockldap.add_entry(trust_container_dn, trust_container_add)
|
||||
cls.mockldap.add_entry(smb_cont_dn, smb_cont_add)
|
||||
@ -395,31 +423,7 @@ class test_range(Declarative):
|
||||
cls.mockldap.add_entry(domain6range1_dn, domain6range1_add)
|
||||
cls.mockldap.unbind()
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
cls.mockldap = MockLDAP()
|
||||
|
||||
cls.mockldap.del_entry(domain2_dn)
|
||||
cls.mockldap.del_entry(domain3_dn)
|
||||
cls.mockldap.del_entry(domain4_dn)
|
||||
cls.mockldap.del_entry(domain5_dn)
|
||||
cls.mockldap.del_entry(domain6_dn)
|
||||
cls.mockldap.del_entry(domain7_dn)
|
||||
|
||||
cls.mockldap.del_entry(domain1range1_dn)
|
||||
cls.mockldap.del_entry(domain2range1_dn)
|
||||
cls.mockldap.del_entry(domain2range2_dn)
|
||||
cls.mockldap.del_entry(domain3range1_dn)
|
||||
cls.mockldap.del_entry(domain3range2_dn)
|
||||
cls.mockldap.del_entry(domain4range1_dn)
|
||||
cls.mockldap.del_entry(domain5range1_dn)
|
||||
cls.mockldap.del_entry(domain5range2_dn)
|
||||
cls.mockldap.del_entry(domain6range1_dn)
|
||||
cls.mockldap.del_entry(domain7range1_dn)
|
||||
cls.mockldap.del_entry(trust_container_dn)
|
||||
cls.mockldap.del_entry(trust_local_dn)
|
||||
cls.mockldap.del_entry(smb_cont_dn)
|
||||
cls.mockldap.unbind()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
cleanup_commands = [
|
||||
('idrange_del', [testrange1, testrange2, testrange3, testrange4,
|
||||
|
@ -33,7 +33,7 @@ import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user(request):
|
||||
def user(request, xmlrpc_setup):
|
||||
tracker = UserTracker(
|
||||
name=u'user1', givenname=u'Test', sn=u'User1',
|
||||
mail=[u'test1@example.com', u'test2@example.com']
|
||||
|
@ -89,48 +89,48 @@ options_ids = list(options_def.keys())
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser(request):
|
||||
def stageduser(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(name=u'suser1', givenname=u'staged', sn=u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser_min(request):
|
||||
def stageduser_min(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(givenname=u'stagedmin', sn=u'usermin')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
@pytest.fixture(scope='class', params=options_ok, ids=options_ids)
|
||||
def stageduser2(request):
|
||||
def stageduser2(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(u'suser2', u'staged', u'user', **request.param)
|
||||
return tracker.make_fixture_activate(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user_activated(request):
|
||||
def user_activated(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'suser2', u'staged', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser3(request):
|
||||
def stageduser3(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(name=u'suser3', givenname=u'staged', sn=u'user')
|
||||
return tracker.make_fixture_activate(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser4(request):
|
||||
def stageduser4(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(u'tuser', u'test', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser_notposix(request):
|
||||
def stageduser_notposix(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(u'notposix', u'notposix', u'notposix')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def stageduser_customattr(request):
|
||||
def stageduser_customattr(request, xmlrpc_setup):
|
||||
tracker = StageUserTracker(u'customattr', u'customattr', u'customattr',
|
||||
setattr=u'businesscategory=BusinessCat')
|
||||
tracker.track_create()
|
||||
@ -141,43 +141,43 @@ def stageduser_customattr(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user(request):
|
||||
def user(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'auser1', u'active', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user2(request):
|
||||
def user2(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'suser3', u'staged', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user3(request):
|
||||
def user3(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'auser2', u'active', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user4(request):
|
||||
def user4(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'tuser', u'test', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user5(request):
|
||||
def user5(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'tuser', u'test', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user6(request):
|
||||
def user6(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'suser2', u'staged', u'user')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user7(request):
|
||||
def user7(request, xmlrpc_setup):
|
||||
tracker = UserTracker(u'puser1', u'preserved', u'user')
|
||||
return tracker.make_fixture_restore(request)
|
||||
|
||||
@ -734,7 +734,7 @@ class TestDuplicates(XMLRPC_test):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group(request):
|
||||
def group(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(u'testgroup')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
@ -29,21 +29,21 @@ import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmd1(request):
|
||||
def sudocmd1(request, xmlrpc_setup):
|
||||
tracker = SudoCmdTracker(command=u'/usr/bin/sudotestcmd1',
|
||||
description=u'Test sudo command 1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmd2(request):
|
||||
def sudocmd2(request, xmlrpc_setup):
|
||||
tracker = SudoCmdTracker(command=u'/usr/bin/sudoTestCmd1',
|
||||
description=u'Test sudo command 2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudorule1(request):
|
||||
def sudorule1(request, xmlrpc_setup):
|
||||
name = u'test_sudorule1'
|
||||
|
||||
def fin():
|
||||
|
@ -30,34 +30,34 @@ import pytest
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmd1(request):
|
||||
def sudocmd1(request, xmlrpc_setup):
|
||||
tracker = SudoCmdTracker(command=u'/usr/bin/sudotestcmd1',
|
||||
description=u'Test sudo command 1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmd2(request):
|
||||
def sudocmd2(request, xmlrpc_setup):
|
||||
tracker = SudoCmdTracker(command=u'/usr/bin/sudoTestCmd1',
|
||||
description=u'Test sudo command 2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmd_plus(request):
|
||||
def sudocmd_plus(request, xmlrpc_setup):
|
||||
tracker = SudoCmdTracker(command=u'/bin/ls -l /lost+found/*',
|
||||
description=u'Test sudo command 3')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmdgroup1(request):
|
||||
def sudocmdgroup1(request, xmlrpc_setup):
|
||||
tracker = SudoCmdGroupTracker(u'testsudocmdgroup1', u'Test desc1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def sudocmdgroup2(request):
|
||||
def sudocmdgroup2(request, xmlrpc_setup):
|
||||
tracker = SudoCmdGroupTracker(u'testsudocmdgroup2', u'Test desc2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
@ -47,10 +47,8 @@ default_group_dn = DN(('cn', default_group), api.env.container_group, api.env.ba
|
||||
|
||||
@pytest.mark.tier1
|
||||
class test_trustconfig(Declarative):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(test_trustconfig, cls).setup_class()
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def trustconfig_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
try:
|
||||
|
@ -83,32 +83,32 @@ isodate_re = re.compile(r'^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$')
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user_min(request):
|
||||
def user_min(request, xmlrpc_setup):
|
||||
""" User tracker fixture for testing user with uid no specified """
|
||||
tracker = UserTracker(givenname=u'Testmin', sn=u'Usermin')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user(request):
|
||||
def user(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'user1', givenname=u'Test', sn=u'User1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user2(request):
|
||||
def user2(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'user2', givenname=u'Test2', sn=u'User2')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def renameduser(request):
|
||||
def renameduser(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'ruser1', givenname=u'Ruser', sn=u'Ruser1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def admin2(request):
|
||||
def admin2(request, xmlrpc_setup):
|
||||
tracker = UserTracker(name=u'admin2', givenname=u'Second', sn=u'Admin')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
@ -142,7 +142,7 @@ def user_npg2(request, group):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def user_radius(request):
|
||||
def user_radius(request, xmlrpc_setup):
|
||||
""" User tracker fixture for testing users with radius user name """
|
||||
tracker = UserTracker(name=u'radiususer', givenname=u'radiususer',
|
||||
sn=u'radiususer1',
|
||||
@ -155,7 +155,7 @@ def user_radius(request):
|
||||
|
||||
|
||||
@pytest.fixture(scope='class')
|
||||
def group(request):
|
||||
def group(request, xmlrpc_setup):
|
||||
tracker = GroupTracker(name=u'group1')
|
||||
return tracker.make_fixture(request)
|
||||
|
||||
@ -797,15 +797,14 @@ class TestUserWithUPGDisabled(XMLRPC_test):
|
||||
assert action in ('enable', 'disable')
|
||||
ipautil.run(['ipa-managed-entries', '-e', 'UPG Definition', action])
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(TestUserWithUPGDisabled, cls).setup_class()
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def user_with_upg_disabled_setup(self, request, xmlrpc_setup):
|
||||
cls = request.cls
|
||||
cls.managed_entries_upg(action='disable')
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
cls.managed_entries_upg(action='enable')
|
||||
super(TestUserWithUPGDisabled, cls).teardown_class()
|
||||
def fin():
|
||||
cls.managed_entries_upg(action='enable')
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def test_create_without_upg(self):
|
||||
""" Try to create user without User's Primary GID
|
||||
@ -1073,20 +1072,16 @@ class TestValidation(XMLRPC_test):
|
||||
class TestDeniedBindWithExpiredPrincipal(XMLRPC_test):
|
||||
|
||||
password = u'random'
|
||||
connection = None
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(TestDeniedBindWithExpiredPrincipal, cls).setup_class()
|
||||
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def bind_with_expired_principal_setup(self, request, xmlrpc_setup):
|
||||
cls = request.cls
|
||||
cls.connection = ldap_initialize(
|
||||
'ldap://{host}'.format(host=api.env.host)
|
||||
)
|
||||
cls.connection.start_tls_s()
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
super(TestDeniedBindWithExpiredPrincipal, cls).teardown_class()
|
||||
|
||||
def test_bind_as_test_user(self, user):
|
||||
""" Bind as user """
|
||||
self.failsafe_add(
|
||||
|
@ -134,17 +134,14 @@ veCYju6ok4ZWnMiH8MR1jgC39RWtjJZwynCuPXUP2/vZkoVf1tCZyz7dSm8TdS/2
|
||||
|
||||
@pytest.mark.tier1
|
||||
class test_vault_plugin(Declarative):
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def vault_plugin_setup(self, declarative_setup):
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
if not api.Command.kra_is_enabled()['result']:
|
||||
raise unittest.SkipTest('KRA service is not enabled')
|
||||
|
||||
super(test_vault_plugin, cls).setup_class()
|
||||
|
||||
cleanup_commands = [
|
||||
('vault_del', [vault_name], {'continue': True}),
|
||||
('vault_del', [vault_name], {
|
||||
|
@ -27,10 +27,11 @@ import inspect
|
||||
import unittest
|
||||
|
||||
import contextlib
|
||||
import pytest
|
||||
import six
|
||||
|
||||
from ipatests.util import assert_deepequal, Fuzzy
|
||||
from ipalib import api, request, errors
|
||||
from ipalib import api, request as ipa_request, errors
|
||||
from ipapython.version import API_VERSION
|
||||
|
||||
# pylint: disable=no-name-in-module, import-error
|
||||
@ -207,18 +208,18 @@ class XMLRPC_test:
|
||||
"""
|
||||
Base class for all XML-RPC plugin tests
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def xmlrpc_setup(self, request):
|
||||
if not server_available:
|
||||
raise unittest.SkipTest('%r: Server not available: %r' %
|
||||
(cls.__module__, api.env.xmlrpc_uri))
|
||||
(request.cls.__module__,
|
||||
api.env.xmlrpc_uri))
|
||||
if not api.Backend.rpcclient.isconnected():
|
||||
api.Backend.rpcclient.connect()
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
request.destroy_context()
|
||||
def fin():
|
||||
ipa_request.destroy_context()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
def failsafe_add(self, obj, pk, **options):
|
||||
"""
|
||||
@ -306,17 +307,13 @@ class Declarative(XMLRPC_test):
|
||||
cleanup_commands = tuple()
|
||||
tests = tuple()
|
||||
|
||||
@classmethod
|
||||
def setup_class(cls):
|
||||
super(Declarative, cls).setup_class()
|
||||
for command in cls.cleanup_commands:
|
||||
cls.cleanup(command)
|
||||
|
||||
@classmethod
|
||||
def teardown_class(cls):
|
||||
for command in cls.cleanup_commands:
|
||||
cls.cleanup(command)
|
||||
super(Declarative, cls).teardown_class()
|
||||
@pytest.fixture(autouse=True, scope="class")
|
||||
def declarative_setup(self, request, xmlrpc_setup):
|
||||
def fin():
|
||||
for command in request.cls.cleanup_commands:
|
||||
request.cls.cleanup(command)
|
||||
fin()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
@classmethod
|
||||
def cleanup(cls, command):
|
||||
|
@ -550,11 +550,11 @@ class ClassChecker:
|
||||
'get_subcls()'
|
||||
)
|
||||
|
||||
def teardown(self):
|
||||
"""
|
||||
nose tear-down fixture.
|
||||
"""
|
||||
context.__dict__.clear()
|
||||
@pytest.fixture(autouse=True)
|
||||
def classchecker_setup(self, request):
|
||||
def fin():
|
||||
context.__dict__.clear()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
|
||||
def get_api(**kw):
|
||||
@ -622,11 +622,11 @@ class PluginTester:
|
||||
o = api[namespace][self.plugin.__name__]
|
||||
return (o, api, home)
|
||||
|
||||
def teardown(self):
|
||||
"""
|
||||
nose tear-down fixture.
|
||||
"""
|
||||
context.__dict__.clear()
|
||||
@pytest.fixture(autouse=True)
|
||||
def plugintester_setup(self, request):
|
||||
def fin():
|
||||
context.__dict__.clear()
|
||||
request.addfinalizer(fin)
|
||||
|
||||
|
||||
class dummy_ugettext:
|
||||
|
Loading…
Reference in New Issue
Block a user