mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

mkeyes
24.12.2007 f6e8831ab9bb333909fd08e6ce87c589ff1434ff
Refactored the sasl security functional tests to use dsconfig library functions and modifyAnAttribute.
14 files deleted
4 files modified
657 ■■■■ changed files
opends/tests/functional-tests/shared/data/security/sasl/admin_add_realm.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_add_realm2.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_CLEAR.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_SSHA.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_authzid_attr.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd.ldif 40 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd2.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd3.ldif 40 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd4.ldif 35 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd5.ldif 35 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd6.ldif 35 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_disable_sasl_anon.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_enable_sasl_anon.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_reset_authzid_attr.ldif 29 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/sasl/security_sasl_anon.xml 26 ●●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/sasl/security_sasl_cram-md5.xml 49 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/sasl/security_sasl_digest-md5.xml 83 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/testcases/security/sasl/security_sasl_plain.xml 53 ●●●● patch | view | raw | blame | history
opends/tests/functional-tests/shared/data/security/sasl/admin_add_realm.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_add_realm2.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_CLEAR.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_SSHA.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_authzid_attr.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd2.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd3.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd4.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd5.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_change_user_pwd6.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_disable_sasl_anon.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_enable_sasl_anon.ldif
File was deleted
opends/tests/functional-tests/shared/data/security/sasl/admin_reset_authzid_attr.ldif
File was deleted
opends/tests/functional-tests/testcases/security/sasl/security_sasl_anon.xml
@@ -59,6 +59,17 @@
               'Security: SASL ANON: Preamble - Admin Enabling ANONYMOUS SASL'
            </message>
            <call function="'modifySaslMech'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'handlerName'            : 'ANONYMOUS' ,
                    'propertyName'           : 'enabled' ,
                    'propertyValue'          : 'true' }
            </call>
            <!--
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
@@ -66,7 +77,7 @@
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_enable_sasl_anon.ldif' % logsRemoteDataDir }
            </call>
            -->
            <call function="'testCase_Postamble'"/>
            
          </sequence>
@@ -127,6 +138,17 @@
               'Security: SASL ANON: Postamble - Admin Disabling ANONYMOUS SASL'
            </message>
            <call function="'modifySaslMech'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'handlerName'            : 'ANONYMOUS' ,
                    'propertyName'           : 'enabled' ,
                    'propertyValue'          : 'false' }
            </call>
            <!--
            <call function="'modifyEntry'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
@@ -134,7 +156,7 @@
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_disable_sasl_anon.ldif' % logsRemoteDataDir }
            </call>
            -->
            <message>
               'Security: SASL ANON: Anonymous Bind After ANONYMOUS SASL Mechanism Disabled'
opends/tests/functional-tests/testcases/security/sasl/security_sasl_cram-md5.xml
@@ -61,24 +61,51 @@
               'Security: SASL CRAM-MD5: Preamble Step 1 - Admin Changing Pwd Storage to CLEAR'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyPwdPolicy'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_CLEAR.ldif' % logsRemoteDataDir }
                    'propertyName'           : 'Default Password Policy' ,
                    'attributeName'          : 'default-password-storage-scheme' ,
                    'attributeValue'         : 'CLEAR' }
            </call>
            <message>
               'Security: SASL CRAM-MD5: Preamble Step 2 - Admin Changing User Password'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyAnAttribute'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_user_pwd.ldif' % logsRemoteDataDir }
                    'DNToModify'             : 'uid=jrunner, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'frogleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=jcrawler, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'frogleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=jcrawler, ou=People, ou=Level One, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'frogleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'testCase_Postamble'"/>
@@ -147,7 +174,6 @@
                'extraParams'      : '-o mech=CRAM-MD5 -o "authid=dn:uid=jrunner,ou=People,o=SASL Tests,dc=example,dc=com" -w frogleg' }
            </call>
            <call function="'testCase_Postamble'"/>
            
          </sequence>
@@ -292,24 +318,29 @@
               'Security: SASL CRAM-MD5: Postamble Step 1 - Admin Changing Pwd Storage to SSHA'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyPwdPolicy'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_SSHA.ldif' % logsRemoteDataDir }
                    'propertyName'           : 'Default Password Policy' ,
                    'attributeName'          : 'default-password-storage-scheme' ,
                    'attributeValue'         : 'SSHA' }
            </call>
            <message>
               'Security: SASL CRAM-MD5: Postamble Step 2 - Admin Changing User Password'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyAnAttribute'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_user_pwd2.ldif' % logsRemoteDataDir }
                    'DNToModify'             : 'uid=jrunner, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'catleg' ,
                    'changetype'             : 'replace' }
            </call>
            <message>
opends/tests/functional-tests/testcases/security/sasl/security_sasl_digest-md5.xml
@@ -61,24 +61,51 @@
               'Security: SASL DIGEST-MD5: Preamble Step 1 - Admin Changing Pwd Storage to CLEAR'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyPwdPolicy'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_CLEAR.ldif' % logsRemoteDataDir }
                    'propertyName'           : 'Default Password Policy' ,
                    'attributeName'          : 'default-password-storage-scheme' ,
                    'attributeValue'         : 'CLEAR' }
            </call>
            <message>
               'Security: SASL DIGEST-MD5: Preamble Step 2 - Admin Changing User Password'
               'Security: SASL DIGEST-MD5: Preamble Step 2 - Admin Changing Password for three users'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyAnAttribute'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_user_pwd3.ldif' % logsRemoteDataDir }
                    'DNToModify'             : 'uid=jsprinter, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'frogleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=jwalleye, ou=People, o=SASL Realm Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'frogleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=jcarp, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'carpleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'testCase_Postamble'"/>
