See 
<http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/127/>

------------------------------------------
[...truncated 4034 lines...]
            on MASTER2 (even if on MASTER2 47653 is NOT fixed). Then update on 
MASTER2 and check the update on MASTER1
    
            It checks that, bound as bind_entry,
                - we can not ADD an entry without the proper SELFDN aci.
                - with the proper ACI we can not ADD with '\''member'\'' 
attribute
                - with the proper ACI and '\''member'\'' it succeeds to ADD
        '\'''\'''\''
        topology.master1.log.info("\n\n######################### ADD 
######################\n")
    
        # bind as bind_entry
        topology.master1.log.info("Bind as %s" % BIND_DN)
        topology.master1.simple_bind_s(BIND_DN, BIND_PW)
    
        # Prepare the entry with multivalued members
        entry_with_members = Entry(ENTRY_DN)
        entry_with_members.setValues('\''objectclass'\'', '\''top'\'', 
'\''person'\'', '\''OCticket47653'\'')
        entry_with_members.setValues('\''sn'\'', ENTRY_NAME)
        entry_with_members.setValues('\''cn'\'', ENTRY_NAME)
        entry_with_members.setValues('\''postalAddress'\'', '\''here'\'')
        entry_with_members.setValues('\''postalCode'\'', '\''1234'\'')
        members = []
        for cpt in range(MAX_OTHERS):
            name = "%s%d" % (OTHER_NAME, cpt)
            members.append("cn=%s,%s" % (name, SUFFIX))
        members.append(BIND_DN)
        entry_with_members.setValues('\''member'\'', members)
    
        # Prepare the entry with only one member value
        entry_with_member = Entry(ENTRY_DN)
        entry_with_member.setValues('\''objectclass'\'', '\''top'\'', 
'\''person'\'', '\''OCticket47653'\'')
        entry_with_member.setValues('\''sn'\'', ENTRY_NAME)
        entry_with_member.setValues('\''cn'\'', ENTRY_NAME)
        entry_with_member.setValues('\''postalAddress'\'', '\''here'\'')
        entry_with_member.setValues('\''postalCode'\'', '\''1234'\'')
        member = []
        member.append(BIND_DN)
        entry_with_member.setValues('\''member'\'', member)
    
        # entry to add WITH member being BIND_DN but WITHOUT the ACI -> 
ldap.INSUFFICIENT_ACCESS
        try:
            topology.master1.log.info("Try to add Add  %s (aci is missing): %r" 
% (ENTRY_DN, entry_with_member))
    
            topology.master1.add_s(entry_with_member)
        except Exception as e:
            topology.master1.log.info("Exception (expected): %s" % 
type(e).__name__)
            assert isinstance(e, ldap.INSUFFICIENT_ACCESS)
    
        # Ok Now add the proper ACI
        topology.master1.log.info("Bind as %s and add the ADD SELFDN aci" % 
DN_DM)
        topology.master1.simple_bind_s(DN_DM, PASSWORD)
    
        ACI_TARGET       = "(target = \"ldap:///cn=*,%s\";)" % SUFFIX
        ACI_TARGETFILTER = "(targetfilter =\"(objectClass=%s)\")" % OC_NAME
        ACI_ALLOW        = "(version 3.0; acl \"SelfDN add\"; allow (add)"
        ACI_SUBJECT      = " userattr = \"member#selfDN\";)"
        ACI_BODY         = ACI_TARGET + ACI_TARGETFILTER + ACI_ALLOW + 
ACI_SUBJECT
        mod = [(ldap.MOD_ADD, '\''aci'\'', ACI_BODY)]
        topology.master1.modify_s(SUFFIX, mod)
        time.sleep(1)
    
        # bind as bind_entry
        topology.master1.log.info("Bind as %s" % BIND_DN)
        topology.master1.simple_bind_s(BIND_DN, BIND_PW)
    
        # entry to add WITHOUT member and WITH the ACI -> 
ldap.INSUFFICIENT_ACCESS
        try:
            topology.master1.log.info("Try to add Add  %s (member is missing)" 
% ENTRY_DN)
            topology.master1.add_s(Entry((ENTRY_DN, {
                                                '\''objectclass'\'':      
ENTRY_OC.split(),
                                                '\''sn'\'':               
ENTRY_NAME,
                                                '\''cn'\'':               
ENTRY_NAME,
                                                '\''postalAddress'\'':    
'\''here'\'',
                                                '\''postalCode'\'':       
'\''1234'\''})))
        except Exception as e:
            topology.master1.log.info("Exception (expected): %s" % 
type(e).__name__)
            assert isinstance(e, ldap.INSUFFICIENT_ACCESS)
    
        # entry to add WITH memberS and WITH the ACI -> ldap.INSUFFICIENT_ACCESS
        # member should contain only one value
        try:
            topology.master1.log.info("Try to add Add  %s (with several member 
values)" % ENTRY_DN)
            topology.master1.add_s(entry_with_members)
        except Exception as e:
            topology.master1.log.info("Exception (expected): %s" % 
type(e).__name__)
            assert isinstance(e, ldap.INSUFFICIENT_ACCESS)
    
        topology.master1.log.info("Try to add Add  %s should be successful" % 
ENTRY_DN)
        try:
            topology.master1.add_s(entry_with_member)
        except ldap.LDAPError as e:
            topology.master1.log.info("Failed to add entry,  error: " + 
e.message['\''desc'\''])
>           assert False
E           assert False

tickets/ticket47653MMR_test.py:305: AssertionError
----------------------------- Captured stderr call -----------------------------
INFO:lib389:

######################### ADD ######################

INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com
INFO:lib389:Try to add Add  cn=test_entry, dc=example,dc=com (aci is missing): 
dn: cn=test_entry, dc=example,dc=com
cn: test_entry
member: cn=bind_entry, dc=example,dc=com
objectclass: top
objectclass: person
objectclass: OCticket47653
postalAddress: here
postalCode: 1234
sn: test_entry


INFO:lib389:Exception (expected): INSUFFICIENT_ACCESS
INFO:lib389:Bind as cn=Directory Manager and add the ADD SELFDN aci
INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com
INFO:lib389:Try to add Add  cn=test_entry, dc=example,dc=com (member is missing)
INFO:lib389:Exception (expected): INSUFFICIENT_ACCESS
INFO:lib389:Try to add Add  cn=test_entry, dc=example,dc=com (with several 
member values)
INFO:lib389:Exception (expected): INSUFFICIENT_ACCESS
INFO:lib389:Try to add Add  cn=test_entry, dc=example,dc=com should be 
successful
INFO:lib389:Failed to add entry,  error: Insufficient access
___________________________ test_ticket47653_modify ____________________________

topology = <tickets.ticket47653MMR_test.TopologyMaster1Master2 object at 
0x7f2901017f10>

    def test_ticket47653_modify(topology):
        '\'''\'''\''
            This test MOD an entry on MASTER1 where 47653 is fixed. Then it 
checks that update is replicated
            on MASTER2 (even if on MASTER2 47653 is NOT fixed). Then update on 
MASTER2 (bound as BIND_DN).
            This update may fail whether or not 47653 is fixed on MASTER2
    
            It checks that, bound as bind_entry,
                - we can not modify an entry without the proper SELFDN aci.
                - adding the ACI, we can modify the entry
        '\'''\'''\''
        # bind as bind_entry
        topology.master1.log.info("Bind as %s" % BIND_DN)
        topology.master1.simple_bind_s(BIND_DN, BIND_PW)
    
        topology.master1.log.info("\n\n######################### MODIFY 
######################\n")
    
        # entry to modify WITH member being BIND_DN but WITHOUT the ACI -> 
ldap.INSUFFICIENT_ACCESS
        try:
            topology.master1.log.info("Try to modify  %s (aci is missing)" % 
ENTRY_DN)
            mod = [(ldap.MOD_REPLACE, '\''postalCode'\'', '\''9876'\'')]
            topology.master1.modify_s(ENTRY_DN, mod)
        except Exception as e:
            topology.master1.log.info("Exception (expected): %s" % 
type(e).__name__)
            assert isinstance(e, ldap.INSUFFICIENT_ACCESS)
    
        # Ok Now add the proper ACI
        topology.master1.log.info("Bind as %s and add the WRITE SELFDN aci" % 
DN_DM)
        topology.master1.simple_bind_s(DN_DM, PASSWORD)
    
        ACI_TARGET       = "(target = \"ldap:///cn=*,%s\";)" % SUFFIX
        ACI_TARGETATTR   = "(targetattr = *)"
        ACI_TARGETFILTER = "(targetfilter =\"(objectClass=%s)\")" % OC_NAME
        ACI_ALLOW        = "(version 3.0; acl \"SelfDN write\"; allow (write)"
        ACI_SUBJECT      = " userattr = \"member#selfDN\";)"
        ACI_BODY         = ACI_TARGET + ACI_TARGETATTR + ACI_TARGETFILTER + 
ACI_ALLOW + ACI_SUBJECT
        mod = [(ldap.MOD_ADD, '\''aci'\'', ACI_BODY)]
        topology.master1.modify_s(SUFFIX, mod)
        time.sleep(1)
    
        # bind as bind_entry
        topology.master1.log.info("M1: Bind as %s" % BIND_DN)
        topology.master1.simple_bind_s(BIND_DN, BIND_PW)
    
        # modify the entry and checks the value
        topology.master1.log.info("M1: Try to modify  %s. It should succeeds" % 
ENTRY_DN)
        mod = [(ldap.MOD_REPLACE, '\''postalCode'\'', '\''1928'\'')]
>       topology.master1.modify_s(ENTRY_DN, mod)

tickets/ticket47653MMR_test.py:387: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../lib389/lib389/__init__.py:159: in inner
    return f(*args, **kwargs)
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:402: in modify_s
    return self.result(msgid,all=1,timeout=self.timeout)
../../../lib389/lib389/__init__.py:127: in inner
    objtype, data = f(*args, **kwargs)
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:503: in result
    resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout)
../../../lib389/lib389/__init__.py:159: in inner
    return f(*args, **kwargs)
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:507: in result2
    resp_type, resp_data, resp_msgid, resp_ctrls = 
self.result3(msgid,all,timeout)
../../../lib389/lib389/__init__.py:159: in inner
    return f(*args, **kwargs)
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:514: in result3
    resp_ctrl_classes=resp_ctrl_classes
../../../lib389/lib389/__init__.py:159: in inner
    return f(*args, **kwargs)
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:521: in result4
    ldap_result = 
self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
../../../lib389/lib389/__init__.py:159: in inner
    return f(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <lib389.DirSrv instance at 0x7f290115dd88>
func = <built-in method result4 of LDAP object at 0x7f2901c1b4e0>
args = (37, 1, -1, 0, 0, 0), kwargs = {}, diagnostic_message_success = None
e = INSUFFICIENT_ACCESS({'\''desc'\'': '\''Insufficient access'\''},)

    def _ldap_call(self,func,*args,**kwargs):
      """
        Wrapper method mainly for serializing calls into OpenLDAP libs
        and trace logs
        """
      self._ldap_object_lock.acquire()
      if __debug__:
        if self._trace_level>=1:
          self._trace_file.write('\''*** %s %s - %s\n%s\n'\'' % (
            repr(self),
            self._uri,
            '\''.'\''.join((self.__class__.__name__,func.__name__)),
            pprint.pformat((args,kwargs))
          ))
          if self._trace_level>=9:
            
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)
      diagnostic_message_success = None
      try:
        try:
>         result = func(*args,**kwargs)
E         INSUFFICIENT_ACCESS: {'\''desc'\'': '\''Insufficient access'\''}

/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:106: INSUFFICIENT_ACCESS
----------------------------- Captured stderr call -----------------------------
INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com
INFO:lib389:

######################### MODIFY ######################

INFO:lib389:Try to modify  cn=test_entry, dc=example,dc=com (aci is missing)
INFO:lib389:Exception (expected): INSUFFICIENT_ACCESS
INFO:lib389:Bind as cn=Directory Manager and add the WRITE SELFDN aci
INFO:lib389:M1: Bind as cn=bind_entry, dc=example,dc=com
INFO:lib389:M1: Try to modify  cn=test_entry, dc=example,dc=com. It should 
succeeds
=================== 2 failed, 522 passed in 9828.58 seconds 
===================='
+ '[' 1 -ne 0 ']'
+ echo CI Tests 'FAILED!'
CI Tests FAILED!
+ echo ============================= test session starts 
============================== platform linux2 -- Python 2.7.12, pytest-2.9.2, 
py-1.4.31, pluggy-0.3.1 -- /usr/bin/python2 cachedir: .cache rootdir: 
<http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/ws/source/ds/dirsrvtests/tests,>
 inifile: plugins: sourceorder-0.5, multihost-1.0 collecting ... collected 524 
items tickets/ticket1347760_test.py::test_ticket1347760 PASSED 
tickets/ticket365_test.py::test_ticket365 PASSED 
tickets/ticket397_test.py::test_397 PASSED 
tickets/ticket47313_test.py::test_ticket47313_run PASSED 
tickets/ticket47384_test.py::test_ticket47384 PASSED 
tickets/ticket47431_test.py::test_ticket47431_0 PASSED 
tickets/ticket47431_test.py::test_ticket47431_1 PASSED 
tickets/ticket47431_test.py::test_ticket47431_2 PASSED 
tickets/ticket47431_test.py::test_ticket47431_3 PASSED 
tickets/ticket47462_test.py::test_ticket47462 PASSED 
tickets/ticket47490_test.py::test_ticket47490_init PASSED 
tickets/ticket47490_test.py::test_ticket47490_one PASSED 
tickets/ticket47490_test.py::test_ticket47490_two PASSED 
tickets/ticket47490_test.py::test_ticket47490_three PASSED 
tickets/ticket47490_test.py::test_ticket47490_four PASSED 
tickets/ticket47490_test.py::test_ticket47490_five PASSED 
tickets/ticket47490_test.py::test_ticket47490_six PASSED 
tickets/ticket47490_test.py::test_ticket47490_seven PASSED 
tickets/ticket47490_test.py::test_ticket47490_eight PASSED 
tickets/ticket47490_test.py::test_ticket47490_nine PASSED 
tickets/ticket47536_test.py::test_ticket47536 PASSED 
tickets/ticket47553_test.py::test_ticket47553 PASSED 
tickets/ticket47560_test.py::test_ticket47560 PASSED 
tickets/ticket47573_test.py::test_ticket47573_init PASSED 
tickets/ticket47573_test.py::test_ticket47573_one PASSED 
tickets/ticket47573_test.py::test_ticket47573_two PASSED 
tickets/ticket47573_test.py::test_ticket47573_three PASSED 
tickets/ticket47619_test.py::test_ticket47619_init PASSED 
tickets/ticket47619_test.py::test_ticket47619_create_index PASSED 
tickets/ticket47619_test.py::test_ticket47619_reindex PASSED 
tickets/ticket47619_test.py::test_ticket47619_check_indexed_search PASSED 
tickets/ticket47640_test.py::test_ticket47640 PASSED 
tickets/ticket47653MMR_test.py::test_ticket47653_init PASSED 
tickets/ticket47653MMR_test.py::test_ticket47653_add FAILED 
tickets/ticket47653MMR_test.py::test_ticket47653_modify FAILED 
tickets/ticket47653_test.py::test_ticket47653_init PASSED 
tickets/ticket47653_test.py::test_ticket47653_add PASSED 
tickets/ticket47653_test.py::test_ticket47653_search PASSED 
tickets/ticket47653_test.py::test_ticket47653_modify PASSED 
tickets/ticket47653_test.py::test_ticket47653_delete PASSED 
tickets/ticket47669_test.py::test_ticket47669_init PASSED 
tickets/ticket47669_test.py::test_ticket47669_changelog_maxage PASSED 
tickets/ticket47669_test.py::test_ticket47669_changelog_triminterval PASSED 
tickets/ticket47669_test.py::test_ticket47669_changelog_compactdbinterval 
PASSED tickets/ticket47669_test.py::test_ticket47669_retrochangelog_maxage 
PASSED tickets/ticket47676_test.py::test_ticket47676_init PASSED 
tickets/ticket47676_test.py::test_ticket47676_skip_oc_at PASSED 
tickets/ticket47676_test.py::test_ticket47676_reject_action PASSED 
tickets/ticket47714_test.py::test_ticket47714_init PASSED 
tickets/ticket47714_test.py::test_ticket47714_run_0 PASSED 
tickets/ticket47714_test.py::test_ticket47714_run_1 PASSED 
tickets/ticket47721_test.py::test_ticket47721_init PASSED 
tickets/ticket47721_test.py::test_ticket47721_0 PASSED 
tickets/ticket47721_test.py::test_ticket47721_1 PASSED 
tickets/ticket47721_test.py::test_ticket47721_2 PASSED 
tickets/ticket47721_test.py::test_ticket47721_3 PASSED 
tickets/ticket47721_test.py::test_ticket47721_4 PASSED 
tickets/ticket47781_test.py::test_ticket47781 PASSED 
tickets/ticket47787_test.py::test_ticket47787_init PASSED 
tickets/ticket47787_test.py::test_ticket47787_2 PASSED 
tickets/ticket47808_test.py::test_ticket47808_run PASSED 
tickets/ticket47815_test.py::test_ticket47815 PASSED 
tickets/ticket47819_test.py::test_ticket47819 PASSED 
tickets/ticket47823_test.py::test_ticket47823_init PASSED 
tickets/ticket47823_test.py::test_ticket47823_one_container_add PASSED 
tickets/ticket47823_test.py::test_ticket47823_one_container_mod PASSED 
tickets/ticket47823_test.py::test_ticket47823_one_container_modrdn PASSED 
tickets/ticket47823_test.py::test_ticket47823_multi_containers_add PASSED 
tickets/ticket47823_test.py::test_ticket47823_multi_containers_mod PASSED 
tickets/ticket47823_test.py::test_ticket47823_multi_containers_modrdn PASSED 
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_add 
PASSED 
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_mod 
PASSED 
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_modrdn 
PASSED tickets/ticket47823_test.py::test_ticket47823_invalid_config_1 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_2 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_3 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_4 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_5 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_6 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_7 PASSED 
tickets/ticket47828_test.py::test_ticket47828_init PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_0 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_1 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_2 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_3 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_4 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_5 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_6 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_7 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_8 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_9 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_10 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_11 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_12 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_13 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_14 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_15 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_16 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_17 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_18 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_19 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_20 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_21 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_22 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_23 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_24 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_25 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_26 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_27 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_28 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_29 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_30 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_31 PASSED 
tickets/ticket47829_test.py::test_ticket47829_init PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_2 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_3 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_2 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_3 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_2 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_3 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_active_user_1
 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_stage_user_1
 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_out_user_1 
PASSED tickets/ticket47829_test.py::test_ticket47829_mod_modrdn_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_active_user_1
 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1
 PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_1 
PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_2 
PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_3 
PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_4 
PASSED tickets/ticket47833_test.py::test_ticket47829_init PASSED 
tickets/ticket47833_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1
 PASSED tickets/ticket47869MMR_test.py::test_ticket47869_init PASSED 
tickets/ticket47869MMR_test.py::test_ticket47869_check PASSED 
tickets/ticket47871_test.py::test_ticket47871_init PASSED 
tickets/ticket47871_test.py::test_ticket47871_1 PASSED 
tickets/ticket47871_test.py::test_ticket47871_2 PASSED 
tickets/ticket47900_test.py::test_ticket47900 PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_positive PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_negative PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_invalid PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_noaccesslogs PASSED 
tickets/ticket47920_test.py::test_ticket47920_init PASSED 
tickets/ticket47920_test.py::test_ticket47920_mod_readentry_ctrl PASSED 
tickets/ticket47921_test.py::test_ticket47921 PASSED 
tickets/ticket47927_test.py::test_ticket47927_init PASSED 
tickets/ticket47927_test.py::test_ticket47927_one PASSED 
tickets/ticket47927_test.py::test_ticket47927_two PASSED 
tickets/ticket47927_test.py::test_ticket47927_three PASSED 
tickets/ticket47927_test.py::test_ticket47927_four PASSED 
tickets/ticket47927_test.py::test_ticket47927_five PASSED 
tickets/ticket47927_test.py::test_ticket47927_six PASSED 
tickets/ticket47931_test.py::test_ticket47931 PASSED 
tickets/ticket47937_test.py::test_ticket47937 PASSED 
tickets/ticket47950_test.py::test_ticket47950 PASSED 
tickets/ticket47953_test.py::test_ticket47953 PASSED 
tickets/ticket47963_test.py::test_ticket47963 PASSED 
tickets/ticket47966_test.py::test_ticket47966 PASSED 
tickets/ticket47970_test.py::test_ticket47970 PASSED 
tickets/ticket47973_test.py::test_ticket47973 PASSED 
tickets/ticket47976_test.py::test_ticket47976_init PASSED 
tickets/ticket47976_test.py::test_ticket47976_1 PASSED 
tickets/ticket47976_test.py::test_ticket47976_2 PASSED 
tickets/ticket47976_test.py::test_ticket47976_3 PASSED 
tickets/ticket47980_test.py::test_ticket47980 PASSED 
tickets/ticket47981_test.py::test_ticket47981 PASSED 
tickets/ticket47988_test.py::test_ticket47988_init PASSED 
tickets/ticket47988_test.py::test_ticket47988_1 PASSED 
tickets/ticket47988_test.py::test_ticket47988_2 PASSED 
tickets/ticket47988_test.py::test_ticket47988_3 PASSED 
tickets/ticket47988_test.py::test_ticket47988_4 PASSED 
tickets/ticket47988_test.py::test_ticket47988_5 PASSED 
tickets/ticket47988_test.py::test_ticket47988_6 PASSED 
tickets/ticket48005_test.py::test_ticket48005_setup PASSED 
tickets/ticket48005_test.py::test_ticket48005_memberof PASSED 
tickets/ticket48005_test.py::test_ticket48005_automember PASSED 
tickets/ticket48005_test.py::test_ticket48005_syntaxvalidate PASSED 
tickets/ticket48005_test.py::test_ticket48005_usn PASSED 
tickets/ticket48005_test.py::test_ticket48005_schemareload PASSED 
tickets/ticket48013_test.py::test_ticket48013 PASSED 
tickets/ticket48026_test.py::test_ticket48026 PASSED 
tickets/ticket48109_test.py::test_ticket48109 PASSED 
tickets/ticket48170_test.py::test_ticket48170 PASSED 
tickets/ticket48194_test.py::test_init PASSED 
tickets/ticket48194_test.py::test_run_0 PASSED 
tickets/ticket48194_test.py::test_run_1 PASSED 
tickets/ticket48194_test.py::test_run_2 PASSED 
tickets/ticket48194_test.py::test_run_3 PASSED 
tickets/ticket48194_test.py::test_run_4 PASSED 
tickets/ticket48194_test.py::test_run_5 PASSED 
tickets/ticket48194_test.py::test_run_6 PASSED 
tickets/ticket48194_test.py::test_run_7 PASSED 
tickets/ticket48194_test.py::test_run_8 PASSED 
tickets/ticket48194_test.py::test_run_9 PASSED 
tickets/ticket48194_test.py::test_run_10 PASSED 
tickets/ticket48194_test.py::test_run_11 PASSED 
tickets/ticket48212_test.py::test_ticket48212 PASSED 
tickets/ticket48214_test.py::test_ticket48214_run PASSED 
tickets/ticket48226_test.py::test_ticket48226_set_purgedelay PASSED 
tickets/ticket48226_test.py::test_ticket48226_1 PASSED 
tickets/ticket48228_test.py::test_ticket48228_test_global_policy PASSED 
tickets/ticket48228_test.py::test_ticket48228_test_subtree_policy PASSED 
tickets/ticket48233_test.py::test_ticket48233 PASSED 
tickets/ticket48234_test.py::test_ticket48234 PASSED 
tickets/ticket48252_test.py::test_ticket48252_setup PASSED 
tickets/ticket48252_test.py::test_ticket48252_run_0 PASSED 
tickets/ticket48252_test.py::test_ticket48252_run_1 PASSED 
tickets/ticket48265_test.py::test_ticket48265_test PASSED 
tickets/ticket48266_test.py::test_ticket48266_fractional PASSED 
tickets/ticket48266_test.py::test_ticket48266_check_repl_desc PASSED 
tickets/ticket48266_test.py::test_ticket48266_count_csn_evaluation PASSED 
tickets/ticket48270_test.py::test_ticket48270_init PASSED 
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_indexed_cis PASSED 
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_mixed_value PASSED 
tickets/ticket48270_test.py::test_ticket48270_extensible_search PASSED 
tickets/ticket48272_test.py::test_ticket48272 PASSED 
tickets/ticket48294_test.py::test_48294_init PASSED 
tickets/ticket48294_test.py::test_48294_run_0 PASSED 
tickets/ticket48294_test.py::test_48294_run_1 PASSED 
tickets/ticket48294_test.py::test_48294_run_2 PASSED 
tickets/ticket48295_test.py::test_48295_init PASSED 
tickets/ticket48295_test.py::test_48295_run PASSED 
tickets/ticket48312_test.py::test_ticket48312 PASSED 
tickets/ticket48325_test.py::test_ticket48325 PASSED 
tickets/ticket48342_test.py::test_ticket4026 PASSED 
tickets/ticket48354_test.py::test_ticket48354 PASSED 
tickets/ticket48362_test.py::test_ticket48362 PASSED 
tickets/ticket48366_test.py::test_ticket48366_init PASSED 
tickets/ticket48366_test.py::test_ticket48366_search_user PASSED 
tickets/ticket48366_test.py::test_ticket48366_search_dm PASSED 
tickets/ticket48370_test.py::test_ticket48370 PASSED 
tickets/ticket48383_test.py::test_ticket48383 PASSED 
tickets/ticket48497_test.py::test_ticket48497_init PASSED 
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_mixed_value PASSED 
tickets/ticket48497_test.py::test_ticket48497_extensible_search PASSED 
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_cfg PASSED 
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_run PASSED 
tickets/ticket48637_test.py::test_ticket48637 PASSED 
tickets/ticket48665_test.py::test_ticket48665 PASSED 
tickets/ticket48745_test.py::test_ticket48745_init PASSED 
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_indexed_cis PASSED 
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_mixed_value PASSED 
tickets/ticket48745_test.py::test_ticket48745_extensible_search_after_index 
PASSED tickets/ticket48746_test.py::test_ticket48746_init PASSED 
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_cis PASSED 
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_mixed_value PASSED 
tickets/ticket48746_test.py::test_ticket48746_extensible_search_after_index 
PASSED tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_ces 
PASSED tickets/ticket48755_test.py::test_ticket48755 PASSED 
tickets/ticket48759_test.py::test_ticket48759 PASSED 
tickets/ticket48784_test.py::test_ticket48784 PASSED 
tickets/ticket48798_test.py::test_ticket48798 PASSED 
tickets/ticket48799_test.py::test_ticket48799 PASSED 
tickets/ticket48808_test.py::test_ticket48808 PASSED 
tickets/ticket48844_test.py::test_ticket48844_init PASSED 
tickets/ticket48844_test.py::test_ticket48844_bitwise_on PASSED 
tickets/ticket48844_test.py::test_ticket48844_bitwise_off PASSED 
tickets/ticket48891_test.py::test_ticket48891_setup PASSED 
tickets/ticket48893_test.py::test_ticket48893 PASSED 
tickets/ticket48896_test.py::test_ticket48896 PASSED 
tickets/ticket48906_test.py::test_ticket48906_setup PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_default PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_ldap_update PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_edit_update PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_robust PASSED 
tickets/ticket48916_test.py::test_ticket48916 PASSED 
tickets/ticket48956_test.py::test_ticket48956 PASSED 
tickets/ticket48961_test.py::test_ticket48961_storagescheme PASSED 
tickets/ticket48961_test.py::test_ticket48961_deleteall PASSED 
tickets/ticket548_test.py::test_ticket548_test_with_no_policy PASSED 
tickets/ticket548_test.py::test_ticket548_test_global_policy PASSED 
tickets/ticket548_test.py::test_ticket548_test_subtree_policy PASSED 
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_init 
PASSED 
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_ 
PASSED suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_init PASSED 
suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_ PASSED 
'suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[lang-ja]' PASSED 
'suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[binary]' PASSED 
'suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[phonetic]' PASSED 
suites/acl/acl_test.py::test_mode_default_add_deny PASSED 
suites/acl/acl_test.py::test_mode_default_delete_deny PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[0-cn=staged' 
'user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]' PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[1-cn=staged' 
'user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]' PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[2-cn=staged' 
'user,dc=example,dc=com-cn=bad*,dc=example,dc=com-True]' PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[3-cn=st*,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]'
 PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[4-cn=bad*,dc=example,dc=com-cn=accounts,dc=example,dc=com-True]'
 PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[5-cn=st*,dc=example,dc=com-cn=ac*,dc=example,dc=com-False]'
 PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[6-None-cn=ac*,dc=example,dc=com-False]'
 PASSED 
'suites/acl/acl_test.py::test_moddn_staging_prod[7-cn=st*,dc=example,dc=com-None-False]'
 PASSED 'suites/acl/acl_test.py::test_moddn_staging_prod[8-None-None-False]' 
PASSED suites/acl/acl_test.py::test_moddn_staging_prod_9 PASSED 
suites/acl/acl_test.py::test_moddn_prod_staging PASSED 
suites/acl/acl_test.py::test_check_repl_M2_to_M1 PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod_except PASSED 
suites/acl/acl_test.py::test_mode_default_ger_no_moddn PASSED 
suites/acl/acl_test.py::test_mode_default_ger_with_moddn PASSED 
suites/acl/acl_test.py::test_mode_switch_default_to_legacy PASSED 
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn1 PASSED 
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn2 PASSED 
suites/acl/acl_test.py::test_mode_legacy_ger_with_moddn PASSED 
suites/acl/acl_test.py::test_rdn_write_get_ger PASSED 
suites/acl/acl_test.py::test_rdn_write_modrdn_anonymous PASSED 
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_init PASSED 
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_ PASSED 
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness_init
 PASSED 
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness 
PASSED suites/automember_plugin/automember_test.py::test_automember_init PASSED 
suites/automember_plugin/automember_test.py::test_automember_ PASSED 
suites/basic/basic_test.py::test_basic_ops PASSED 
suites/basic/basic_test.py::test_basic_import_export PASSED 
suites/basic/basic_test.py::test_basic_backup PASSED 
suites/basic/basic_test.py::test_basic_acl PASSED 
suites/basic/basic_test.py::test_basic_searches PASSED 
suites/basic/basic_test.py::test_basic_referrals PASSED 
suites/basic/basic_test.py::test_basic_systemctl PASSED 
suites/basic/basic_test.py::test_basic_ldapagent PASSED 
suites/basic/basic_test.py::test_basic_dse PASSED 
'suites/basic/basic_test.py::test_def_rootdse_attr[namingContexts]' PASSED 
'suites/basic/basic_test.py::test_def_rootdse_attr[supportedLDAPVersion]' 
PASSED 'suites/basic/basic_test.py::test_def_rootdse_attr[supportedControl]' 
PASSED 'suites/basic/basic_test.py::test_def_rootdse_attr[supportedExtension]' 
PASSED 
'suites/basic/basic_test.py::test_def_rootdse_attr[supportedSASLMechanisms]' 
PASSED 'suites/basic/basic_test.py::test_def_rootdse_attr[vendorName]' PASSED 
'suites/basic/basic_test.py::test_def_rootdse_attr[vendorVersion]' PASSED 
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[namingContexts]' PASSED 
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedLDAPVersion]' 
PASSED 
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedControl]' 
PASSED 
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedExtension]' 
PASSED 
'suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedSASLMechanisms]'
 PASSED 'suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorName]' 
PASSED 'suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorVersion]' 
PASSED suites/betxns/betxn_test.py::test_betxn_init PASSED 
suites/betxns/betxn_test.py::test_betxt_7bit PASSED 
suites/betxns/betxn_test.py::test_betxn_attr_uniqueness PASSED 
suites/betxns/betxn_test.py::test_betxn_memberof PASSED 
suites/chaining_plugin/chaining_test.py::test_chaining_init PASSED 
suites/chaining_plugin/chaining_test.py::test_chaining_ PASSED 
suites/clu/clu_test.py::test_clu_init PASSED 
suites/clu/clu_test.py::test_clu_pwdhash PASSED 
suites/clu/db2ldif_test.py::test_db2ldif_init PASSED 
suites/collation_plugin/collatation_test.py::test_collatation_init PASSED 
suites/collation_plugin/collatation_test.py::test_collatation_ PASSED 
suites/config/config_test.py::test_maxbersize_repl PASSED 
suites/config/config_test.py::test_config_listen_backport_size PASSED 
suites/config/config_test.py::test_config_deadlock_policy PASSED 
suites/cos_plugin/cos_test.py::test_cos_init PASSED 
suites/cos_plugin/cos_test.py::test_cos_ PASSED 
suites/deref_plugin/deref_test.py::test_deref_init PASSED 
suites/deref_plugin/deref_test.py::test_deref_ PASSED 
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_init PASSED 
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_ PASSED 
suites/distrib_plugin/distrib_test.py::test_distrib_init PASSED 
suites/distrib_plugin/distrib_test.py::test_distrib_ PASSED 
suites/dna_plugin/dna_test.py::test_dna_init PASSED 
suites/dna_plugin/dna_test.py::test_dna_ PASSED 
suites/ds_logs/ds_logs_test.py::test_ds_logs_init PASSED 
suites/ds_logs/ds_logs_test.py::test_ds_logs_ PASSED 
suites/dynamic-plugins/test_dynamic_plugins.py::test_dynamic_plugins PASSED 
suites/filter/filter_test.py::test_filter_init PASSED 
suites/filter/filter_test.py::test_filter_escaped PASSED 
suites/filter/filter_test.py::test_filter_search_original_attrs PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_supported_features PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-objectClass]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-objectClass]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-objectClass]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-objectClass]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-objectClass]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-objectClass]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-*]'
 PASSED 
'suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-objectClass]'
 PASSED suites/get_effective_rights/ger_test.py::test_ger_init PASSED 
suites/get_effective_rights/ger_test.py::test_ger_ PASSED 
suites/gssapi_repl/gssapi_repl_test.py::test_gssapi_repl PASSED 
suites/ldapi/ldapi_test.py::test_ldapi_init PASSED 
suites/ldapi/ldapi_test.py::test_ldapi_ PASSED 
suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_init PASSED 
suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_ PASSED 
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_init PASSED 
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_ PASSED 
suites/memberof_plugin/memberof_test.py::test_memberof_auto_add_oc PASSED 
suites/memory_leaks/range_search_test.py::test_range_search_init PASSED 
suites/memory_leaks/range_search_test.py::test_range_search PASSED 
suites/monitor/monitor_test.py::test_monitor_init PASSED 
suites/monitor/monitor_test.py::test_monitor_ PASSED 
'suites/paged_results/paged_results_test.py::test_search_success[6-5]' PASSED 
'suites/paged_results/paged_results_test.py::test_search_success[5-5]' PASSED 
'suites/paged_results/paged_results_test.py::test_search_success[5-25]' PASSED 
'suites/paged_results/paged_results_test.py::test_search_limits_fail[50-200-cn=config,cn=ldbm'
 
