Add test for 'samba-tool user edit'
authorRowland Penny <rpenny@samba.org>
Tue, 4 Jul 2017 14:04:36 +0000 (15:04 +0100)
committerAlexander Bokovoy <ab@samba.org>
Wed, 5 Jul 2017 11:36:09 +0000 (13:36 +0200)
Signed-off-by: Rowland Penny <rpenny@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
python/samba/tests/samba_tool/edit.sh [new file with mode: 0755]

diff --git a/python/samba/tests/samba_tool/edit.sh b/python/samba/tests/samba_tool/edit.sh
new file mode 100755 (executable)
index 0000000..c1ecfde
--- /dev/null
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# Test for 'samba-tool user edit'
+
+if [ $# -lt 3 ]; then
+cat <<EOF
+Usage: edit.sh SERVER USERNAME PASSWORD
+EOF
+exit 1;
+fi
+
+SERVER="$1"
+USERNAME="$2"
+PASSWORD="$3"
+
+STpath=$(pwd)
+. $STpath/testprogs/blackbox/subunit.sh
+
+# create editor.sh
+# this has to be hard linked to /tmp or 'samba-tool user edit' cannot find it
+tmpeditor=$(mktemp --suffix .sh -p $STpath/bin samba-tool-editor-XXXXXXXX)
+
+cat >$tmpeditor <<-'EOF'
+#!/usr/bin/env bash
+user_ldif="$1"
+SED=$(which sed)
+$SED -i -e 's/userAccountControl: 512/userAccountControl: 514/' $user_ldif
+EOF
+
+chmod +x $tmpeditor
+
+failed=0
+
+# Create a test user
+subunit_start_test "Create_User"
+output=$(${STpath}/source4/scripting/bin/samba-tool user create sambatool1 --random-password \
+-H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD")
+status=$?
+if [ "x$status" = "x0" ]; then
+    subunit_pass_test "Create_User"
+else
+    echo "$output" | subunit_fail_test "Create_User"
+    failed=$((failed + 1))
+fi
+
+# Edit test user
+subunit_start_test "Edit_User"
+output=$(${STpath}/source4/scripting/bin/samba-tool user edit sambatool1 --editor=$tmpeditor \
+-H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD")
+status=$?
+if [ "x$status" = "x0" ]; then
+    subunit_pass_test "Edit_User"
+else
+    echo "$output" | subunit_fail_test "Edit_User"
+    failed=$((failed + 1))
+fi
+
+# Delete test user
+subunit_start_test "Delete_User"
+output=$(${STpath}/source4/scripting/bin/samba-tool user delete sambatool1 \
+-H "ldap://$SERVER" "-U$USERNAME" "--password=$PASSWORD")
+status=$?
+if [ "x$status" = "x0" ]; then
+    subunit_pass_test "Delete_User"
+else
+    echo "$output" | subunit_fail_test "Delete_User"
+    failed=$((failed + 1))
+fi
+
+rm -f $tmpeditor
+
+exit $failed