@@ -274,12 +301,14 @@
               'Security: SASL DIGEST-MD5: Admin Changing authzid attribute to sn'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyIdentityMapper'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_authzid_attr.ldif' % logsRemoteDataDir }
                    'mapperName'             : 'Exact Match' ,
                    'attributeName'          : 'match-attribute' ,
                    'attributeValue'         : 'sn' }
            </call>
            <call function="'testCase_Postamble'"/>
@@ -374,12 +403,14 @@
               'Security: SASL DIGEST-MD5: Admin Resetting authzid attribute to uid'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyIdentityMapper'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_reset_authzid_attr.ldif' % logsRemoteDataDir }
                    'mapperName'             : 'Exact Match' ,
                    'attributeName'          : 'match-attribute' ,
                    'attributeValue'         : 'uid' }
            </call>
            <call function="'testCase_Postamble'"/>
@@ -420,8 +451,6 @@
          </sequence>
        </testcase>
    <!--- Test Case : User Bind With DIGEST-MD5 SASL Mechanism-->
       <!---
            Place test-specific test information here.
@@ -542,12 +571,14 @@
               'Security: SASL DIGEST-MD5: Admin Creating Realm'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifySaslMech'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_add_realm.ldif' % logsRemoteDataDir }
                    'handlerName'            : 'DIGEST-MD5' ,
                    'propertyName'           : 'realm' ,
                    'propertyValue'          : 'o=SASL Realm Tests,dc=example,dc=com' }
            </call>
            <call function="'testCase_Postamble'"/>
@@ -1906,24 +1937,40 @@
               'Security: SASL DIGEST-MD5: Postamble Step 1 - Admin Changing Pwd Storage to SSHA'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyPwdPolicy'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_SSHA.ldif' % logsRemoteDataDir }
                    'propertyName'           : 'Default Password Policy' ,
                    'attributeName'          : 'default-password-storage-scheme' ,
                    'attributeValue'         : 'SSHA' }
            </call>
            <message>
               'Security: SASL DIGEST-MD5: Postamble Step 2 - Admin Changing User Password'
               'Security: SASL DIGEST-MD5: Postamble Step 2 - Admin Restting Password for two users'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyAnAttribute'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_user_pwd4.ldif' % logsRemoteDataDir }
                    'DNToModify'             : 'uid=jsprinter, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'catleg' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=jwalleye, ou=People, o=SASL Realm Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'catleg' ,
                    'changetype'             : 'replace' }
            </call>
            <message>
opends/tests/functional-tests/testcases/security/sasl/security_sasl_plain.xml
@@ -60,12 +60,26 @@
               'Security: SASL PLAIN: Preamble - Admin Changing User Password'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyAnAttribute'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_user_pwd5.ldif' % logsRemoteDataDir }
                    'DNToModify'             : 'uid=dmiller, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'mothergoose' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=mmiller, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'mothergoose' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'testCase_Postamble'"/>
@@ -294,13 +308,24 @@
               'Security: SASL PLAIN: Admin Creating Realm'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifySaslMech'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_add_realm2.ldif' % logsRemoteDataDir ,
                'expectedRC'       : 65 }
                    'handlerName'            : 'PLAIN' ,
                    'propertyName'           : 'realm' ,
                    'propertyValue'          : 'o=SASL Realm Tests,dc=example,dc=com' ,
                    'expectedRC'             : 1 }
            </call>
             <script>
                 returnString = STAXReason[0][1]
            </script>
            <call function="'checktestString'">
                    { 'returnString'       : returnString ,
                      'expectedString'     : 'not a recognized property' }
            </call>
            
            <call function="'testCase_Postamble'"/>
@@ -366,12 +391,26 @@
               'Security: SASL PLAIN: Postamble Step 1 - Admin Changing User Password'
            </message>
            <call function="'modifyEntry'">
            <call function="'modifyAnAttribute'">
              { 'dsInstanceHost'   : DIRECTORY_INSTANCE_HOST ,
                'dsInstancePort'   : DIRECTORY_INSTANCE_PORT ,
                'dsInstanceDn'     : DIRECTORY_INSTANCE_DN ,
                'dsInstancePswd'   : DIRECTORY_INSTANCE_PSWD ,
                'entryToBeModified'   : '%s/security/sasl/admin_change_user_pwd6.ldif' % logsRemoteDataDir }
                    'DNToModify'             : 'uid=dmiller, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'fathergoose' ,
                    'changetype'             : 'replace' }
            </call>
            <call function="'modifyAnAttribute'">
                  { 'dsInstanceHost'         : DIRECTORY_INSTANCE_HOST ,
                    'dsInstancePort'         : DIRECTORY_INSTANCE_PORT ,
                    'dsInstanceDn'           : DIRECTORY_INSTANCE_DN ,
                    'dsInstancePswd'         : DIRECTORY_INSTANCE_PSWD ,
                    'DNToModify'             : 'uid=mmiller, ou=People, o=SASL Tests, dc=example,dc=com' ,
                    'attributeName'          : 'userpassword' ,
                    'newAttributeValue'      : 'fathergoose' ,
                    'changetype'             : 'replace' }
            </call>
            <message>