'database,cn=plugins,cn=config-nsslapd-idlistscanlimit-100-UNWILLING_TO_PERFORM]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_limits_fail[5-15-cn=config-nsslapd-timelimit-20-UNAVAILABLE_CRITICAL_EXTENSION]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-sizelimit-20-SIZELIMIT_EXCEEDED]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-pagedsizelimit-5-SIZELIMIT_EXCEEDED]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_limits_fail[5-50-cn=config,cn=ldbm'
 
'database,cn=plugins,cn=config-nsslapd-lookthroughlimit-20-ADMINLIMIT_EXCEEDED]'
 PASSED suites/paged_results/paged_results_test.py::test_search_sort_success 
PASSED suites/paged_results/paged_results_test.py::test_search_abandon PASSED 
suites/paged_results/paged_results_test.py::test_search_with_timelimit PASSED 
'suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[dns' = 
'"localhost.localdomain"]' PASSED 
'suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[ip' = 
'"::1"' or ip = '"127.0.0.1"]' PASSED 
suites/paged_results/paged_results_test.py::test_search_multiple_paging PASSED 
'suites/paged_results/paged_results_test.py::test_search_invalid_cookie[1000]' 
PASSED 
'suites/paged_results/paged_results_test.py::test_search_invalid_cookie[-1]' 
PASSED 
suites/paged_results/paged_results_test.py::test_search_abandon_with_zero_size 
PASSED 
suites/paged_results/paged_results_test.py::test_search_pagedsizelimit_success 
PASSED 
'suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[5-15-PASS]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[15-5-SIZELIMIT_EXCEEDED]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values1-PASS]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values1-PASS]'
 PASSED suites/paged_results/paged_results_test.py::test_ger_basic PASSED 
suites/paged_results/paged_results_test.py::test_multi_suffix_search PASSED 
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[None]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[-1]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[1000]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[0]'
 PASSED 
'suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[1]'
 PASSED suites/pam_passthru_plugin/pam_test.py::test_pam_init PASSED 
suites/pam_passthru_plugin/pam_test.py::test_pam_ PASSED 
suites/passthru_plugin/passthru_test.py::test_passthru_init PASSED 
suites/passthru_plugin/passthru_test.py::test_passthru_ PASSED 
suites/password/password_test.py::test_password_init PASSED 
suites/password/password_test.py::test_password_delete_specific_password PASSED 
suites/password/pwdAdmin_test.py::test_pwdAdmin_init PASSED 
suites/password/pwdAdmin_test.py::test_pwdAdmin PASSED 
suites/password/pwdAdmin_test.py::test_pwdAdmin_config_validation PASSED 
'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-off-UNWILLING_TO_PERFORM]'
 PASSED 
'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-off-UNWILLING_TO_PERFORM]'
 PASSED 
