From 9bf273d5fefdbd1ed3f0f761cf01003b34af9ea5 Mon Sep 17 00:00:00 2001 From: William Brown Date: Tue, 31 May 2016 09:57:59 +1000 Subject: [PATCH 1/2] Ticket 48820 - Fix tests to ensure they work with the new object types Fix Description: Fix tests to make sure they work with the new object types. Some of these were just previously broken, but are now fixed. https://fedorahosted.org/389/ticket/48820 Author: wibrown Review by: ??? --- lib389/__init__.py | 18 ++++++++++++------ lib389/config.py | 15 +++++++++------ lib389/tests/dirsrv_test.py | 4 ---- lib389/tests/dsadmin_basic_test.py | 4 ++-- lib389/tests/dsadmin_create_remove_test.py | 2 +- lib389/tests/dsadmin_test.py | 8 ++++---- lib389/tests/utils_test.py | 10 ++++++---- 7 files changed, 34 insertions(+), 27 deletions(-) diff --git a/lib389/__init__.py b/lib389/__init__.py index c897cee..3e762dc 100644 --- a/lib389/__init__.py +++ b/lib389/__init__.py @@ -327,6 +327,14 @@ class DirSrv(SimpleLDAPObject): def __add_brookers__(self): from lib389.config import Config + from lib389.aci import Aci + from lib389.nss_ssl import NssSsl + from lib389.config import RSA + from lib389.config import Encryption + from lib389.dirsrv_log import DirsrvAccessLog, DirsrvErrorLog + from lib389.ldclt import Ldclt + from lib389.backend import Backends + from lib389.mappingTree import MappingTree from lib389.backend import BackendLegacy as Backend from lib389.suffix import Suffix @@ -337,13 +345,9 @@ class DirSrv(SimpleLDAPObject): from lib389.plugins import Plugins from lib389.tasks import Tasks from lib389.index import Index - from lib389.aci import Aci from lib389.monitor import Monitor - from lib389.nss_ssl import NssSsl - from lib389.config import RSA - from lib389.dirsrv_log import DirsrvAccessLog, DirsrvErrorLog - from lib389.ldclt import Ldclt + # Need updating self.agreement = Agreement(self) self.replica = Replica(self) self.changelog = Changelog(self) @@ -355,12 +359,14 @@ class DirSrv(SimpleLDAPObject): self.schema = Schema(self) self.plugins = Plugins(self) self.tasks = Tasks(self) - self.aci = Aci(self) self.monitor = Monitor(self) # Do we have a certdb path? #if MAJOR < 3: + self.backends = Backends(self) + self.aci = Aci(self) self.nss_ssl = NssSsl(self) self.rsa = RSA(self) + self.encryption = Encryption(self) self.ds_access_log = DirsrvAccessLog(self) self.ds_error_log = DirsrvErrorLog(self) self.ldclt = Ldclt(self) diff --git a/lib389/config.py b/lib389/config.py index d35efc9..b899397 100644 --- a/lib389/config.py +++ b/lib389/config.py @@ -32,7 +32,7 @@ class Config(DSLdapObject): """@param conn - a DirSrv instance """ super(Config, self).__init__(instance=conn, batch=batch) self._dn = DN_CONFIG - #self.conn = conn + #self._instance = conn #self.log = conn.log def _alter_log_enabled(self, service, state): @@ -106,7 +106,10 @@ class Config(DSLdapObject): 'nsSSLPersonalitySSL': 'Server-Cert' } """ - self._log.debug("config.enable_ssl is deprecated! Use RSA, Encryption instead!") + if self.deprecation_strict: + raise Exception("Use of deprecated enable_ssl!") + else: + self._log.debug("config.enable_ssl is deprecated! Use RSA, Encryption instead!") self._log.debug("configuring SSL with secargs:%r" % secargs) secargs = secargs or {} @@ -120,7 +123,7 @@ class Config(DSLdapObject): secargs.get('nsSSLClientAuth', 'allowed')), (ldap.MOD_REPLACE, 'nsSSL3Ciphers', secargs.get('nsSSL3Ciphers', ciphers))] - self.conn.modify_s(dn_enc, mod) + self._instance.modify_s(dn_enc, mod) dn_rsa = 'cn=RSA,cn=encryption,cn=config' e_rsa = Entry(dn_rsa) @@ -132,7 +135,7 @@ class Config(DSLdapObject): 'nsSSLActivation': secargs.get('nsSSLActivation', 'on') }) try: - self.conn.add_s(e_rsa) + self._instance.add_s(e_rsa) except ldap.ALREADY_EXISTS: pass @@ -148,10 +151,10 @@ class Config(DSLdapObject): str(secport)) ] self.log.debug("trying to modify %r with %r" % (DN_CONFIG, mod)) - self.conn.modify_s(DN_CONFIG, mod) + self._instance.modify_s(DN_CONFIG, mod) fields = 'nsslapd-security nsslapd-ssl-check-hostname'.split() - return self.conn.getEntry(DN_CONFIG, attrlist=fields) + return self._instance.getEntry(DN_CONFIG, attrlist=fields) class Encryption(DSLdapObject): diff --git a/lib389/tests/dirsrv_test.py b/lib389/tests/dirsrv_test.py index 8255181..c2df327 100644 --- a/lib389/tests/dirsrv_test.py +++ b/lib389/tests/dirsrv_test.py @@ -20,7 +20,6 @@ log = logging.getLogger(__name__) TEST_DN = "uid=test,%s" % DEFAULT_SUFFIX INSTANCE_PORT = 54321 INSTANCE_SERVERID = 'dirsrv' -INSTANCE_PREFIX = '/' INSTANCE_BACKUP = os.environ.get('BACKUPDIR', DEFAULT_BACKUPDIR) @@ -94,7 +93,6 @@ def test_allocate(topology): assert topology.instance.userid == userid assert topology.instance.serverid == INSTANCE_SERVERID assert topology.instance.groupid == topology.instance.userid - assert topology.instance.prefix == INSTANCE_PREFIX assert topology.instance.backupdir == INSTANCE_BACKUP log.info('Check that we can change the settings of an allocated DirSrv') @@ -117,7 +115,6 @@ def test_allocate(topology): assert topology.instance.userid == userid assert topology.instance.serverid == INSTANCE_SERVERID assert topology.instance.groupid == topology.instance.userid - assert topology.instance.prefix == INSTANCE_PREFIX assert topology.instance.backupdir == INSTANCE_BACKUP log.info('Restore back the valid parameters and check') @@ -139,7 +136,6 @@ def test_allocate(topology): assert topology.instance.userid == userid assert topology.instance.serverid == INSTANCE_SERVERID assert topology.instance.groupid == topology.instance.userid - assert topology.instance.prefix == INSTANCE_PREFIX assert topology.instance.backupdir == INSTANCE_BACKUP diff --git a/lib389/tests/dsadmin_basic_test.py b/lib389/tests/dsadmin_basic_test.py index 6426d41..02e8652 100644 --- a/lib389/tests/dsadmin_basic_test.py +++ b/lib389/tests/dsadmin_basic_test.py @@ -15,7 +15,7 @@ import lib389 from lib389 import DirSrv from lib389 import NoSuchEntryError from ldap import * -from nose.tools import * +#from nose.tools import * from . import config from .config import * @@ -107,7 +107,7 @@ def setupChangelog_full_test(): conn.delete_s("cn=changelog5,cn=config") -@raises(NoSuchEntryError) +#@raises(NoSuchEntryError) def getMTEntry_missing_test(): e = conn.getMTEntry('o=MISSING') return e diff --git a/lib389/tests/dsadmin_create_remove_test.py b/lib389/tests/dsadmin_create_remove_test.py index c0dea2d..5dae755 100644 --- a/lib389/tests/dsadmin_create_remove_test.py +++ b/lib389/tests/dsadmin_create_remove_test.py @@ -14,7 +14,7 @@ import os import socket from lib389 import DirSrv, DN_CONFIG from lib389.tools import DirSrvTools -from nose import * +#from nose import * added_instances = [] diff --git a/lib389/tests/dsadmin_test.py b/lib389/tests/dsadmin_test.py index a59ddb8..547ae27 100644 --- a/lib389/tests/dsadmin_test.py +++ b/lib389/tests/dsadmin_test.py @@ -6,8 +6,8 @@ # See LICENSE for details. # --- END COPYRIGHT BLOCK --- -from nose import * -from nose.tools import * +#from nose import * +#from nose.tools import * from . import config from .config import log @@ -151,7 +151,7 @@ def setupBackend_ok_test(): conn.backend.delete(benamebase='mockbe5') -@raises(ldap.ALREADY_EXISTS) +#@raises(ldap.ALREADY_EXISTS) def setupBackend_double_test(): "setupBackend_double calls brooker.Backend.add" backendEntry, dummy = conn.backend.add('o=mockbe3', benamebase='mockbe3') @@ -203,7 +203,7 @@ def prepare_master_replica_test(): conn.added_entries.append(e.dn) -@with_setup(setup_backend) +#@with_setup(setup_backend) def setupAgreement_test(): consumer = MockDirSrv() args = { diff --git a/lib389/tests/utils_test.py b/lib389/tests/utils_test.py index 06d576d..9155cc6 100644 --- a/lib389/tests/utils_test.py +++ b/lib389/tests/utils_test.py @@ -53,10 +53,12 @@ def test_isLocalHost(): assert r == v, "Mismatch %r vs %r on %r" % (r, v, k) -def test_update_jewhost_with_fqdn(): +def test_update_newhost_with_fqdn(): + # This test doesn't account for platform where localhost.localdomain isn't + # the name .... test = [ - ({'hostname': 'localhost'}, ('localhost.localdomain', True)), - ({'hostname': 'remote'}, ('remote', False)), + ({'hostname': 'localhost'}, (['localhost.localdomain', 'localhost'], True)), + ({'hostname': 'remote'}, (['remote'], False)), ] for k, v in test: old = k.copy() @@ -64,7 +66,7 @@ def test_update_jewhost_with_fqdn(): r = update_newhost_with_fqdn(k) assert expected_r == r, "Mismatch %r vs %r for %r" % ( r, expected_r, old) - assert expected_host == k['hostname'], "Mismatch %r vs %r for %r" % ( + assert k['hostname'] in expected_host, "Mismatch %r vs %r for %r" % ( k['hostname'], expected_host, old) -- 2.5.5