samba-tool tests: add test for 'samba-tool user edit', using LDB_FLAG_FORCE_NO_BASE64...
authorBjörn Baumbach <bb@sernet.de>
Fri, 15 Mar 2019 11:59:09 +0000 (12:59 +0100)
committerAndrew Bartlett <abartlet@samba.org>
Thu, 4 Jul 2019 02:07:20 +0000 (02:07 +0000)
Test to edit a user: Change attributes with LDB_FLAG_FORCE_NO_BASE64_LDIF

Signed-off-by: Björn Baumbach <bb@samba.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/tests/samba_tool/user_edit.sh
selftest/knownfail.d/samba_tool.user_edit [new file with mode: 0644]

index 0535efedbdd4181ef64adc41051ec66bd5410b77..03fbd61ff5dc7776095677cef5dea0c1c1604f0e 100755 (executable)
@@ -129,6 +129,30 @@ get_attribute_base64_control() {
                -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD"
 }
 
+# Test edit user - change attributes with LDB_FLAG_FORCE_NO_BASE64_LDIF
+change_attribute_force_no_base64() {
+       # create editor.sh
+       # Expects that the original attribute is available as clear text,
+       # because the LDB_FLAG_FORCE_NO_BASE64_LDIF should be used here.
+       cat >$tmpeditor <<EOF
+#!/usr/bin/env bash
+user_ldif="\$1"
+
+sed -i -e 's/displayName: $display_name/displayName: $display_name_new/' \
+       \$user_ldif
+EOF
+
+       $PYTHON ${STpath}/source4/scripting/bin/samba-tool user edit \
+               sambatool1 --editor=$tmpeditor \
+               -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD"
+}
+
+get_changed_attribute_force_no_base64() {
+       $PYTHON ${STpath}/source4/scripting/bin/samba-tool user show \
+                sambatool1 --attributes=displayName \
+                -H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD"
+}
+
 delete_user() {
        $PYTHON ${STpath}/source4/scripting/bin/samba-tool \
                user delete sambatool1 \
@@ -146,6 +170,8 @@ testit "add_attribute_base64_control" add_attribute_base64_control || failed=`ex
 testit_grep "get_attribute_base64_control" "^displayName:: $display_name_con_b64" get_attribute_base64_control || failed=`expr $failed + 1`
 testit "change_attribute_base64_control" change_attribute_base64_control || failed=`expr $failed + 1`
 testit_grep "get_attribute_base64_control" "^displayName:: $display_name_b64" get_attribute_base64_control || failed=`expr $failed + 1`
+testit "change_attribute_force_no_base64" change_attribute_force_no_base64 || failed=`expr $failed + 1`
+testit_grep "get_changed_attribute_force_no_base64" "^displayName: $display_name_new" get_changed_attribute_force_no_base64 || failed=`expr $failed + 1`
 testit "delete_user" delete_user || failed=`expr $failed + 1`
 
 rm -f $tmpeditor
diff --git a/selftest/knownfail.d/samba_tool.user_edit b/selftest/knownfail.d/samba_tool.user_edit
new file mode 100644 (file)
index 0000000..5c5c9a6
--- /dev/null
@@ -0,0 +1 @@
+samba.tests.samba_tool.user_edit.change_attribute_force_no_base64