'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-on-None]' 
PASSED 
'suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-on-None]' 
PASSED suites/password/pwdPolicy_attribute_test.py::test_pwd_min_age PASSED 
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-off]'
 PASSED 
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[on-off]'
 PASSED 
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-on]'
 PASSED 
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn=config]'
 PASSED 
'suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn="cn=nsPwPolicyEntry,ou=People,dc=example,dc=com",cn=nsPwPolicyContainer,ou=People,dc=example,dc=com]'
 PASSED suites/password/pwdPolicy_syntax_test.py::test_pwdPolicy_syntax PASSED 
'suites/password/pwdPolicy_warning_test.py::test_different_values[' ']' PASSED 
'suites/password/pwdPolicy_warning_test.py::test_different_values[junk123]' 
PASSED 'suites/password/pwdPolicy_warning_test.py::test_different_values[on]' 
PASSED 'suites/password/pwdPolicy_warning_test.py::test_different_values[off]' 
PASSED suites/password/pwdPolicy_warning_test.py::test_expiry_time PASSED 
'suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordSendExpiringTime-off]'
 PASSED 
'suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordWarning-3600]'
 PASSED 
suites/password/pwdPolicy_warning_test.py::test_with_different_password_states 
PASSED suites/password/pwdPolicy_warning_test.py::test_default_behavior PASSED 
suites/password/pwdPolicy_warning_test.py::test_with_local_policy PASSED 
suites/password/pwd_algo_test.py::test_pwd_algo_test PASSED 
suites/password/pwp_history_test.py::test_pwp_history_test PASSED 
suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_init 
PASSED suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_ 
PASSED suites/psearch/psearch_test.py::test_psearch_init PASSED 
suites/psearch/psearch_test.py::test_psearch_ PASSED 
suites/referint_plugin/referint_test.py::test_referint_init PASSED 
suites/referint_plugin/referint_test.py::test_referint_ PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_init PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_clean PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_restart PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_force PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_abort PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_restart PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_certify PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_stress_clean PASSED 
suites/replication/wait_for_async_feature_test.py::test_not_int_value PASSED 
suites/replication/wait_for_async_feature_test.py::test_multi_value PASSED 
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr0]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr1]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr2]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr3]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr0]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr1]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr2]'
 PASSED 
'suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr3]'
 PASSED suites/replsync_plugin/repl_sync_test.py::test_repl_sync_init PASSED 
suites/replsync_plugin/repl_sync_test.py::test_repl_sync_ PASSED 
suites/resource_limits/res_limits_test.py::test_res_limits_init PASSED 
suites/resource_limits/res_limits_test.py::test_res_limits_ PASSED 
suites/retrocl_plugin/retrocl_test.py::test_retrocl_init PASSED 
suites/retrocl_plugin/retrocl_test.py::test_retrocl_ PASSED 
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_init PASSED 
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_ PASSED 
suites/roles_plugin/roles_test.py::test_roles_init PASSED 
suites/roles_plugin/roles_test.py::test_roles_ PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_init PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_specific_time 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_day_of_week 
PASSED suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_ip 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_host 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_ip 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_host 
PASSED suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_config_validate 
PASSED suites/sasl/sasl_test.py::test_sasl_init PASSED 
suites/sasl/sasl_test.py::test_sasl_ PASSED 
suites/schema/test_schema.py::test_schema_comparewithfiles PASSED 
suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_init 
PASSED suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_ 
PASSED suites/snmp/snmp_test.py::test_snmp_init PASSED 
suites/snmp/snmp_test.py::test_snmp_ PASSED 
suites/ssl/ssl_test.py::test_ssl_init PASSED suites/ssl/ssl_test.py::test_ssl_ 
PASSED suites/syntax_plugin/syntax_test.py::test_syntax_init PASSED 
suites/syntax_plugin/syntax_test.py::test_syntax_ PASSED 
suites/usn_plugin/usn_test.py::test_usn_init PASSED 
suites/usn_plugin/usn_test.py::test_usn_ PASSED 
suites/views_plugin/views_test.py::test_views_init PASSED 
suites/views_plugin/views_test.py::test_views_ PASSED 
suites/vlv/vlv_test.py::test_vlv_init PASSED suites/vlv/vlv_test.py::test_vlv_ 
PASSED suites/whoami_plugin/whoami_test.py::test_whoami_init PASSED 
suites/whoami_plugin/whoami_test.py::test_whoami_ PASSED 
=================================== FAILURES 
=================================== _____________________________ 
test_ticket47653_add _____________________________ topology = 
'<tickets.ticket47653MMR_test.TopologyMaster1Master2' object at 
'0x7f2901017f10>' def 'test_ticket47653_add(topology):' ''\'''\'''\''' This 
test ADD an entry on MASTER1 where 47653 is fixed. Then it checks that entry is 
replicated on MASTER2 '(even' if on MASTER2 47653 is NOT 'fixed).' Then update 
on MASTER2 and check the update on MASTER1 It checks that, bound as bind_entry, 
- we can not ADD an entry without the proper SELFDN aci. - with the proper ACI 
we can not ADD with ''\''member'\''' attribute - with the proper ACI and 
''\''member'\''' it succeeds to ADD ''\'''\'''\''' 
'topology.master1.log.info("\n\n#########################' ADD 
'######################\n")' '#' bind as bind_entry 
'topology.master1.log.info("Bind' as '%s"' % 'BIND_DN)' 
'topology.master1.simple_bind_s(BIND_DN,' 'BIND_PW)' '#' Prepare the entry with 
multivalued members entry_with_members = 'Entry(ENTRY_DN)' 
'entry_with_members.setValues('\''objectclass'\'',' ''\''top'\'',' 
''\''person'\'',' ''\''OCticket47653'\'')' 
'entry_with_members.setValues('\''sn'\'',' 'ENTRY_NAME)' 
'entry_with_members.setValues('\''cn'\'',' 'ENTRY_NAME)' 
'entry_with_members.setValues('\''postalAddress'\'',' ''\''here'\'')' 
'entry_with_members.setValues('\''postalCode'\'',' ''\''1234'\'')' members = 
'[]' for cpt in 'range(MAX_OTHERS):' name = '"%s%d"' % '(OTHER_NAME,' 'cpt)' 
'members.append("cn=%s,%s"' % '(name,' 'SUFFIX))' 'members.append(BIND_DN)' 
'entry_with_members.setValues('\''member'\'',' 'members)' '#' Prepare the entry 
with only one member value entry_with_member = 'Entry(ENTRY_DN)' 
'entry_with_member.setValues('\''objectclass'\'',' ''\''top'\'',' 
''\''person'\'',' ''\''OCticket47653'\'')' 
'entry_with_member.setValues('\''sn'\'',' 'ENTRY_NAME)' 
'entry_with_member.setValues('\''cn'\'',' 'ENTRY_NAME)' 
'entry_with_member.setValues('\''postalAddress'\'',' ''\''here'\'')' 
'entry_with_member.setValues('\''postalCode'\'',' ''\''1234'\'')' member = '[]' 
'member.append(BIND_DN)' 'entry_with_member.setValues('\''member'\'',' 
'member)' '#' entry to add WITH member being BIND_DN but WITHOUT the ACI '->' 
ldap.INSUFFICIENT_ACCESS try: 'topology.master1.log.info("Try' to add Add %s 
'(aci' is 'missing):' '%r"' % '(ENTRY_DN,' 'entry_with_member))' 
'topology.master1.add_s(entry_with_member)' except Exception as e: 
'topology.master1.log.info("Exception' '(expected):' '%s"' % 
'type(e).__name__)' assert 'isinstance(e,' 'ldap.INSUFFICIENT_ACCESS)' '#' Ok 
Now add the proper ACI 'topology.master1.log.info("Bind' as %s and add the ADD 
SELFDN 'aci"' % 'DN_DM)' 'topology.master1.simple_bind_s(DN_DM,' 'PASSWORD)' 
ACI_TARGET = '"(target' = '\"ldap:///cn=*,%s\";)"' % SUFFIX ACI_TARGETFILTER = 
'"(targetfilter' '=\"(objectClass=%s)\")"' % OC_NAME ACI_ALLOW = '"(version' 
'3.0;' acl '\"SelfDN' 'add\";' allow '(add)"' ACI_SUBJECT = '"' userattr = 
'\"member#selfDN\";)"' ACI_BODY = ACI_TARGET + ACI_TARGETFILTER + ACI_ALLOW + 
ACI_SUBJECT mod = '[(ldap.MOD_ADD,' ''\''aci'\'',' 'ACI_BODY)]' 
'topology.master1.modify_s(SUFFIX,' 'mod)' 'time.sleep(1)' '#' bind as 
bind_entry 'topology.master1.log.info("Bind' as '%s"' % 'BIND_DN)' 
'topology.master1.simple_bind_s(BIND_DN,' 'BIND_PW)' '#' entry to add WITHOUT 
member and WITH the ACI '->' ldap.INSUFFICIENT_ACCESS try: 
'topology.master1.log.info("Try' to add Add %s '(member' is 'missing)"' % 
'ENTRY_DN)' 'topology.master1.add_s(Entry((ENTRY_DN,' '{' 
''\''objectclass'\'':' 'ENTRY_OC.split(),' ''\''sn'\'':' ENTRY_NAME, 
''\''cn'\'':' ENTRY_NAME, ''\''postalAddress'\'':' ''\''here'\'',' 
''\''postalCode'\'':' ''\''1234'\''})))' except Exception as e: 
'topology.master1.log.info("Exception' '(expected):' '%s"' % 
'type(e).__name__)' assert 'isinstance(e,' 'ldap.INSUFFICIENT_ACCESS)' '#' 
entry to add WITH memberS and WITH the ACI '->' ldap.INSUFFICIENT_ACCESS '#' 
member should contain only one value try: 'topology.master1.log.info("Try' to 
add Add %s '(with' several member 'values)"' % 'ENTRY_DN)' 
'topology.master1.add_s(entry_with_members)' except Exception as e: 
'topology.master1.log.info("Exception' '(expected):' '%s"' % 
'type(e).__name__)' assert 'isinstance(e,' 'ldap.INSUFFICIENT_ACCESS)' 
'topology.master1.log.info("Try' to add Add %s should be 'successful"' % 
'ENTRY_DN)' try: 'topology.master1.add_s(entry_with_member)' except 
ldap.LDAPError as e: 'topology.master1.log.info("Failed' to add entry, error: 
'"' + 'e.message['\''desc'\''])' '>' assert False E assert False 
tickets/ticket47653MMR_test.py:305: AssertionError 
----------------------------- Captured stderr call 
----------------------------- INFO:lib389: '#########################' ADD 
'######################' INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com 
INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com '(aci' is 
'missing):' dn: cn=test_entry, dc=example,dc=com cn: test_entry member: 
cn=bind_entry, dc=example,dc=com objectclass: top objectclass: person 
objectclass: OCticket47653 postalAddress: here postalCode: 1234 sn: test_entry 
INFO:lib389:Exception '(expected):' INSUFFICIENT_ACCESS INFO:lib389:Bind as 
cn=Directory Manager and add the ADD SELFDN aci INFO:lib389:Bind as 
cn=bind_entry, dc=example,dc=com INFO:lib389:Try to add Add cn=test_entry, 
dc=example,dc=com '(member' is 'missing)' INFO:lib389:Exception '(expected):' 
INSUFFICIENT_ACCESS INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com 
'(with' several member 'values)' INFO:lib389:Exception '(expected):' 
INSUFFICIENT_ACCESS INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com 
should be successful INFO:lib389:Failed to add entry, error: Insufficient 
access ___________________________ test_ticket47653_modify 
____________________________ topology = 
'<tickets.ticket47653MMR_test.TopologyMaster1Master2' object at 
'0x7f2901017f10>' def 'test_ticket47653_modify(topology):' ''\'''\'''\''' This 
test MOD an entry on MASTER1 where 47653 is fixed. Then it checks that update 
is replicated on MASTER2 '(even' if on MASTER2 47653 is NOT 'fixed).' Then 
update on MASTER2 '(bound' as 'BIND_DN).' This update may fail whether or not 
47653 is fixed on MASTER2 It checks that, bound as bind_entry, - we can not 
modify an entry without the proper SELFDN aci. - adding the ACI, we can modify 
the entry ''\'''\'''\''' '#' bind as bind_entry 
'topology.master1.log.info("Bind' as '%s"' % 'BIND_DN)' 
'topology.master1.simple_bind_s(BIND_DN,' 'BIND_PW)' 
'topology.master1.log.info("\n\n#########################' MODIFY 
'######################\n")' '#' entry to modify WITH member being BIND_DN but 
WITHOUT the ACI '->' ldap.INSUFFICIENT_ACCESS try: 
'topology.master1.log.info("Try' to modify %s '(aci' is 'missing)"' % 
'ENTRY_DN)' mod = '[(ldap.MOD_REPLACE,' ''\''postalCode'\'',' ''\''9876'\'')]' 
'topology.master1.modify_s(ENTRY_DN,' 'mod)' except Exception as e: 
'topology.master1.log.info("Exception' '(expected):' '%s"' % 
'type(e).__name__)' assert 'isinstance(e,' 'ldap.INSUFFICIENT_ACCESS)' '#' Ok 
Now add the proper ACI 'topology.master1.log.info("Bind' as %s and add the 
WRITE SELFDN 'aci"' % 'DN_DM)' 'topology.master1.simple_bind_s(DN_DM,' 
'PASSWORD)' ACI_TARGET = '"(target' = '\"ldap:///cn=*,%s\";)"' % SUFFIX 
ACI_TARGETATTR = '"(targetattr' = '*)"' ACI_TARGETFILTER = '"(targetfilter' 
'=\"(objectClass=%s)\")"' % OC_NAME ACI_ALLOW = '"(version' '3.0;' acl 
'\"SelfDN' 'write\";' allow '(write)"' ACI_SUBJECT = '"' userattr = 
'\"member#selfDN\";)"' ACI_BODY = ACI_TARGET + ACI_TARGETATTR + 
ACI_TARGETFILTER + ACI_ALLOW + ACI_SUBJECT mod = '[(ldap.MOD_ADD,' 
''\''aci'\'',' 'ACI_BODY)]' 'topology.master1.modify_s(SUFFIX,' 'mod)' 
'time.sleep(1)' '#' bind as bind_entry 'topology.master1.log.info("M1:' Bind as 
'%s"' % 'BIND_DN)' 'topology.master1.simple_bind_s(BIND_DN,' 'BIND_PW)' '#' 
modify the entry and checks the value 'topology.master1.log.info("M1:' Try to 
modify %s. It should 'succeeds"' % 'ENTRY_DN)' mod = '[(ldap.MOD_REPLACE,' 
''\''postalCode'\'',' ''\''1928'\'')]' '>' 
'topology.master1.modify_s(ENTRY_DN,' 'mod)' 
tickets/ticket47653MMR_test.py:387: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ../../../lib389/lib389/__init__.py:159: in 
inner return 'f(*args,' '**kwargs)' 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:402: in modify_s return 
'self.result(msgid,all=1,timeout=self.timeout)' 
../../../lib389/lib389/__init__.py:127: in inner objtype, data = 'f(*args,' 
'**kwargs)' /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:503: in 
result resp_type, resp_data, resp_msgid = 'self.result2(msgid,all,timeout)' 
../../../lib389/lib389/__init__.py:159: in inner return 'f(*args,' '**kwargs)' 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:507: in result2 
resp_type, resp_data, resp_msgid, resp_ctrls = 
'self.result3(msgid,all,timeout)' ../../../lib389/lib389/__init__.py:159: in 
inner return 'f(*args,' '**kwargs)' 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:514: in result3 
resp_ctrl_classes=resp_ctrl_classes ../../../lib389/lib389/__init__.py:159: in 
inner return 'f(*args,' '**kwargs)' 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:521: in result4 
ldap_result = 
'self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)'
 ../../../lib389/lib389/__init__.py:159: in inner return 'f(*args,' '**kwargs)' 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = '<lib389.DirSrv' instance at '0x7f290115dd88>' func = '<built-in' method 
result4 of LDAP object at '0x7f2901c1b4e0>' args = '(37,' 1, -1, 0, 0, '0),' 
kwargs = '{},' diagnostic_message_success = None e = 
'INSUFFICIENT_ACCESS({'\''desc'\'':' ''\''Insufficient' 'access'\''},)' def 
'_ldap_call(self,func,*args,**kwargs):' '"""' Wrapper method mainly for 
serializing calls into OpenLDAP libs and trace logs '"""' 
'self._ldap_object_lock.acquire()' if __debug__: if 'self._trace_level>=1:' 
'self._trace_file.write('\''***' %s %s - '%s\n%s\n'\''' % '(' 'repr(self),' 
self._uri, ''\''.'\''.join((self.__class__.__name__,func.__name__)),' 
'pprint.pformat((args,kwargs))' '))' if 'self._trace_level>=9:' 
'traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file)' 
diagnostic_message_success = None try: try: '>' result = 'func(*args,**kwargs)' 
E INSUFFICIENT_ACCESS: '{'\''desc'\'':' ''\''Insufficient' 'access'\''}' 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:106: INSUFFICIENT_ACCESS 
----------------------------- Captured stderr call 
----------------------------- INFO:lib389:Bind as cn=bind_entry, 
dc=example,dc=com INFO:lib389: '#########################' MODIFY 
'######################' INFO:lib389:Try to modify cn=test_entry, 
dc=example,dc=com '(aci' is 'missing)' INFO:lib389:Exception '(expected):' 
INSUFFICIENT_ACCESS INFO:lib389:Bind as cn=Directory Manager and add the WRITE 
SELFDN aci INFO:lib389:M1: Bind as cn=bind_entry, dc=example,dc=com 
INFO:lib389:M1: Try to modify cn=test_entry, dc=example,dc=com. It should 
succeeds =================== 2 failed, 522 passed in 9828.58 seconds 
====================
============================= test session starts 
============================== platform linux2 -- Python 2.7.12, pytest-2.9.2, 
py-1.4.31, pluggy-0.3.1 -- /usr/bin/python2 cachedir: .cache rootdir: 
<http://vm-058-081.abc.idm.lab.eng.brq.redhat.com:8080/job/389-DS-NIGHTLY/ws/source/ds/dirsrvtests/tests,>
 inifile: plugins: sourceorder-0.5, multihost-1.0 collecting ... collected 524 
items tickets/ticket1347760_test.py::test_ticket1347760 PASSED 
tickets/ticket365_test.py::test_ticket365 PASSED 
tickets/ticket397_test.py::test_397 PASSED 
tickets/ticket47313_test.py::test_ticket47313_run PASSED 
tickets/ticket47384_test.py::test_ticket47384 PASSED 
tickets/ticket47431_test.py::test_ticket47431_0 PASSED 
tickets/ticket47431_test.py::test_ticket47431_1 PASSED 
tickets/ticket47431_test.py::test_ticket47431_2 PASSED 
tickets/ticket47431_test.py::test_ticket47431_3 PASSED 
tickets/ticket47462_test.py::test_ticket47462 PASSED 
tickets/ticket47490_test.py::test_ticket47490_init PASSED 
tickets/ticket47490_test.py::test_ticket47490_one PASSED 
tickets/ticket47490_test.py::test_ticket47490_two PASSED 
tickets/ticket47490_test.py::test_ticket47490_three PASSED 
tickets/ticket47490_test.py::test_ticket47490_four PASSED 
tickets/ticket47490_test.py::test_ticket47490_five PASSED 
tickets/ticket47490_test.py::test_ticket47490_six PASSED 
tickets/ticket47490_test.py::test_ticket47490_seven PASSED 
tickets/ticket47490_test.py::test_ticket47490_eight PASSED 
tickets/ticket47490_test.py::test_ticket47490_nine PASSED 
tickets/ticket47536_test.py::test_ticket47536 PASSED 
tickets/ticket47553_test.py::test_ticket47553 PASSED 
tickets/ticket47560_test.py::test_ticket47560 PASSED 
tickets/ticket47573_test.py::test_ticket47573_init PASSED 
tickets/ticket47573_test.py::test_ticket47573_one PASSED 
tickets/ticket47573_test.py::test_ticket47573_two PASSED 
tickets/ticket47573_test.py::test_ticket47573_three PASSED 
tickets/ticket47619_test.py::test_ticket47619_init PASSED 
tickets/ticket47619_test.py::test_ticket47619_create_index PASSED 
tickets/ticket47619_test.py::test_ticket47619_reindex PASSED 
tickets/ticket47619_test.py::test_ticket47619_check_indexed_search PASSED 
tickets/ticket47640_test.py::test_ticket47640 PASSED 
tickets/ticket47653MMR_test.py::test_ticket47653_init PASSED 
tickets/ticket47653MMR_test.py::test_ticket47653_add FAILED 
tickets/ticket47653MMR_test.py::test_ticket47653_modify FAILED 
tickets/ticket47653_test.py::test_ticket47653_init PASSED 
tickets/ticket47653_test.py::test_ticket47653_add PASSED 
tickets/ticket47653_test.py::test_ticket47653_search PASSED 
tickets/ticket47653_test.py::test_ticket47653_modify PASSED 
tickets/ticket47653_test.py::test_ticket47653_delete PASSED 
tickets/ticket47669_test.py::test_ticket47669_init PASSED 
tickets/ticket47669_test.py::test_ticket47669_changelog_maxage PASSED 
tickets/ticket47669_test.py::test_ticket47669_changelog_triminterval PASSED 
tickets/ticket47669_test.py::test_ticket47669_changelog_compactdbinterval 
PASSED tickets/ticket47669_test.py::test_ticket47669_retrochangelog_maxage 
PASSED tickets/ticket47676_test.py::test_ticket47676_init PASSED 
tickets/ticket47676_test.py::test_ticket47676_skip_oc_at PASSED 
tickets/ticket47676_test.py::test_ticket47676_reject_action PASSED 
tickets/ticket47714_test.py::test_ticket47714_init PASSED 
tickets/ticket47714_test.py::test_ticket47714_run_0 PASSED 
tickets/ticket47714_test.py::test_ticket47714_run_1 PASSED 
tickets/ticket47721_test.py::test_ticket47721_init PASSED 
tickets/ticket47721_test.py::test_ticket47721_0 PASSED 
tickets/ticket47721_test.py::test_ticket47721_1 PASSED 
tickets/ticket47721_test.py::test_ticket47721_2 PASSED 
tickets/ticket47721_test.py::test_ticket47721_3 PASSED 
tickets/ticket47721_test.py::test_ticket47721_4 PASSED 
tickets/ticket47781_test.py::test_ticket47781 PASSED 
tickets/ticket47787_test.py::test_ticket47787_init PASSED 
tickets/ticket47787_test.py::test_ticket47787_2 PASSED 
tickets/ticket47808_test.py::test_ticket47808_run PASSED 
tickets/ticket47815_test.py::test_ticket47815 PASSED 
tickets/ticket47819_test.py::test_ticket47819 PASSED 
tickets/ticket47823_test.py::test_ticket47823_init PASSED 
tickets/ticket47823_test.py::test_ticket47823_one_container_add PASSED 
tickets/ticket47823_test.py::test_ticket47823_one_container_mod PASSED 
tickets/ticket47823_test.py::test_ticket47823_one_container_modrdn PASSED 
tickets/ticket47823_test.py::test_ticket47823_multi_containers_add PASSED 
tickets/ticket47823_test.py::test_ticket47823_multi_containers_mod PASSED 
tickets/ticket47823_test.py::test_ticket47823_multi_containers_modrdn PASSED 
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_add 
PASSED 
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_mod 
PASSED 
tickets/ticket47823_test.py::test_ticket47823_across_multi_containers_modrdn 
PASSED tickets/ticket47823_test.py::test_ticket47823_invalid_config_1 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_2 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_3 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_4 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_5 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_6 PASSED 
tickets/ticket47823_test.py::test_ticket47823_invalid_config_7 PASSED 
tickets/ticket47828_test.py::test_ticket47828_init PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_0 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_1 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_2 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_3 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_4 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_5 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_6 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_7 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_8 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_9 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_10 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_11 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_12 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_13 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_14 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_15 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_16 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_17 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_18 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_19 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_20 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_21 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_22 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_23 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_24 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_25 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_26 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_27 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_28 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_29 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_30 PASSED 
tickets/ticket47828_test.py::test_ticket47828_run_31 PASSED 
tickets/ticket47829_test.py::test_ticket47829_init PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_2 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_3 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_2 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_3 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_2 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_out_user_3 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_active_user_1
 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_stage_user_1
 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_active_user_modrdn_out_user_1 
PASSED tickets/ticket47829_test.py::test_ticket47829_mod_modrdn_1 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_active_user_1
 PASSED 
tickets/ticket47829_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1
 PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_1 
PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_2 
PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_3 
PASSED tickets/ticket47829_test.py::test_ticket47829_indirect_active_group_4 
PASSED tickets/ticket47833_test.py::test_ticket47829_init PASSED 
tickets/ticket47833_test.py::test_ticket47829_mod_stage_user_modrdn_stage_user_1
 PASSED tickets/ticket47869MMR_test.py::test_ticket47869_init PASSED 
tickets/ticket47869MMR_test.py::test_ticket47869_check PASSED 
tickets/ticket47871_test.py::test_ticket47871_init PASSED 
tickets/ticket47871_test.py::test_ticket47871_1 PASSED 
tickets/ticket47871_test.py::test_ticket47871_2 PASSED 
tickets/ticket47900_test.py::test_ticket47900 PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_positive PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_negative PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_start_end_invalid PASSED 
tickets/ticket47910_test.py::test_ticket47910_logconv_noaccesslogs PASSED 
tickets/ticket47920_test.py::test_ticket47920_init PASSED 
tickets/ticket47920_test.py::test_ticket47920_mod_readentry_ctrl PASSED 
tickets/ticket47921_test.py::test_ticket47921 PASSED 
tickets/ticket47927_test.py::test_ticket47927_init PASSED 
tickets/ticket47927_test.py::test_ticket47927_one PASSED 
tickets/ticket47927_test.py::test_ticket47927_two PASSED 
tickets/ticket47927_test.py::test_ticket47927_three PASSED 
tickets/ticket47927_test.py::test_ticket47927_four PASSED 
tickets/ticket47927_test.py::test_ticket47927_five PASSED 
tickets/ticket47927_test.py::test_ticket47927_six PASSED 
tickets/ticket47931_test.py::test_ticket47931 PASSED 
tickets/ticket47937_test.py::test_ticket47937 PASSED 
tickets/ticket47950_test.py::test_ticket47950 PASSED 
tickets/ticket47953_test.py::test_ticket47953 PASSED 
tickets/ticket47963_test.py::test_ticket47963 PASSED 
tickets/ticket47966_test.py::test_ticket47966 PASSED 
tickets/ticket47970_test.py::test_ticket47970 PASSED 
tickets/ticket47973_test.py::test_ticket47973 PASSED 
tickets/ticket47976_test.py::test_ticket47976_init PASSED 
tickets/ticket47976_test.py::test_ticket47976_1 PASSED 
tickets/ticket47976_test.py::test_ticket47976_2 PASSED 
tickets/ticket47976_test.py::test_ticket47976_3 PASSED 
tickets/ticket47980_test.py::test_ticket47980 PASSED 
tickets/ticket47981_test.py::test_ticket47981 PASSED 
tickets/ticket47988_test.py::test_ticket47988_init PASSED 
tickets/ticket47988_test.py::test_ticket47988_1 PASSED 
tickets/ticket47988_test.py::test_ticket47988_2 PASSED 
tickets/ticket47988_test.py::test_ticket47988_3 PASSED 
tickets/ticket47988_test.py::test_ticket47988_4 PASSED 
tickets/ticket47988_test.py::test_ticket47988_5 PASSED 
tickets/ticket47988_test.py::test_ticket47988_6 PASSED 
tickets/ticket48005_test.py::test_ticket48005_setup PASSED 
tickets/ticket48005_test.py::test_ticket48005_memberof PASSED 
tickets/ticket48005_test.py::test_ticket48005_automember PASSED 
tickets/ticket48005_test.py::test_ticket48005_syntaxvalidate PASSED 
tickets/ticket48005_test.py::test_ticket48005_usn PASSED 
tickets/ticket48005_test.py::test_ticket48005_schemareload PASSED 
tickets/ticket48013_test.py::test_ticket48013 PASSED 
tickets/ticket48026_test.py::test_ticket48026 PASSED 
tickets/ticket48109_test.py::test_ticket48109 PASSED 
tickets/ticket48170_test.py::test_ticket48170 PASSED 
tickets/ticket48194_test.py::test_init PASSED 
tickets/ticket48194_test.py::test_run_0 PASSED 
tickets/ticket48194_test.py::test_run_1 PASSED 
tickets/ticket48194_test.py::test_run_2 PASSED 
tickets/ticket48194_test.py::test_run_3 PASSED 
tickets/ticket48194_test.py::test_run_4 PASSED 
tickets/ticket48194_test.py::test_run_5 PASSED 
tickets/ticket48194_test.py::test_run_6 PASSED 
tickets/ticket48194_test.py::test_run_7 PASSED 
tickets/ticket48194_test.py::test_run_8 PASSED 
tickets/ticket48194_test.py::test_run_9 PASSED 
tickets/ticket48194_test.py::test_run_10 PASSED 
tickets/ticket48194_test.py::test_run_11 PASSED 
tickets/ticket48212_test.py::test_ticket48212 PASSED 
tickets/ticket48214_test.py::test_ticket48214_run PASSED 
tickets/ticket48226_test.py::test_ticket48226_set_purgedelay PASSED 
tickets/ticket48226_test.py::test_ticket48226_1 PASSED 
tickets/ticket48228_test.py::test_ticket48228_test_global_policy PASSED 
tickets/ticket48228_test.py::test_ticket48228_test_subtree_policy PASSED 
tickets/ticket48233_test.py::test_ticket48233 PASSED 
tickets/ticket48234_test.py::test_ticket48234 PASSED 
tickets/ticket48252_test.py::test_ticket48252_setup PASSED 
tickets/ticket48252_test.py::test_ticket48252_run_0 PASSED 
tickets/ticket48252_test.py::test_ticket48252_run_1 PASSED 
tickets/ticket48265_test.py::test_ticket48265_test PASSED 
tickets/ticket48266_test.py::test_ticket48266_fractional PASSED 
tickets/ticket48266_test.py::test_ticket48266_check_repl_desc PASSED 
tickets/ticket48266_test.py::test_ticket48266_count_csn_evaluation PASSED 
tickets/ticket48270_test.py::test_ticket48270_init PASSED 
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_indexed_cis PASSED 
tickets/ticket48270_test.py::test_ticket48270_homeDirectory_mixed_value PASSED 
tickets/ticket48270_test.py::test_ticket48270_extensible_search PASSED 
tickets/ticket48272_test.py::test_ticket48272 PASSED 
tickets/ticket48294_test.py::test_48294_init PASSED 
tickets/ticket48294_test.py::test_48294_run_0 PASSED 
tickets/ticket48294_test.py::test_48294_run_1 PASSED 
tickets/ticket48294_test.py::test_48294_run_2 PASSED 
tickets/ticket48295_test.py::test_48295_init PASSED 
tickets/ticket48295_test.py::test_48295_run PASSED 
tickets/ticket48312_test.py::test_ticket48312 PASSED 
tickets/ticket48325_test.py::test_ticket48325 PASSED 
tickets/ticket48342_test.py::test_ticket4026 PASSED 
tickets/ticket48354_test.py::test_ticket48354 PASSED 
tickets/ticket48362_test.py::test_ticket48362 PASSED 
tickets/ticket48366_test.py::test_ticket48366_init PASSED 
tickets/ticket48366_test.py::test_ticket48366_search_user PASSED 
tickets/ticket48366_test.py::test_ticket48366_search_dm PASSED 
tickets/ticket48370_test.py::test_ticket48370 PASSED 
tickets/ticket48383_test.py::test_ticket48383 PASSED 
tickets/ticket48497_test.py::test_ticket48497_init PASSED 
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_mixed_value PASSED 
tickets/ticket48497_test.py::test_ticket48497_extensible_search PASSED 
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_cfg PASSED 
tickets/ticket48497_test.py::test_ticket48497_homeDirectory_index_run PASSED 
tickets/ticket48637_test.py::test_ticket48637 PASSED 
tickets/ticket48665_test.py::test_ticket48665 PASSED 
tickets/ticket48745_test.py::test_ticket48745_init PASSED 
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_indexed_cis PASSED 
tickets/ticket48745_test.py::test_ticket48745_homeDirectory_mixed_value PASSED 
tickets/ticket48745_test.py::test_ticket48745_extensible_search_after_index 
PASSED tickets/ticket48746_test.py::test_ticket48746_init PASSED 
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_cis PASSED 
tickets/ticket48746_test.py::test_ticket48746_homeDirectory_mixed_value PASSED 
tickets/ticket48746_test.py::test_ticket48746_extensible_search_after_index 
PASSED tickets/ticket48746_test.py::test_ticket48746_homeDirectory_indexed_ces 
PASSED tickets/ticket48755_test.py::test_ticket48755 PASSED 
tickets/ticket48759_test.py::test_ticket48759 PASSED 
tickets/ticket48784_test.py::test_ticket48784 PASSED 
tickets/ticket48798_test.py::test_ticket48798 PASSED 
tickets/ticket48799_test.py::test_ticket48799 PASSED 
tickets/ticket48808_test.py::test_ticket48808 PASSED 
tickets/ticket48844_test.py::test_ticket48844_init PASSED 
tickets/ticket48844_test.py::test_ticket48844_bitwise_on PASSED 
tickets/ticket48844_test.py::test_ticket48844_bitwise_off PASSED 
tickets/ticket48891_test.py::test_ticket48891_setup PASSED 
tickets/ticket48893_test.py::test_ticket48893 PASSED 
tickets/ticket48896_test.py::test_ticket48896 PASSED 
tickets/ticket48906_test.py::test_ticket48906_setup PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_default PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_ldap_update PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_edit_update PASSED 
tickets/ticket48906_test.py::test_ticket48906_dblock_robust PASSED 
tickets/ticket48916_test.py::test_ticket48916 PASSED 
tickets/ticket48956_test.py::test_ticket48956 PASSED 
tickets/ticket48961_test.py::test_ticket48961_storagescheme PASSED 
tickets/ticket48961_test.py::test_ticket48961_deleteall PASSED 
tickets/ticket548_test.py::test_ticket548_test_with_no_policy PASSED 
tickets/ticket548_test.py::test_ticket548_test_global_policy PASSED 
tickets/ticket548_test.py::test_ticket548_test_subtree_policy PASSED 
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_init 
PASSED 
suites/acct_usability_plugin/acct_usability_test.py::test_acct_usability_ 
PASSED suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_init PASSED 
suites/acctpolicy_plugin/acctpolicy_test.py::test_acctpolicy_ PASSED 
suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[lang-ja] PASSED 
suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[binary] PASSED 
suites/acl/acl_test.py::test_aci_attr_subtype_targetattr[phonetic] PASSED 
suites/acl/acl_test.py::test_mode_default_add_deny PASSED 
suites/acl/acl_test.py::test_mode_default_delete_deny PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[0-cn=staged 
user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[1-cn=staged 
user,dc=example,dc=com-cn=accounts,dc=example,dc=com-False] PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[2-cn=staged 
user,dc=example,dc=com-cn=bad*,dc=example,dc=com-True] PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[3-cn=st*,dc=example,dc=com-cn=accounts,dc=example,dc=com-False]
 PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[4-cn=bad*,dc=example,dc=com-cn=accounts,dc=example,dc=com-True]
 PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[5-cn=st*,dc=example,dc=com-cn=ac*,dc=example,dc=com-False]
 PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[6-None-cn=ac*,dc=example,dc=com-False]
 PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod[7-cn=st*,dc=example,dc=com-None-False]
 PASSED suites/acl/acl_test.py::test_moddn_staging_prod[8-None-None-False] 
PASSED suites/acl/acl_test.py::test_moddn_staging_prod_9 PASSED 
suites/acl/acl_test.py::test_moddn_prod_staging PASSED 
suites/acl/acl_test.py::test_check_repl_M2_to_M1 PASSED 
suites/acl/acl_test.py::test_moddn_staging_prod_except PASSED 
suites/acl/acl_test.py::test_mode_default_ger_no_moddn PASSED 
suites/acl/acl_test.py::test_mode_default_ger_with_moddn PASSED 
suites/acl/acl_test.py::test_mode_switch_default_to_legacy PASSED 
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn1 PASSED 
suites/acl/acl_test.py::test_mode_legacy_ger_no_moddn2 PASSED 
suites/acl/acl_test.py::test_mode_legacy_ger_with_moddn PASSED 
suites/acl/acl_test.py::test_rdn_write_get_ger PASSED 
suites/acl/acl_test.py::test_rdn_write_modrdn_anonymous PASSED 
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_init PASSED 
suites/attr_encryption/attr_encrypt_test.py::test_attr_encrypt_ PASSED 
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness_init
 PASSED 
suites/attr_uniqueness_plugin/attr_uniqueness_test.py::test_attr_uniqueness 
PASSED suites/automember_plugin/automember_test.py::test_automember_init PASSED 
suites/automember_plugin/automember_test.py::test_automember_ PASSED 
suites/basic/basic_test.py::test_basic_ops PASSED 
suites/basic/basic_test.py::test_basic_import_export PASSED 
suites/basic/basic_test.py::test_basic_backup PASSED 
suites/basic/basic_test.py::test_basic_acl PASSED 
suites/basic/basic_test.py::test_basic_searches PASSED 
suites/basic/basic_test.py::test_basic_referrals PASSED 
suites/basic/basic_test.py::test_basic_systemctl PASSED 
suites/basic/basic_test.py::test_basic_ldapagent PASSED 
suites/basic/basic_test.py::test_basic_dse PASSED 
suites/basic/basic_test.py::test_def_rootdse_attr[namingContexts] PASSED 
suites/basic/basic_test.py::test_def_rootdse_attr[supportedLDAPVersion] PASSED 
suites/basic/basic_test.py::test_def_rootdse_attr[supportedControl] PASSED 
suites/basic/basic_test.py::test_def_rootdse_attr[supportedExtension] PASSED 
suites/basic/basic_test.py::test_def_rootdse_attr[supportedSASLMechanisms] 
PASSED suites/basic/basic_test.py::test_def_rootdse_attr[vendorName] PASSED 
suites/basic/basic_test.py::test_def_rootdse_attr[vendorVersion] PASSED 
suites/basic/basic_test.py::test_mod_def_rootdse_attr[namingContexts] PASSED 
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedLDAPVersion] 
PASSED suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedControl] 
PASSED 
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedExtension] 
PASSED 
suites/basic/basic_test.py::test_mod_def_rootdse_attr[supportedSASLMechanisms] 
PASSED suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorName] PASSED 
suites/basic/basic_test.py::test_mod_def_rootdse_attr[vendorVersion] PASSED 
suites/betxns/betxn_test.py::test_betxn_init PASSED 
suites/betxns/betxn_test.py::test_betxt_7bit PASSED 
suites/betxns/betxn_test.py::test_betxn_attr_uniqueness PASSED 
suites/betxns/betxn_test.py::test_betxn_memberof PASSED 
suites/chaining_plugin/chaining_test.py::test_chaining_init PASSED 
suites/chaining_plugin/chaining_test.py::test_chaining_ PASSED 
suites/clu/clu_test.py::test_clu_init PASSED 
suites/clu/clu_test.py::test_clu_pwdhash PASSED 
suites/clu/db2ldif_test.py::test_db2ldif_init PASSED 
suites/collation_plugin/collatation_test.py::test_collatation_init PASSED 
suites/collation_plugin/collatation_test.py::test_collatation_ PASSED 
suites/config/config_test.py::test_maxbersize_repl PASSED 
suites/config/config_test.py::test_config_listen_backport_size PASSED 
suites/config/config_test.py::test_config_deadlock_policy PASSED 
suites/cos_plugin/cos_test.py::test_cos_init PASSED 
suites/cos_plugin/cos_test.py::test_cos_ PASSED 
suites/deref_plugin/deref_test.py::test_deref_init PASSED 
suites/deref_plugin/deref_test.py::test_deref_ PASSED 
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_init PASSED 
suites/disk_monitoring/disk_monitor_test.py::test_disk_monitor_ PASSED 
suites/distrib_plugin/distrib_test.py::test_distrib_init PASSED 
suites/distrib_plugin/distrib_test.py::test_distrib_ PASSED 
suites/dna_plugin/dna_test.py::test_dna_init PASSED 
suites/dna_plugin/dna_test.py::test_dna_ PASSED 
suites/ds_logs/ds_logs_test.py::test_ds_logs_init PASSED 
suites/ds_logs/ds_logs_test.py::test_ds_logs_ PASSED 
suites/dynamic-plugins/test_dynamic_plugins.py::test_dynamic_plugins PASSED 
suites/filter/filter_test.py::test_filter_init PASSED 
suites/filter/filter_test.py::test_filter_escaped PASSED 
suites/filter/filter_test.py::test_filter_search_original_attrs PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_supported_features PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-False-oper_attr_list0-objectClass]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[-True-oper_attr_list1-objectClass]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-False-oper_attr_list2-objectClass]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[ou=people,dc=example,dc=com-True-oper_attr_list3-objectClass]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-False-oper_attr_list4-objectClass]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[uid=all_attrs_test,ou=people,dc=example,dc=com-True-oper_attr_list5-objectClass]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-*]
 PASSED 
suites/filter/rfc3673_all_oper_attrs_test.py::test_search_basic[cn=config-False-oper_attr_list6-objectClass]
 PASSED suites/get_effective_rights/ger_test.py::test_ger_init PASSED 
suites/get_effective_rights/ger_test.py::test_ger_ PASSED 
suites/gssapi_repl/gssapi_repl_test.py::test_gssapi_repl PASSED 
suites/ldapi/ldapi_test.py::test_ldapi_init PASSED 
suites/ldapi/ldapi_test.py::test_ldapi_ PASSED 
suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_init PASSED 
suites/linkedattrs_plugin/linked_attrs_test.py::test_linked_attrs_ PASSED 
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_init PASSED 
suites/mapping_tree/mapping_tree_test.py::test_mapping_tree_ PASSED 
suites/memberof_plugin/memberof_test.py::test_memberof_auto_add_oc PASSED 
suites/memory_leaks/range_search_test.py::test_range_search_init PASSED 
suites/memory_leaks/range_search_test.py::test_range_search PASSED 
suites/monitor/monitor_test.py::test_monitor_init PASSED 
suites/monitor/monitor_test.py::test_monitor_ PASSED 
suites/paged_results/paged_results_test.py::test_search_success[6-5] PASSED 
suites/paged_results/paged_results_test.py::test_search_success[5-5] PASSED 
suites/paged_results/paged_results_test.py::test_search_success[5-25] PASSED 
suites/paged_results/paged_results_test.py::test_search_limits_fail[50-200-cn=config,cn=ldbm
 
database,cn=plugins,cn=config-nsslapd-idlistscanlimit-100-UNWILLING_TO_PERFORM] 
PASSED 
suites/paged_results/paged_results_test.py::test_search_limits_fail[5-15-cn=config-nsslapd-timelimit-20-UNAVAILABLE_CRITICAL_EXTENSION]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-sizelimit-20-SIZELIMIT_EXCEEDED]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_limits_fail[21-50-cn=config-nsslapd-pagedsizelimit-5-SIZELIMIT_EXCEEDED]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_limits_fail[5-50-cn=config,cn=ldbm
 database,cn=plugins,cn=config-nsslapd-lookthroughlimit-20-ADMINLIMIT_EXCEEDED] 
PASSED suites/paged_results/paged_results_test.py::test_search_sort_success 
PASSED suites/paged_results/paged_results_test.py::test_search_abandon PASSED 
suites/paged_results/paged_results_test.py::test_search_with_timelimit PASSED 
suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[dns = 
"localhost.localdomain"] PASSED 
suites/paged_results/paged_results_test.py::test_search_dns_ip_aci[ip = "::1" 
or ip = "127.0.0.1"] PASSED 
suites/paged_results/paged_results_test.py::test_search_multiple_paging PASSED 
suites/paged_results/paged_results_test.py::test_search_invalid_cookie[1000] 
PASSED 
suites/paged_results/paged_results_test.py::test_search_invalid_cookie[-1] 
PASSED 
suites/paged_results/paged_results_test.py::test_search_abandon_with_zero_size 
PASSED 
suites/paged_results/paged_results_test.py::test_search_pagedsizelimit_success 
PASSED 
suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[5-15-PASS]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_nspagedsizelimit[15-5-SIZELIMIT_EXCEEDED]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_paged_limits[conf_attr_values1-PASS]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values0-ADMINLIMIT_EXCEEDED]
 PASSED 
suites/paged_results/paged_results_test.py::test_search_paged_user_limits[conf_attr_values1-PASS]
 PASSED suites/paged_results/paged_results_test.py::test_ger_basic PASSED 
suites/paged_results/paged_results_test.py::test_multi_suffix_search PASSED 
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[None]
 PASSED 
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[-1]
 PASSED 
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_success[1000]
 PASSED 
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[0]
 PASSED 
suites/paged_results/paged_results_test.py::test_maxsimplepaged_per_conn_failure[1]
 PASSED suites/pam_passthru_plugin/pam_test.py::test_pam_init PASSED 
suites/pam_passthru_plugin/pam_test.py::test_pam_ PASSED 
suites/passthru_plugin/passthru_test.py::test_passthru_init PASSED 
suites/passthru_plugin/passthru_test.py::test_passthru_ PASSED 
suites/password/password_test.py::test_password_init PASSED 
suites/password/password_test.py::test_password_delete_specific_password PASSED 
suites/password/pwdAdmin_test.py::test_pwdAdmin_init PASSED 
suites/password/pwdAdmin_test.py::test_pwdAdmin PASSED 
suites/password/pwdAdmin_test.py::test_pwdAdmin_config_validation PASSED 
suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-off-UNWILLING_TO_PERFORM]
 PASSED 
suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-off-UNWILLING_TO_PERFORM]
 PASSED 
suites/password/pwdPolicy_attribute_test.py::test_change_pwd[off-on-None] 
PASSED suites/password/pwdPolicy_attribute_test.py::test_change_pwd[on-on-None] 
PASSED suites/password/pwdPolicy_attribute_test.py::test_pwd_min_age PASSED 
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-off]
 PASSED 
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[on-off]
 PASSED 
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_no_restrictions[off-on]
 PASSED 
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn=config]
 PASSED 
suites/password/pwdPolicy_inherit_global_test.py::test_entry_has_restrictions[cn="cn=nsPwPolicyEntry,ou=People,dc=example,dc=com",cn=nsPwPolicyContainer,ou=People,dc=example,dc=com]
 PASSED suites/password/pwdPolicy_syntax_test.py::test_pwdPolicy_syntax PASSED 
suites/password/pwdPolicy_warning_test.py::test_different_values[ ] PASSED 
suites/password/pwdPolicy_warning_test.py::test_different_values[junk123] 
PASSED suites/password/pwdPolicy_warning_test.py::test_different_values[on] 
PASSED suites/password/pwdPolicy_warning_test.py::test_different_values[off] 
PASSED suites/password/pwdPolicy_warning_test.py::test_expiry_time PASSED 
suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordSendExpiringTime-off]
 PASSED 
suites/password/pwdPolicy_warning_test.py::test_password_warning[passwordWarning-3600]
 PASSED 
suites/password/pwdPolicy_warning_test.py::test_with_different_password_states 
PASSED suites/password/pwdPolicy_warning_test.py::test_default_behavior PASSED 
suites/password/pwdPolicy_warning_test.py::test_with_local_policy PASSED 
suites/password/pwd_algo_test.py::test_pwd_algo_test PASSED 
suites/password/pwp_history_test.py::test_pwp_history_test PASSED 
suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_init 
PASSED suites/posix_winsync_plugin/posix_winsync_test.py::test_posix_winsync_ 
PASSED suites/psearch/psearch_test.py::test_psearch_init PASSED 
suites/psearch/psearch_test.py::test_psearch_ PASSED 
suites/referint_plugin/referint_test.py::test_referint_init PASSED 
suites/referint_plugin/referint_test.py::test_referint_ PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_init PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_clean PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_restart PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_clean_force PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_abort PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_restart PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_abort_certify PASSED 
suites/replication/cleanallruv_test.py::test_cleanallruv_stress_clean PASSED 
suites/replication/wait_for_async_feature_test.py::test_not_int_value PASSED 
suites/replication/wait_for_async_feature_test.py::test_multi_value PASSED 
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr0]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr1]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr2]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_value_check[waitfor_async_attr3]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr0]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr1]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr2]
 PASSED 
suites/replication/wait_for_async_feature_test.py::test_behavior_with_value[waitfor_async_attr3]
 PASSED suites/replsync_plugin/repl_sync_test.py::test_repl_sync_init PASSED 
suites/replsync_plugin/repl_sync_test.py::test_repl_sync_ PASSED 
suites/resource_limits/res_limits_test.py::test_res_limits_init PASSED 
suites/resource_limits/res_limits_test.py::test_res_limits_ PASSED 
suites/retrocl_plugin/retrocl_test.py::test_retrocl_init PASSED 
suites/retrocl_plugin/retrocl_test.py::test_retrocl_ PASSED 
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_init PASSED 
suites/reverpwd_plugin/reverpwd_test.py::test_reverpwd_ PASSED 
suites/roles_plugin/roles_test.py::test_roles_init PASSED 
suites/roles_plugin/roles_test.py::test_roles_ PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_init PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_specific_time 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_day_of_week 
PASSED suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_ip 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_denied_host 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_ip 
PASSED 
suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_access_allowed_host 
PASSED suites/rootdn_plugin/rootdn_plugin_test.py::test_rootdn_config_validate 
PASSED suites/sasl/sasl_test.py::test_sasl_init PASSED 
suites/sasl/sasl_test.py::test_sasl_ PASSED 
suites/schema/test_schema.py::test_schema_comparewithfiles PASSED 
suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_init 
PASSED suites/schema_reload_plugin/schema_reload_test.py::test_schema_reload_ 
PASSED suites/snmp/snmp_test.py::test_snmp_init PASSED 
suites/snmp/snmp_test.py::test_snmp_ PASSED 
suites/ssl/ssl_test.py::test_ssl_init PASSED suites/ssl/ssl_test.py::test_ssl_ 
PASSED suites/syntax_plugin/syntax_test.py::test_syntax_init PASSED 
suites/syntax_plugin/syntax_test.py::test_syntax_ PASSED 
suites/usn_plugin/usn_test.py::test_usn_init PASSED 
suites/usn_plugin/usn_test.py::test_usn_ PASSED 
suites/views_plugin/views_test.py::test_views_init PASSED 
suites/views_plugin/views_test.py::test_views_ PASSED 
suites/vlv/vlv_test.py::test_vlv_init PASSED suites/vlv/vlv_test.py::test_vlv_ 
PASSED suites/whoami_plugin/whoami_test.py::test_whoami_init PASSED 
suites/whoami_plugin/whoami_test.py::test_whoami_ PASSED 
=================================== FAILURES 
=================================== _____________________________ 
test_ticket47653_add _____________________________ topology = 
<tickets.ticket47653MMR_test.TopologyMaster1Master2 object at 0x7f2901017f10> 
def test_ticket47653_add(topology): ''' This test ADD an entry on MASTER1 where 
47653 is fixed. Then it checks that entry is replicated on MASTER2 (even if on 
MASTER2 47653 is NOT fixed). Then update on MASTER2 and check the update on 
MASTER1 It checks that, bound as bind_entry, - we can not ADD an entry without 
the proper SELFDN aci. - with the proper ACI we can not ADD with 'member' 
attribute - with the proper ACI and 'member' it succeeds to ADD ''' 
topology.master1.log.info("\n\n######################### ADD 
######################\n") # bind as bind_entry topology.master1.log.info("Bind 
as %s" % BIND_DN) topology.master1.simple_bind_s(BIND_DN, BIND_PW) # Prepare 
the entry with multivalued members entry_with_members = Entry(ENTRY_DN) 
entry_with_members.setValues('objectclass', 'top', 'person', 'OCticket47653') 
entry_with_members.setValues('sn', ENTRY_NAME) 
entry_with_members.setValues('cn', ENTRY_NAME) 
entry_with_members.setValues('postalAddress', 'here') 
entry_with_members.setValues('postalCode', '1234') members = [] for cpt in 
range(MAX_OTHERS): name = "%s%d" % (OTHER_NAME, cpt) members.append("cn=%s,%s" 
% (name, SUFFIX)) members.append(BIND_DN) 
entry_with_members.setValues('member', members) # Prepare the entry with only 
one member value entry_with_member = Entry(ENTRY_DN) 
entry_with_member.setValues('objectclass', 'top', 'person', 'OCticket47653') 
entry_with_member.setValues('sn', ENTRY_NAME) entry_with_member.setValues('cn', 
ENTRY_NAME) entry_with_member.setValues('postalAddress', 'here') 
entry_with_member.setValues('postalCode', '1234') member = [] 
member.append(BIND_DN) entry_with_member.setValues('member', member) # entry to 
add WITH member being BIND_DN but WITHOUT the ACI -> ldap.INSUFFICIENT_ACCESS 
try: topology.master1.log.info("Try to add Add %s (aci is missing): %r" % 
(ENTRY_DN, entry_with_member)) topology.master1.add_s(entry_with_member) except 
Exception as e: topology.master1.log.info("Exception (expected): %s" % 
type(e).__name__) assert isinstance(e, ldap.INSUFFICIENT_ACCESS) # Ok Now add 
the proper ACI topology.master1.log.info("Bind as %s and add the ADD SELFDN 
aci" % DN_DM) topology.master1.simple_bind_s(DN_DM, PASSWORD) ACI_TARGET = 
"(target = \"ldap:///cn=*,%s\";)" % SUFFIX ACI_TARGETFILTER = "(targetfilter 
=\"(objectClass=%s)\")" % OC_NAME ACI_ALLOW = "(version 3.0; acl \"SelfDN 
add\"; allow (add)" ACI_SUBJECT = " userattr = \"member#selfDN\";)" ACI_BODY = 
ACI_TARGET + ACI_TARGETFILTER + ACI_ALLOW + ACI_SUBJECT mod = [(ldap.MOD_ADD, 
'aci', ACI_BODY)] topology.master1.modify_s(SUFFIX, mod) time.sleep(1) # bind 
as bind_entry topology.master1.log.info("Bind as %s" % BIND_DN) 
topology.master1.simple_bind_s(BIND_DN, BIND_PW) # entry to add WITHOUT member 
and WITH the ACI -> ldap.INSUFFICIENT_ACCESS try: 
topology.master1.log.info("Try to add Add %s (member is missing)" % ENTRY_DN) 
topology.master1.add_s(Entry((ENTRY_DN, { 'objectclass': ENTRY_OC.split(), 
'sn': ENTRY_NAME, 'cn': ENTRY_NAME, 'postalAddress': 'here', 'postalCode': 
'1234'}))) except Exception as e: topology.master1.log.info("Exception 
(expected): %s" % type(e).__name__) assert isinstance(e, 
ldap.INSUFFICIENT_ACCESS) # entry to add WITH memberS and WITH the ACI -> 
ldap.INSUFFICIENT_ACCESS # member should contain only one value try: 
topology.master1.log.info("Try to add Add %s (with several member values)" % 
ENTRY_DN) topology.master1.add_s(entry_with_members) except Exception as e: 
topology.master1.log.info("Exception (expected): %s" % type(e).__name__) assert 
isinstance(e, ldap.INSUFFICIENT_ACCESS) topology.master1.log.info("Try to add 
Add %s should be successful" % ENTRY_DN) try: 
topology.master1.add_s(entry_with_member) except ldap.LDAPError as e: 
topology.master1.log.info("Failed to add entry, error: " + e.message['desc']) > 
assert False E assert False tickets/ticket47653MMR_test.py:305: AssertionError 
----------------------------- Captured stderr call 
----------------------------- INFO:lib389: ######################### ADD 
###################### INFO:lib389:Bind as cn=bind_entry, dc=example,dc=com 
INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com (aci is missing): 
dn: cn=test_entry, dc=example,dc=com cn: test_entry member: cn=bind_entry, 
dc=example,dc=com objectclass: top objectclass: person objectclass: 
OCticket47653 postalAddress: here postalCode: 1234 sn: test_entry 
INFO:lib389:Exception (expected): INSUFFICIENT_ACCESS INFO:lib389:Bind as 
cn=Directory Manager and add the ADD SELFDN aci INFO:lib389:Bind as 
cn=bind_entry, dc=example,dc=com INFO:lib389:Try to add Add cn=test_entry, 
dc=example,dc=com (member is missing) INFO:lib389:Exception (expected): 
INSUFFICIENT_ACCESS INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com 
(with several member values) INFO:lib389:Exception (expected): 
INSUFFICIENT_ACCESS INFO:lib389:Try to add Add cn=test_entry, dc=example,dc=com 
should be successful INFO:lib389:Failed to add entry, error: Insufficient 
access ___________________________ test_ticket47653_modify 
____________________________ topology = 
<tickets.ticket47653MMR_test.TopologyMaster1Master2 object at 0x7f2901017f10> 
def test_ticket47653_modify(topology): ''' This test MOD an entry on MASTER1 
where 47653 is fixed. Then it checks that update is replicated on MASTER2 (even 
if on MASTER2 47653 is NOT fixed). Then update on MASTER2 (bound as BIND_DN). 
This update may fail whether or not 47653 is fixed on MASTER2 It checks that, 
bound as bind_entry, - we can not modify an entry without the proper SELFDN 
aci. - adding the ACI, we can modify the entry ''' # bind as bind_entry 
topology.master1.log.info("Bind as %s" % BIND_DN) 
topology.master1.simple_bind_s(BIND_DN, BIND_PW) 
topology.master1.log.info("\n\n######################### MODIFY 
######################\n") # entry to modify WITH member being BIND_DN but 
WITHOUT the ACI -> ldap.INSUFFICIENT_ACCESS try: topology.master1.log.info("Try 
to modify %s (aci is missing)" % ENTRY_DN) mod = [(ldap.MOD_REPLACE, 
'postalCode', '9876')] topology.master1.modify_s(ENTRY_DN, mod) except 
Exception as e: topology.master1.log.info("Exception (expected): %s" % 
type(e).__name__) assert isinstance(e, ldap.INSUFFICIENT_ACCESS) # Ok Now add 
the proper ACI topology.master1.log.info("Bind as %s and add the WRITE SELFDN 
aci" % DN_DM) topology.master1.simple_bind_s(DN_DM, PASSWORD) ACI_TARGET = 
"(target = \"ldap:///cn=*,%s\";)" % SUFFIX ACI_TARGETATTR = "(targetattr = *)" 
ACI_TARGETFILTER = "(targetfilter =\"(objectClass=%s)\")" % OC_NAME ACI_ALLOW = 
"(version 3.0; acl \"SelfDN write\"; allow (write)" ACI_SUBJECT = " userattr = 
\"member#selfDN\";)" ACI_BODY = ACI_TARGET + ACI_TARGETATTR + ACI_TARGETFILTER 
+ ACI_ALLOW + ACI_SUBJECT mod = [(ldap.MOD_ADD, 'aci', ACI_BODY)] 
topology.master1.modify_s(SUFFIX, mod) time.sleep(1) # bind as bind_entry 
topology.master1.log.info("M1: Bind as %s" % BIND_DN) 
topology.master1.simple_bind_s(BIND_DN, BIND_PW) # modify the entry and checks 
the value topology.master1.log.info("M1: Try to modify %s. It should succeeds" 
% ENTRY_DN) mod = [(ldap.MOD_REPLACE, 'postalCode', '1928')] > 
topology.master1.modify_s(ENTRY_DN, mod) tickets/ticket47653MMR_test.py:387: _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
../../../lib389/lib389/__init__.py:159: in inner return f(*args, **kwargs) 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:402: in modify_s return 
self.result(msgid,all=1,timeout=self.timeout) 
../../../lib389/lib389/__init__.py:127: in inner objtype, data = f(*args, 
**kwargs) /usr/lib64/python2.7/site-packages/ldap/ldapobject.py:503: in result 
resp_type, resp_data, resp_msgid = self.result2(msgid,all,timeout) 
../../../lib389/lib389/__init__.py:159: in inner return f(*args, **kwargs) 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:507: in result2 
resp_type, resp_data, resp_msgid, resp_ctrls = self.result3(msgid,all,timeout) 
../../../lib389/lib389/__init__.py:159: in inner return f(*args, **kwargs) 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:514: in result3 
resp_ctrl_classes=resp_ctrl_classes ../../../lib389/lib389/__init__.py:159: in 
inner return f(*args, **kwargs) 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:521: in result4 
ldap_result = 
self._ldap_call(self._l.result4,msgid,all,timeout,add_ctrls,add_intermediates,add_extop)
 ../../../lib389/lib389/__init__.py:159: in inner return f(*args, **kwargs) _ _ 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
self = <lib389.DirSrv instance at 0x7f290115dd88> func = <built-in method 
result4 of LDAP object at 0x7f2901c1b4e0> args = (37, 1, -1, 0, 0, 0), kwargs = 
{}, diagnostic_message_success = None e = INSUFFICIENT_ACCESS({'desc': 
'Insufficient access'},) def _ldap_call(self,func,*args,**kwargs): """ Wrapper 
method mainly for serializing calls into OpenLDAP libs and trace logs """ 
self._ldap_object_lock.acquire() if __debug__: if self._trace_level>=1: 
self._trace_file.write('*** %s %s - %s\n%s\n' % ( repr(self), self._uri, 
'.'.join((self.__class__.__name__,func.__name__)), 
pprint.pformat((args,kwargs)) )) if self._trace_level>=9: 
traceback.print_stack(limit=self._trace_stack_limit,file=self._trace_file) 
diagnostic_message_success = None try: try: > result = func(*args,**kwargs) E 
INSUFFICIENT_ACCESS: {'desc': 'Insufficient access'} 
/usr/lib64/python2.7/site-packages/ldap/ldapobject.py:106: INSUFFICIENT_ACCESS 
----------------------------- Captured stderr call 
----------------------------- INFO:lib389:Bind as cn=bind_entry, 
dc=example,dc=com INFO:lib389: ######################### MODIFY 
###################### INFO:lib389:Try to modify cn=test_entry, 
dc=example,dc=com (aci is missing) INFO:lib389:Exception (expected): 
INSUFFICIENT_ACCESS INFO:lib389:Bind as cn=Directory Manager and add the WRITE 
SELFDN aci INFO:lib389:M1: Bind as cn=bind_entry, dc=example,dc=com 
INFO:lib389:M1: Try to modify cn=test_entry, dc=example,dc=com. It should 
succeeds =================== 2 failed, 522 passed in 9828.58 seconds 
====================
+ MSG=FAILED
+ RC=1
+ sudo /usr/sbin/sendmail mreyno...@redhat.com
+ exit 1
Build step 'Execute shell' marked build as failure
_______________________________________________
389-devel mailing list -- 389-devel@lists.fedoraproject.org
To unsubscribe send an email to 389-devel-le...@lists.fedoraproject.org

Reply via email to