summaryrefslogtreecommitdiffstats
path: root/source4/dsdb/tests/python/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/tests/python/testdata')
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_account_locality_device-non-admin.expected31
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_account_locality_device.expected34
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_container_flags-non-admin.expected129
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_container_flags.expected134
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue-non-admin.expected127
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue.expected138
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_inapplicable-non-admin.expected31
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_inapplicable.expected34
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_member-non-admin.expected127
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_member.expected190
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_mixed-non-admin.expected128
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_mixed.expected143
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_mixed2-non-admin.expected128
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_mixed2.expected143
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_objectclass-non-admin.expected31
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_objectclass.expected35
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_objectclass2-non-admin.expected726
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_objectclass2.expected735
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_singlevalue-non-admin.expected727
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_singlevalue.expected740
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable-non-admin.expected127
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable.expected127
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_telephone-non-admin.expected727
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_telephone.expected752
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete-non-admin.expected727
-rw-r--r--source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete.expected736
-rw-r--r--source4/dsdb/tests/python/testdata/simplesort.expected8
-rw-r--r--source4/dsdb/tests/python/testdata/unicodesort.expected16
28 files changed, 7731 insertions, 0 deletions
diff --git a/source4/dsdb/tests/python/testdata/modify_order_account_locality_device-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_account_locality_device-non-admin.expected
new file mode 100644
index 0000000..572ed5e
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_account_locality_device-non-admin.expected
@@ -0,0 +1,31 @@
+modify_order_account_locality_device-non-admin
+initial attrs:
+ objectclass: 'account'
+ l: 'a'
+== result ===[ 6]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ objectclass replace ['device', 'top']
+ l delete a
+ owner add c
+----------------------------------
+ objectclass replace ['device', 'top']
+ owner add c
+ l delete a
+----------------------------------
+ l delete a
+ objectclass replace ['device', 'top']
+ owner add c
+----------------------------------
+ l delete a
+ owner add c
+ objectclass replace ['device', 'top']
+----------------------------------
+ owner add c
+ objectclass replace ['device', 'top']
+ l delete a
+----------------------------------
+ owner add c
+ l delete a
+ objectclass replace ['device', 'top']
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_account_locality_device.expected b/source4/dsdb/tests/python/testdata/modify_order_account_locality_device.expected
new file mode 100644
index 0000000..dc5e162
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_account_locality_device.expected
@@ -0,0 +1,34 @@
+modify_order_account_locality_device
+initial attrs:
+ objectclass: 'account'
+ l: 'a'
+== result ===[ 3]=======================
+ERR_CONSTRAINT_VIOLATION (19)
+-- operations ---------------------------
+ l delete a
+ owner add c
+ objectclass replace ['device', 'top']
+----------------------------------
+ owner add c
+ objectclass replace ['device', 'top']
+ l delete a
+----------------------------------
+ owner add c
+ l delete a
+ objectclass replace ['device', 'top']
+----------------------------------
+== result ===[ 3]=======================
+ERR_OBJECT_CLASS_VIOLATION (65)
+-- operations ---------------------------
+ objectclass replace ['device', 'top']
+ l delete a
+ owner add c
+----------------------------------
+ objectclass replace ['device', 'top']
+ owner add c
+ l delete a
+----------------------------------
+ l delete a
+ objectclass replace ['device', 'top']
+ owner add c
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_container_flags-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_container_flags-non-admin.expected
new file mode 100644
index 0000000..9a46588
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_container_flags-non-admin.expected
@@ -0,0 +1,129 @@
+modify_order_container_flags-non-admin
+initial attrs:
+ objectclass: 'container'
+== result ===[ 12]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ flags add 0x6
+ flags add 5
+ flags delete c
+ flags replace 101
+----------------------------------
+ flags add 0x6
+ flags replace 101
+ flags delete c
+ flags add 5
+----------------------------------
+ flags add 0x6
+ flags delete c
+ flags add 5
+ flags replace 101
+----------------------------------
+ flags add 0x6
+ flags delete c
+ flags replace 101
+ flags add 5
+----------------------------------
+ flags add 5
+ flags add 0x6
+ flags delete c
+ flags replace 101
+----------------------------------
+ flags add 5
+ flags delete c
+ flags add 0x6
+ flags replace 101
+----------------------------------
+ flags replace 101
+ flags add 0x6
+ flags delete c
+ flags add 5
+----------------------------------
+ flags replace 101
+ flags delete c
+ flags add 0x6
+ flags add 5
+----------------------------------
+ flags delete c
+ flags add 0x6
+ flags add 5
+ flags replace 101
+----------------------------------
+ flags delete c
+ flags add 0x6
+ flags replace 101
+ flags add 5
+----------------------------------
+ flags delete c
+ flags add 5
+ flags add 0x6
+ flags replace 101
+----------------------------------
+ flags delete c
+ flags replace 101
+ flags add 0x6
+ flags add 5
+----------------------------------
+== result ===[ 12]=======================
+ERR_INVALID_ATTRIBUTE_SYNTAX (21)
+-- operations ---------------------------
+ flags add 0x6
+ flags add 5
+ flags replace 101
+ flags delete c
+----------------------------------
+ flags add 0x6
+ flags replace 101
+ flags add 5
+ flags delete c
+----------------------------------
+ flags add 5
+ flags add 0x6
+ flags replace 101
+ flags delete c
+----------------------------------
+ flags add 5
+ flags replace 101
+ flags add 0x6
+ flags delete c
+----------------------------------
+ flags add 5
+ flags replace 101
+ flags delete c
+ flags add 0x6
+----------------------------------
+ flags add 5
+ flags delete c
+ flags replace 101
+ flags add 0x6
+----------------------------------
+ flags replace 101
+ flags add 0x6
+ flags add 5
+ flags delete c
+----------------------------------
+ flags replace 101
+ flags add 5
+ flags add 0x6
+ flags delete c
+----------------------------------
+ flags replace 101
+ flags add 5
+ flags delete c
+ flags add 0x6
+----------------------------------
+ flags replace 101
+ flags delete c
+ flags add 5
+ flags add 0x6
+----------------------------------
+ flags delete c
+ flags add 5
+ flags replace 101
+ flags add 0x6
+----------------------------------
+ flags delete c
+ flags replace 101
+ flags add 5
+ flags add 0x6
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_container_flags.expected b/source4/dsdb/tests/python/testdata/modify_order_container_flags.expected
new file mode 100644
index 0000000..eee3c52
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_container_flags.expected
@@ -0,0 +1,134 @@
+modify_order_container_flags
+initial attrs:
+ objectclass: 'container'
+== result ===[ 6]=======================
+ flags: [b'101']
+ objectClass: [b'container', b'top']
+-- operations ---------------------------
+ flags add 0x6
+ flags add 5
+ flags delete c
+ flags replace 101
+----------------------------------
+ flags add 0x6
+ flags delete c
+ flags add 5
+ flags replace 101
+----------------------------------
+ flags add 5
+ flags add 0x6
+ flags delete c
+ flags replace 101
+----------------------------------
+ flags add 5
+ flags delete c
+ flags add 0x6
+ flags replace 101
+----------------------------------
+ flags delete c
+ flags add 0x6
+ flags add 5
+ flags replace 101
+----------------------------------
+ flags delete c
+ flags add 5
+ flags add 0x6
+ flags replace 101
+----------------------------------
+== result ===[ 6]=======================
+ flags: [b'5']
+ objectClass: [b'container', b'top']
+-- operations ---------------------------
+ flags add 0x6
+ flags replace 101
+ flags delete c
+ flags add 5
+----------------------------------
+ flags add 0x6
+ flags delete c
+ flags replace 101
+ flags add 5
+----------------------------------
+ flags replace 101
+ flags add 0x6
+ flags delete c
+ flags add 5
+----------------------------------
+ flags replace 101
+ flags delete c
+ flags add 0x6
+ flags add 5
+----------------------------------
+ flags delete c
+ flags add 0x6
+ flags replace 101
+ flags add 5
+----------------------------------
+ flags delete c
+ flags replace 101
+ flags add 0x6
+ flags add 5
+----------------------------------
+== result ===[ 12]=======================
+ERR_INVALID_ATTRIBUTE_SYNTAX (21)
+-- operations ---------------------------
+ flags add 0x6
+ flags add 5
+ flags replace 101
+ flags delete c
+----------------------------------
+ flags add 0x6
+ flags replace 101
+ flags add 5
+ flags delete c
+----------------------------------
+ flags add 5
+ flags add 0x6
+ flags replace 101
+ flags delete c
+----------------------------------
+ flags add 5
+ flags replace 101
+ flags add 0x6
+ flags delete c
+----------------------------------
+ flags add 5
+ flags replace 101
+ flags delete c
+ flags add 0x6
+----------------------------------
+ flags add 5
+ flags delete c
+ flags replace 101
+ flags add 0x6
+----------------------------------
+ flags replace 101
+ flags add 0x6
+ flags add 5
+ flags delete c
+----------------------------------
+ flags replace 101
+ flags add 5
+ flags add 0x6
+ flags delete c
+----------------------------------
+ flags replace 101
+ flags add 5
+ flags delete c
+ flags add 0x6
+----------------------------------
+ flags replace 101
+ flags delete c
+ flags add 5
+ flags add 0x6
+----------------------------------
+ flags delete c
+ flags add 5
+ flags replace 101
+ flags add 0x6
+----------------------------------
+ flags delete c
+ flags replace 101
+ flags add 5
+ flags add 0x6
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue-non-admin.expected
new file mode 100644
index 0000000..c6f89c0
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue-non-admin.expected
@@ -0,0 +1,127 @@
+modify_order_container_flags_multivalue-non-admin
+initial attrs:
+ objectclass: 'container'
+ wWWHomePage: 'a'
+== result ===[ 24]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ flags add ['0', '1']
+ flags add 65355
+ flags delete 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags add ['0', '1']
+ flags add 65355
+ flags replace ['2', '101']
+ flags delete 65355
+----------------------------------
+ flags add ['0', '1']
+ flags delete 65355
+ flags add 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags add ['0', '1']
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add 65355
+----------------------------------
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags add 65355
+ flags delete 65355
+----------------------------------
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add 65355
+----------------------------------
+ flags add 65355
+ flags add ['0', '1']
+ flags delete 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags add 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags delete 65355
+----------------------------------
+ flags add 65355
+ flags delete 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+----------------------------------
+ flags add 65355
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+----------------------------------
+ flags add 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags delete 65355
+----------------------------------
+ flags add 65355
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add ['0', '1']
+----------------------------------
+ flags delete 65355
+ flags add ['0', '1']
+ flags add 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags delete 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags add 65355
+----------------------------------
+ flags delete 65355
+ flags add 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+----------------------------------
+ flags delete 65355
+ flags add 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+----------------------------------
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags add 65355
+----------------------------------
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add 65355
+ flags add ['0', '1']
+----------------------------------
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags add 65355
+ flags delete 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags delete 65355
+ flags add 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags add 65355
+ flags add ['0', '1']
+ flags delete 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags add 65355
+ flags delete 65355
+ flags add ['0', '1']
+----------------------------------
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add ['0', '1']
+ flags add 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add 65355
+ flags add ['0', '1']
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue.expected b/source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue.expected
new file mode 100644
index 0000000..99ee5a7
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_container_flags_multivalue.expected
@@ -0,0 +1,138 @@
+modify_order_container_flags_multivalue
+initial attrs:
+ objectclass: 'container'
+ wWWHomePage: 'a'
+== result ===[ 6]=======================
+ flags: [b'65355']
+ objectClass: [b'container', b'top']
+ wWWHomePage: [b'a']
+-- operations ---------------------------
+ flags add ['0', '1']
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add 65355
+----------------------------------
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add 65355
+----------------------------------
+ flags delete 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags add 65355
+----------------------------------
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags add 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags delete 65355
+ flags add 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add ['0', '1']
+ flags add 65355
+----------------------------------
+== result ===[ 6]=======================
+ERR_ATTRIBUTE_OR_VALUE_EXISTS (20)
+-- operations ---------------------------
+ flags add 65355
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+----------------------------------
+ flags add 65355
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add ['0', '1']
+----------------------------------
+ flags delete 65355
+ flags add 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+----------------------------------
+ flags delete 65355
+ flags replace ['2', '101']
+ flags add 65355
+ flags add ['0', '1']
+----------------------------------
+ flags replace ['2', '101']
+ flags add 65355
+ flags delete 65355
+ flags add ['0', '1']
+----------------------------------
+ flags replace ['2', '101']
+ flags delete 65355
+ flags add 65355
+ flags add ['0', '1']
+----------------------------------
+== result ===[ 6]=======================
+ERR_CONSTRAINT_VIOLATION (19)
+-- operations ---------------------------
+ flags add ['0', '1']
+ flags add 65355
+ flags delete 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags add ['0', '1']
+ flags delete 65355
+ flags add 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags add 65355
+ flags add ['0', '1']
+ flags delete 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags add 65355
+ flags delete 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+----------------------------------
+ flags delete 65355
+ flags add ['0', '1']
+ flags add 65355
+ flags replace ['2', '101']
+----------------------------------
+ flags delete 65355
+ flags add 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+----------------------------------
+== result ===[ 6]=======================
+ERR_NO_SUCH_ATTRIBUTE (16)
+-- operations ---------------------------
+ flags add ['0', '1']
+ flags add 65355
+ flags replace ['2', '101']
+ flags delete 65355
+----------------------------------
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags add 65355
+ flags delete 65355
+----------------------------------
+ flags add 65355
+ flags add ['0', '1']
+ flags replace ['2', '101']
+ flags delete 65355
+----------------------------------
+ flags add 65355
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags delete 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags add ['0', '1']
+ flags add 65355
+ flags delete 65355
+----------------------------------
+ flags replace ['2', '101']
+ flags add 65355
+ flags add ['0', '1']
+ flags delete 65355
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_inapplicable-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_inapplicable-non-admin.expected
new file mode 100644
index 0000000..0adb093
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_inapplicable-non-admin.expected
@@ -0,0 +1,31 @@
+modify_order_inapplicable-non-admin
+initial attrs:
+ objectclass: 'user'
+ givenName: 'a'
+== result ===[ 6]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ dhcpSites replace b
+ dhcpSites delete b
+ dhcpSites add c
+----------------------------------
+ dhcpSites replace b
+ dhcpSites add c
+ dhcpSites delete b
+----------------------------------
+ dhcpSites delete b
+ dhcpSites replace b
+ dhcpSites add c
+----------------------------------
+ dhcpSites delete b
+ dhcpSites add c
+ dhcpSites replace b
+----------------------------------
+ dhcpSites add c
+ dhcpSites replace b
+ dhcpSites delete b
+----------------------------------
+ dhcpSites add c
+ dhcpSites delete b
+ dhcpSites replace b
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_inapplicable.expected b/source4/dsdb/tests/python/testdata/modify_order_inapplicable.expected
new file mode 100644
index 0000000..f16ef8c
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_inapplicable.expected
@@ -0,0 +1,34 @@
+modify_order_inapplicable
+initial attrs:
+ objectclass: 'user'
+ givenName: 'a'
+== result ===[ 2]=======================
+ERR_NO_SUCH_ATTRIBUTE (16)
+-- operations ---------------------------
+ dhcpSites replace b
+ dhcpSites add c
+ dhcpSites delete b
+----------------------------------
+ dhcpSites add c
+ dhcpSites replace b
+ dhcpSites delete b
+----------------------------------
+== result ===[ 4]=======================
+ERR_OBJECT_CLASS_VIOLATION (65)
+-- operations ---------------------------
+ dhcpSites replace b
+ dhcpSites delete b
+ dhcpSites add c
+----------------------------------
+ dhcpSites delete b
+ dhcpSites replace b
+ dhcpSites add c
+----------------------------------
+ dhcpSites delete b
+ dhcpSites add c
+ dhcpSites replace b
+----------------------------------
+ dhcpSites add c
+ dhcpSites delete b
+ dhcpSites replace b
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_member-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_member-non-admin.expected
new file mode 100644
index 0000000..ea7d26b
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_member-non-admin.expected
@@ -0,0 +1,127 @@
+modify_order_member-non-admin
+initial attrs:
+ objectclass: 'group'
+ member: 'cn=modify_order_member_other_group,{base dn}'
+== result ===[ 24]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ member delete cn=ldaptest_modify_order_member-non-admin_0,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_0,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_0,cn=users,{base dn}
+----------------------------------
+ member delete cn=ldaptest_modify_order_member-non-admin_1,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_1,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_1,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member delete cn=ldaptest_modify_order_member-non-admin_2,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_2,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_2,cn=users,{base dn}
+----------------------------------
+ member delete cn=ldaptest_modify_order_member-non-admin_3,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_3,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_3,cn=users,{base dn}
+----------------------------------
+ member delete cn=ldaptest_modify_order_member-non-admin_4,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_4,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_4,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member delete cn=ldaptest_modify_order_member-non-admin_5,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_5,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_5,cn=users,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member-non-admin_6,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_6,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_6,cn=users,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member-non-admin_7,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_7,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_7,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member-non-admin_8,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_8,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_8,cn=users,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member-non-admin_9,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_9,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_9,cn=users,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member-non-admin_10,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_10,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_10,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member-non-admin_11,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_11,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_11,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_12,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_12,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_12,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_13,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_13,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_13,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_14,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_14,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_14,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_15,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_15,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_15,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_16,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_16,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_16,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member-non-admin_17,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_17,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_17,cn=users,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member-non-admin_18,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_18,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_18,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member-non-admin_19,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_19,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_19,cn=users,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member-non-admin_20,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_20,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_20,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member-non-admin_21,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_21,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_21,cn=users,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member-non-admin_22,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_22,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_22,cn=users,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member-non-admin_23,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member-non-admin_23,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member-non-admin_23,cn=users,{base dn}
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_member.expected b/source4/dsdb/tests/python/testdata/modify_order_member.expected
new file mode 100644
index 0000000..1882c34
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_member.expected
@@ -0,0 +1,190 @@
+modify_order_member
+initial attrs:
+ objectclass: 'group'
+ member: 'cn=modify_order_member_other_group,{base dn}'
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_0,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_0,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=ldaptest_modify_order_member_0,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_0,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member_0,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_12,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_12,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member_12,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_12,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_12,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_13,CN=Users,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_13,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member_13,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_13,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_13,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_14,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_14,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member_14,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_14,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_14,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_16,CN=Users,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_16,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member_16,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_16,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_16,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_19,CN=Users,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_19,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member add cn=ldaptest_modify_order_member_19,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_19,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member_19,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_2,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_2,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=ldaptest_modify_order_member_2,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member_2,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_2,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_22,CN=Users,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_22,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member add cn=ldaptest_modify_order_member_22,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member_22,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_22,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_3,CN=Users,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_3,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=ldaptest_modify_order_member_3,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member_3,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_3,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_5,CN=Users,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_5,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=ldaptest_modify_order_member_5,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_5,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member_5,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_6,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_6,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member replace cn=ldaptest_modify_order_member_6,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_6,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member_6,cn=users,{base dn}
+----------------------------------
+== result ===[ 1]=======================
+ member: [b'CN=ldaptest_modify_order_member_8,CN=Users,{base dn}', b'CN=modify_order_member_other_group,{base dn}']
+ memberOf: [b'CN=ldaptest_modify_order_member_8,CN=Users,{base dn}']
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member replace cn=ldaptest_modify_order_member_8,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member_8,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_8,cn=users,{base dn}
+----------------------------------
+== result ===[ 6]=======================
+ objectClass: [b'group', b'top']
+-- operations ---------------------------
+ member delete cn=ldaptest_modify_order_member_1,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_1,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_1,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member delete cn=ldaptest_modify_order_member_4,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_4,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_4,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member_7,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_7,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_7,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member_10,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_10,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_10,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member_18,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_18,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_18,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member_20,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_20,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_20,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+----------------------------------
+== result ===[ 6]=======================
+ERR_UNWILLING_TO_PERFORM (53)
+-- operations ---------------------------
+ member replace cn=ldaptest_modify_order_member_9,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member_9,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_9,cn=users,{base dn}
+----------------------------------
+ member replace cn=ldaptest_modify_order_member_11,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_11,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member_11,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member_15,cn=users,{base dn}
+ member add cn=ldaptest_modify_order_member_15,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_15,cn=users,{base dn}
+----------------------------------
+ member delete cn=modify_order_member_other_group,{base dn}
+ member add cn=ldaptest_modify_order_member_17,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_17,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_17,cn=users,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member_21,cn=users,{base dn}
+ member replace cn=ldaptest_modify_order_member_21,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member delete cn=ldaptest_modify_order_member_21,cn=users,{base dn}
+----------------------------------
+ member add cn=ldaptest_modify_order_member_23,cn=users,{base dn}
+ member delete cn=modify_order_member_other_group,{base dn}
+ member replace cn=ldaptest_modify_order_member_23,cn=users,{base dn}
+ member delete cn=ldaptest_modify_order_member_23,cn=users,{base dn}
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_mixed-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_mixed-non-admin.expected
new file mode 100644
index 0000000..544c31c
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_mixed-non-admin.expected
@@ -0,0 +1,128 @@
+modify_order_mixed-non-admin
+initial attrs:
+ objectclass: 'user'
+ carLicense: ['1', '2', '3']
+ otherTelephone: '123'
+== result ===[ 24]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ carLicense delete 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense delete 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 3
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense delete 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 3
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense delete 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense delete 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 3
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense delete 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense delete 3
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_mixed.expected b/source4/dsdb/tests/python/testdata/modify_order_mixed.expected
new file mode 100644
index 0000000..d80f572
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_mixed.expected
@@ -0,0 +1,143 @@
+modify_order_mixed
+initial attrs:
+ objectclass: 'user'
+ carLicense: ['1', '2', '3']
+ otherTelephone: '123'
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2', b'3', b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 3
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2', b'3', b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'4']
+-- operations ---------------------------
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 3
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 3
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense delete 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense delete 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense delete 3
+----------------------------------
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'4']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense delete 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense delete 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense delete 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense delete 3
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_mixed2-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_mixed2-non-admin.expected
new file mode 100644
index 0000000..7f812cc
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_mixed2-non-admin.expected
@@ -0,0 +1,128 @@
+modify_order_mixed2-non-admin
+initial attrs:
+ objectclass: 'user'
+ carLicense: ['1', '2', '3']
+ ipPhone: '123'
+== result ===[ 24]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ carLicense delete 3
+ carLicense add 4
+ ipPhone replace 4
+ ipPhone delete 123
+----------------------------------
+ carLicense delete 3
+ carLicense add 4
+ ipPhone delete 123
+ ipPhone replace 4
+----------------------------------
+ carLicense delete 3
+ ipPhone replace 4
+ carLicense add 4
+ ipPhone delete 123
+----------------------------------
+ carLicense delete 3
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense add 4
+----------------------------------
+ carLicense delete 3
+ ipPhone delete 123
+ carLicense add 4
+ ipPhone replace 4
+----------------------------------
+ carLicense delete 3
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense add 4
+----------------------------------
+ carLicense add 4
+ carLicense delete 3
+ ipPhone replace 4
+ ipPhone delete 123
+----------------------------------
+ carLicense add 4
+ carLicense delete 3
+ ipPhone delete 123
+ ipPhone replace 4
+----------------------------------
+ carLicense add 4
+ ipPhone replace 4
+ carLicense delete 3
+ ipPhone delete 123
+----------------------------------
+ carLicense add 4
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense delete 3
+----------------------------------
+ carLicense add 4
+ ipPhone delete 123
+ carLicense delete 3
+ ipPhone replace 4
+----------------------------------
+ carLicense add 4
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense delete 3
+----------------------------------
+ ipPhone replace 4
+ carLicense delete 3
+ carLicense add 4
+ ipPhone delete 123
+----------------------------------
+ ipPhone replace 4
+ carLicense delete 3
+ ipPhone delete 123
+ carLicense add 4
+----------------------------------
+ ipPhone replace 4
+ carLicense add 4
+ carLicense delete 3
+ ipPhone delete 123
+----------------------------------
+ ipPhone replace 4
+ carLicense add 4
+ ipPhone delete 123
+ carLicense delete 3
+----------------------------------
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense add 4
+ carLicense delete 3
+----------------------------------
+ ipPhone delete 123
+ carLicense delete 3
+ carLicense add 4
+ ipPhone replace 4
+----------------------------------
+ ipPhone delete 123
+ carLicense delete 3
+ ipPhone replace 4
+ carLicense add 4
+----------------------------------
+ ipPhone delete 123
+ carLicense add 4
+ carLicense delete 3
+ ipPhone replace 4
+----------------------------------
+ ipPhone delete 123
+ carLicense add 4
+ ipPhone replace 4
+ carLicense delete 3
+----------------------------------
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense add 4
+ carLicense delete 3
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_mixed2.expected b/source4/dsdb/tests/python/testdata/modify_order_mixed2.expected
new file mode 100644
index 0000000..3500a8c
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_mixed2.expected
@@ -0,0 +1,143 @@
+modify_order_mixed2
+initial attrs:
+ objectclass: 'user'
+ carLicense: ['1', '2', '3']
+ ipPhone: '123'
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2', b'3', b'4']
+ ipPhone: [b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense delete 3
+ carLicense add 4
+ ipPhone delete 123
+ ipPhone replace 4
+----------------------------------
+ carLicense delete 3
+ ipPhone delete 123
+ carLicense add 4
+ ipPhone replace 4
+----------------------------------
+ carLicense delete 3
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense add 4
+----------------------------------
+ ipPhone delete 123
+ carLicense delete 3
+ carLicense add 4
+ ipPhone replace 4
+----------------------------------
+ ipPhone delete 123
+ carLicense delete 3
+ ipPhone replace 4
+ carLicense add 4
+----------------------------------
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2', b'3', b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense delete 3
+ carLicense add 4
+ ipPhone replace 4
+ ipPhone delete 123
+----------------------------------
+ carLicense delete 3
+ ipPhone replace 4
+ carLicense add 4
+ ipPhone delete 123
+----------------------------------
+ carLicense delete 3
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense add 4
+----------------------------------
+ ipPhone replace 4
+ carLicense delete 3
+ carLicense add 4
+ ipPhone delete 123
+----------------------------------
+ ipPhone replace 4
+ carLicense delete 3
+ ipPhone delete 123
+ carLicense add 4
+----------------------------------
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense delete 3
+ carLicense add 4
+----------------------------------
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2']
+ ipPhone: [b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense delete 3
+ ipPhone delete 123
+ ipPhone replace 4
+----------------------------------
+ carLicense add 4
+ ipPhone delete 123
+ carLicense delete 3
+ ipPhone replace 4
+----------------------------------
+ carLicense add 4
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense delete 3
+----------------------------------
+ ipPhone delete 123
+ carLicense add 4
+ carLicense delete 3
+ ipPhone replace 4
+----------------------------------
+ ipPhone delete 123
+ carLicense add 4
+ ipPhone replace 4
+ carLicense delete 3
+----------------------------------
+ ipPhone delete 123
+ ipPhone replace 4
+ carLicense add 4
+ carLicense delete 3
+----------------------------------
+== result ===[ 6]=======================
+ carLicense: [b'1', b'2']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense delete 3
+ ipPhone replace 4
+ ipPhone delete 123
+----------------------------------
+ carLicense add 4
+ ipPhone replace 4
+ carLicense delete 3
+ ipPhone delete 123
+----------------------------------
+ carLicense add 4
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense delete 3
+----------------------------------
+ ipPhone replace 4
+ carLicense add 4
+ carLicense delete 3
+ ipPhone delete 123
+----------------------------------
+ ipPhone replace 4
+ carLicense add 4
+ ipPhone delete 123
+ carLicense delete 3
+----------------------------------
+ ipPhone replace 4
+ ipPhone delete 123
+ carLicense add 4
+ carLicense delete 3
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_objectclass-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_objectclass-non-admin.expected
new file mode 100644
index 0000000..1e9650a
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_objectclass-non-admin.expected
@@ -0,0 +1,31 @@
+modify_order_objectclass-non-admin
+initial attrs:
+ objectclass: 'user'
+ otherTelephone: '123'
+== result ===[ 6]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass delete user
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass delete user
+----------------------------------
+ objectclass delete user
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass delete user
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass delete user
+----------------------------------
+ objectclass delete person
+ objectclass delete user
+ objectclass replace computer
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_objectclass.expected b/source4/dsdb/tests/python/testdata/modify_order_objectclass.expected
new file mode 100644
index 0000000..0ec6d4a
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_objectclass.expected
@@ -0,0 +1,35 @@
+modify_order_objectclass
+initial attrs:
+ objectclass: 'user'
+ otherTelephone: '123'
+== result ===[ 2]=======================
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'123']
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass delete user
+ objectclass delete person
+----------------------------------
+ objectclass delete user
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+== result ===[ 4]=======================
+ERR_OBJECT_CLASS_VIOLATION (65)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass delete user
+----------------------------------
+ objectclass delete user
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass delete user
+----------------------------------
+ objectclass delete person
+ objectclass delete user
+ objectclass replace computer
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_objectclass2-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_objectclass2-non-admin.expected
new file mode 100644
index 0000000..2515154
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_objectclass2-non-admin.expected
@@ -0,0 +1,726 @@
+modify_order_objectclass2-non-admin
+initial attrs:
+ objectclass: 'user'
+== result ===[120]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_objectclass2.expected b/source4/dsdb/tests/python/testdata/modify_order_objectclass2.expected
new file mode 100644
index 0000000..4f51708
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_objectclass2.expected
@@ -0,0 +1,735 @@
+modify_order_objectclass2
+initial attrs:
+ objectclass: 'user'
+== result ===[ 24]=======================
+ objectClass: [b'inetOrgPerson', b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+----------------------------------
+== result ===[ 24]=======================
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+== result ===[ 24]=======================
+ERR_ATTRIBUTE_OR_VALUE_EXISTS (20)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+ objectclass add user
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+ objectclass add user
+----------------------------------
+== result ===[ 48]=======================
+ERR_OBJECT_CLASS_VIOLATION (65)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass delete person
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass add inetOrgPerson
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace computer
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass add inetOrgPerson
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass replace attributeSchema
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace computer
+ objectclass add user
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace computer
+ objectclass replace attributeSchema
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass add user
+ objectclass replace attributeSchema
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ objectclass add inetOrgPerson
+ objectclass replace attributeSchema
+ objectclass add user
+ objectclass replace computer
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_singlevalue-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_singlevalue-non-admin.expected
new file mode 100644
index 0000000..f9d717d
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_singlevalue-non-admin.expected
@@ -0,0 +1,727 @@
+modify_order_singlevalue-non-admin
+initial attrs:
+ objectclass: 'user'
+ givenName: 'a'
+== result ===[120]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_singlevalue.expected b/source4/dsdb/tests/python/testdata/modify_order_singlevalue.expected
new file mode 100644
index 0000000..9946165
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_singlevalue.expected
@@ -0,0 +1,740 @@
+modify_order_singlevalue
+initial attrs:
+ objectclass: 'user'
+ givenName: 'a'
+== result ===[ 24]=======================
+ givenName: [b'a']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+----------------------------------
+== result ===[ 24]=======================
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+----------------------------------
+== result ===[ 24]=======================
+ERR_ATTRIBUTE_OR_VALUE_EXISTS (20)
+-- operations ---------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+ givenName replace a
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+----------------------------------
+== result ===[ 24]=======================
+ERR_CONSTRAINT_VIOLATION (19)
+-- operations ---------------------------
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete b
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName delete b
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete b
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete b
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName delete b
+ givenName replace ['b', 'a']
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName delete b
+ givenName replace a
+ givenName replace ['b', 'a']
+----------------------------------
+== result ===[ 24]=======================
+ERR_NO_SUCH_ATTRIBUTE (16)
+-- operations ---------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName add c
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName add c
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName delete a
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace a
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName replace ['b', 'a']
+ givenName delete a
+ givenName replace a
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace a
+ givenName replace ['b', 'a']
+ givenName delete b
+----------------------------------
+ givenName add c
+ givenName delete a
+ givenName replace ['b', 'a']
+ givenName replace a
+ givenName delete b
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable-non-admin.expected
new file mode 100644
index 0000000..fd144d7
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable-non-admin.expected
@@ -0,0 +1,127 @@
+modify_order_sometimes_inapplicable-non-admin
+initial attrs:
+ objectclass: 'user'
+ givenName: 'a'
+== result ===[ 24]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName add b
+ dnsHostName replace c
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName replace c
+ dnsHostName add b
+----------------------------------
+ objectclass replace computer
+ dnsHostName add b
+ objectclass delete person
+ dnsHostName replace c
+----------------------------------
+ objectclass replace computer
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ dnsHostName replace c
+ objectclass delete person
+ dnsHostName add b
+----------------------------------
+ objectclass replace computer
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass delete person
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName add b
+ dnsHostName replace c
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName replace c
+ dnsHostName add b
+----------------------------------
+ objectclass delete person
+ dnsHostName add b
+ objectclass replace computer
+ dnsHostName replace c
+----------------------------------
+ objectclass delete person
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ dnsHostName replace c
+ objectclass replace computer
+ dnsHostName add b
+----------------------------------
+ objectclass delete person
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass replace computer
+----------------------------------
+ dnsHostName add b
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName replace c
+----------------------------------
+ dnsHostName add b
+ objectclass replace computer
+ dnsHostName replace c
+ objectclass delete person
+----------------------------------
+ dnsHostName add b
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName replace c
+----------------------------------
+ dnsHostName add b
+ objectclass delete person
+ dnsHostName replace c
+ objectclass replace computer
+----------------------------------
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ dnsHostName replace c
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName add b
+----------------------------------
+ dnsHostName replace c
+ objectclass replace computer
+ dnsHostName add b
+ objectclass delete person
+----------------------------------
+ dnsHostName replace c
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName add b
+----------------------------------
+ dnsHostName replace c
+ objectclass delete person
+ dnsHostName add b
+ objectclass replace computer
+----------------------------------
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass delete person
+ objectclass replace computer
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable.expected b/source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable.expected
new file mode 100644
index 0000000..a8af7f0
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_sometimes_inapplicable.expected
@@ -0,0 +1,127 @@
+modify_order_sometimes_inapplicable
+initial attrs:
+ objectclass: 'user'
+ givenName: 'a'
+== result ===[ 24]=======================
+ERR_OBJECT_CLASS_VIOLATION (65)
+-- operations ---------------------------
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName add b
+ dnsHostName replace c
+----------------------------------
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName replace c
+ dnsHostName add b
+----------------------------------
+ objectclass replace computer
+ dnsHostName add b
+ objectclass delete person
+ dnsHostName replace c
+----------------------------------
+ objectclass replace computer
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass delete person
+----------------------------------
+ objectclass replace computer
+ dnsHostName replace c
+ objectclass delete person
+ dnsHostName add b
+----------------------------------
+ objectclass replace computer
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass delete person
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName add b
+ dnsHostName replace c
+----------------------------------
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName replace c
+ dnsHostName add b
+----------------------------------
+ objectclass delete person
+ dnsHostName add b
+ objectclass replace computer
+ dnsHostName replace c
+----------------------------------
+ objectclass delete person
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass replace computer
+----------------------------------
+ objectclass delete person
+ dnsHostName replace c
+ objectclass replace computer
+ dnsHostName add b
+----------------------------------
+ objectclass delete person
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass replace computer
+----------------------------------
+ dnsHostName add b
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName replace c
+----------------------------------
+ dnsHostName add b
+ objectclass replace computer
+ dnsHostName replace c
+ objectclass delete person
+----------------------------------
+ dnsHostName add b
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName replace c
+----------------------------------
+ dnsHostName add b
+ objectclass delete person
+ dnsHostName replace c
+ objectclass replace computer
+----------------------------------
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ dnsHostName add b
+ dnsHostName replace c
+ objectclass delete person
+ objectclass replace computer
+----------------------------------
+ dnsHostName replace c
+ objectclass replace computer
+ objectclass delete person
+ dnsHostName add b
+----------------------------------
+ dnsHostName replace c
+ objectclass replace computer
+ dnsHostName add b
+ objectclass delete person
+----------------------------------
+ dnsHostName replace c
+ objectclass delete person
+ objectclass replace computer
+ dnsHostName add b
+----------------------------------
+ dnsHostName replace c
+ objectclass delete person
+ dnsHostName add b
+ objectclass replace computer
+----------------------------------
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass replace computer
+ objectclass delete person
+----------------------------------
+ dnsHostName replace c
+ dnsHostName add b
+ objectclass delete person
+ objectclass replace computer
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_telephone-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_telephone-non-admin.expected
new file mode 100644
index 0000000..fd46b3a
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_telephone-non-admin.expected
@@ -0,0 +1,727 @@
+modify_order_telephone-non-admin
+initial attrs:
+ objectclass: 'user'
+ otherTelephone: '123'
+== result ===[120]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_telephone.expected b/source4/dsdb/tests/python/testdata/modify_order_telephone.expected
new file mode 100644
index 0000000..d17de03
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_telephone.expected
@@ -0,0 +1,752 @@
+modify_order_telephone
+initial attrs:
+ objectclass: 'user'
+ otherTelephone: '123'
+== result ===[ 20]=======================
+ carLicense: [b'3']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+== result ===[ 20]=======================
+ carLicense: [b'3']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'123', b'4']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+== result ===[ 20]=======================
+ carLicense: [b'3']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'4']
+-- operations ---------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ carLicense replace 3
+----------------------------------
+== result ===[ 20]=======================
+ carLicense: [b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+== result ===[ 20]=======================
+ carLicense: [b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'123', b'4']
+-- operations ---------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+== result ===[ 20]=======================
+ carLicense: [b'4']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'4']
+-- operations ---------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone add 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ carLicense add 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense add 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone add 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense add 4
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete-non-admin.expected b/source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete-non-admin.expected
new file mode 100644
index 0000000..96fc4fd
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete-non-admin.expected
@@ -0,0 +1,727 @@
+modify_order_telephone_delete_delete-non-admin
+initial attrs:
+ objectclass: 'user'
+ otherTelephone: '123'
+== result ===[120]=======================
+ERR_INSUFFICIENT_ACCESS_RIGHTS (50)
+-- operations ---------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete.expected b/source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete.expected
new file mode 100644
index 0000000..14983ba
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/modify_order_telephone_delete_delete.expected
@@ -0,0 +1,736 @@
+modify_order_telephone_delete_delete
+initial attrs:
+ objectclass: 'user'
+ otherTelephone: '123'
+== result ===[ 20]=======================
+ carLicense: [b'3']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+-- operations ---------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+== result ===[ 20]=======================
+ carLicense: [b'3']
+ objectClass: [b'organizationalPerson', b'person', b'top', b'user']
+ otherTelephone: [b'4']
+-- operations ---------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+== result ===[ 80]=======================
+ERR_NO_SUCH_ATTRIBUTE (16)
+-- operations ---------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone replace 4
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 123
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 123
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone replace 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 4
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense replace 3
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ carLicense delete 4
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense replace 3
+ otherTelephone delete 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ carLicense replace 3
+ otherTelephone delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ carLicense delete 4
+ otherTelephone delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone replace 4
+ otherTelephone delete 4
+ carLicense delete 4
+ carLicense replace 3
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ carLicense delete 4
+ otherTelephone replace 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ carLicense replace 3
+ otherTelephone replace 4
+ carLicense delete 4
+----------------------------------
+ otherTelephone delete 123
+ otherTelephone delete 4
+ otherTelephone replace 4
+ carLicense replace 3
+ carLicense delete 4
+---------------------------------- \ No newline at end of file
diff --git a/source4/dsdb/tests/python/testdata/simplesort.expected b/source4/dsdb/tests/python/testdata/simplesort.expected
new file mode 100644
index 0000000..045337b
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/simplesort.expected
@@ -0,0 +1,8 @@
+comment = [u'FAVOURITEXCOLOURXISX0', u'FAVOURITEXCOLOURXISX0', u'FAVOURITEXCOLOURXISX0', u'FAVOURITEXCOLOURXISX0', u'FAVOURITEXCOLOURXISX1', u'FAVOURITEXCOLOURXISX1', u'FAVOURITEXCOLOURXISX1', u'FAVOURITEXCOLOURXISX1', u'FAVOURITEXCOLOURXISX1', u'FAVOURITEXCOLOURXISX10', u'FAVOURITEXCOLOURXISX11', u'FAVOURITEXCOLOURXISX12', u'FAVOURITEXCOLOURXISX13', u'FAVOURITEXCOLOURXISX14', u'FAVOURITEXCOLOURXISX15', u'FAVOURITEXCOLOURXISX16', u'FAVOURITEXCOLOURXISX2', u'FAVOURITEXCOLOURXISX3', u'FAVOURITEXCOLOURXISX3', u'FAVOURITEXCOLOURXISX3', u'FAVOURITEXCOLOURXISX3', u'FAVOURITEXCOLOURXISX3', u'FAVOURITEXCOLOURXISX4', u'FAVOURITEXCOLOURXISX5', u'FAVOURITEXCOLOURXISX5', u'FAVOURITEXCOLOURXISX5', u'FAVOURITEXCOLOURXISX6', u'FAVOURITEXCOLOURXISX6', u'FAVOURITEXCOLOURXISX7', u'FAVOURITEXCOLOURXISX7', u'FAVOURITEXCOLOURXISX8', u'FAVOURITEXCOLOURXISX9', u'FAVOURITEXCOLOURXISX9']
+msTSExpireDate4 = ['19000101010000.0Z', '19010101010000.0Z', '19020101010000.0Z', '19030101010000.0Z', '19040101010000.0Z', '19050101010000.0Z', '19060101010000.0Z', '19070101010000.0Z', '19080101010000.0Z', '19090101010000.0Z', '19100101010000.0Z', '19110101010000.0Z', '19120101010000.0Z', '19130101010000.0Z', '19140101010000.0Z', '19150101010000.0Z', '19160101010000.0Z', '19170101010000.0Z', '19180101010000.0Z', '19190101010000.0Z', '19200101010000.0Z', '19210101010000.0Z', '19220101010000.0Z', '19230101010000.0Z', '19240101010000.0Z', '19250101010000.0Z', '19260101010000.0Z', '19270101010000.0Z', '19280101010000.0Z', '19290101010000.0Z', '19300101010000.0Z', '19310101010000.0Z', '19320101010000.0Z']
+cn = [u'SORTTEST0', u'SORTTEST1', u'SORTTEST10', u'SORTTEST11', u'SORTTEST12', u'SORTTEST13', u'SORTTEST14', u'SORTTEST15', u'SORTTEST16', u'SORTTEST17', u'SORTTEST18', u'SORTTEST19', u'SORTTEST2', u'SORTTEST20', u'SORTTEST21', u'SORTTEST22', u'SORTTEST23', u'SORTTEST24', u'SORTTEST25', u'SORTTEST26', u'SORTTEST27', u'SORTTEST28', u'SORTTEST29', u'SORTTEST3', u'SORTTEST30', u'SORTTEST31', u'SORTTEST32', u'SORTTEST4', u'SORTTEST5', u'SORTTEST6', u'SORTTEST7', u'SORTTEST8', u'SORTTEST9']
+serialNumber = ['abcXAXX', 'abcXAXX', 'abcXAXX', 'abcXAXX', 'abcXAXX', 'abcXBzX', 'abcXBzX', 'abcXBzX', 'abcXBzX', 'abcXX3X', 'abcXX3X', 'abcXX3X', 'abcXX3X', 'abcXXXX', 'abcXXXX', 'abcXXXX', 'abcXXXX', 'abcXXXX', 'abcXXXX', 'abcXXXX', 'abcXXXX', 'abcXXzX', 'abcXXzX', 'abcXXzX', 'abcXXzX', 'abcXa3X', 'abcXa3X', 'abcXa3X', 'abcXa3X', 'abcXbXX', 'abcXbXX', 'abcXbXX', 'abcXbXX']
+roomNumber = [u'10BXC', u'11BXC', u'12BXC', u'13BXC', u'14BXC', u'15BXC', u'16BXC', u'17BXC', u'18BXC', u'19BXC', u'1BXC', u'20BXC', u'21BXC', u'22BXC', u'23BXC', u'24BXC', u'25BXC', u'26BXC', u'27BXC', u'28BXC', u'29BXC', u'2BXC', u'30BXC', u'31BXC', u'32BXC', u'33BXC', u'3BXC', u'4BXC', u'5BXC', u'6BXC', u'7BXC', u'8BXC', u'9BXC']
+carLicense = [u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX', u'XXXXXXXXX']
+employeeNumber = [u'0X', u'1044XXXXXXXXXXXXX', u'1118XXXXXXXXXXXXXX', u'1190XXXXXXXXXXXXXXX', u'1260XXXXXXXXXXXXXXXX', u'1328XXXXXXXXXXXXXXXXX', u'1394XXXXXXXXXXXXXXXXXX', u'1458XXXXXXXXXXXXXXXXXXX', u'1520XXXXXXXXXXXXXXXXXXXX', u'1580XXXXXXXXXXXXXXXXXXXXX', u'1638XXXXXXXXXXXXXXXXXXXXXX', u'1694XXXXXXXXXXXXXXXXXXXXXXX', u'1748XXXXXXXXXXXXXXXXXXXXXXXX', u'1800XXXXXXXXXXXXXXXXXXXXXXXXX', u'1850XXXXXXXXXXXXXXXXXXXXXXXXXX', u'1898XXXXXXXXXXXXXXXXXXXXXXXXXXX', u'1944XXXXXXXXXXXXXXXXXXXXXXXXXXXX', u'194XXX', u'1988XXXXXXXXXXXXXXXXXXXXXXXXXXXXX', u'2030XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', u'2070XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', u'2108XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', u'2144XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', u'288XXXX', u'380XXXXX', u'470XXXXXX', u'558XXXXXXX', u'644XXXXXXXX', u'728XXXXXXXXX', u'810XXXXXXXXXX', u'890XXXXXXXXXXX', u'968XXXXXXXXXXXX', u'98XX']
+givenName = [u'A', u'A', u'B', u'B', u'C', u'C', u'D', u'D', u'E', u'E', u'F', u'F', u'G', u'G', u'H', u'I', u'J', u'K', u'L', u'M', u'N', u'O', u'P', u'Q', u'R', u'S', u'T', u'U', u'V', u'W', u'X', u'Y', u'Z']
diff --git a/source4/dsdb/tests/python/testdata/unicodesort.expected b/source4/dsdb/tests/python/testdata/unicodesort.expected
new file mode 100644
index 0000000..de07cfc
--- /dev/null
+++ b/source4/dsdb/tests/python/testdata/unicodesort.expected
@@ -0,0 +1,16 @@
+comment = [u'FAVOURITE COLOUR IS 0', u'FAVOURITE COLOUR IS 0', u'FAVOURITE COLOUR IS 0', u'FAVOURITE COLOUR IS 0', u'FAVOURITE COLOUR IS 1', u'FAVOURITE COLOUR IS 1', u'FAVOURITE COLOUR IS 1', u'FAVOURITE COLOUR IS 1', u'FAVOURITE COLOUR IS 1', u'FAVOURITE COLOUR IS 10', u'FAVOURITE COLOUR IS 11', u'FAVOURITE COLOUR IS 12', u'FAVOURITE COLOUR IS 13', u'FAVOURITE COLOUR IS 14', u'FAVOURITE COLOUR IS 15', u'FAVOURITE COLOUR IS 16', u'FAVOURITE COLOUR IS 2', u'FAVOURITE COLOUR IS 3', u'FAVOURITE COLOUR IS 3', u'FAVOURITE COLOUR IS 3', u'FAVOURITE COLOUR IS 3', u'FAVOURITE COLOUR IS 3', u'FAVOURITE COLOUR IS 4', u'FAVOURITE COLOUR IS 5', u'FAVOURITE COLOUR IS 5', u'FAVOURITE COLOUR IS 5', u'FAVOURITE COLOUR IS 6', u'FAVOURITE COLOUR IS 6', u'FAVOURITE COLOUR IS 7', u'FAVOURITE COLOUR IS 7', u'FAVOURITE COLOUR IS 8', u'FAVOURITE COLOUR IS 9', u'FAVOURITE COLOUR IS 9']
+msTSExpireDate4 = ['19000101010000.0Z', '19010101010000.0Z', '19020101010000.0Z', '19030101010000.0Z', '19040101010000.0Z', '19050101010000.0Z', '19060101010000.0Z', '19070101010000.0Z', '19080101010000.0Z', '19090101010000.0Z', '19100101010000.0Z', '19110101010000.0Z', '19120101010000.0Z', '19130101010000.0Z', '19140101010000.0Z', '19150101010000.0Z', '19160101010000.0Z', '19170101010000.0Z', '19180101010000.0Z', '19190101010000.0Z', '19200101010000.0Z', '19210101010000.0Z', '19220101010000.0Z', '19230101010000.0Z', '19240101010000.0Z', '19250101010000.0Z', '19260101010000.0Z', '19270101010000.0Z', '19280101010000.0Z', '19290101010000.0Z', '19300101010000.0Z', '19310101010000.0Z', '19320101010000.0Z']
+audio = ['An octet string \x000 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x022 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x044 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x066 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x088 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \n10 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x0c12 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x0e14 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1016 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1218 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1420 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1622 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1824 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1a26 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1c28 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string \x1e30 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'An octet string 32 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x011 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x033 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x055 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x077 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \t9 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x0b11 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \r13 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x0f15 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1117 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1319 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1521 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1723 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1925 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1b27 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1d29 \xe2\x99\xab\xe2\x99\xac\x00lalala', 'an octet string \x1f31 \xe2\x99\xab\xe2\x99\xac\x00lalala']
+adminDisplayName = [u'10\x00B', u'11\x00B', u'12\x00B', u'13\x00B', u'14\x00B', u'15\x00B', u'16\x00B', u'17\x00B', u'18\x00B', u'19\x00B', u'1\x00B', u'20\x00B', u'21\x00B', u'22\x00B', u'23\x00B', u'24\x00B', u'25\x00B', u'26\x00B', u'27\x00B', u'28\x00B', u'29\x00B', u'2\x00B', u'30\x00B', u'31\x00B', u'32\x00B', u'33\x00B', u'3\x00B', u'4\x00B', u'5\x00B', u'6\x00B', u'7\x00B', u'8\x00B', u'9\x00B']
+cn = [u'SORTTEST0', u'SORTTEST1', u'SORTTEST10', u'SORTTEST11', u'SORTTEST12', u'SORTTEST13', u'SORTTEST14', u'SORTTEST15', u'SORTTEST16', u'SORTTEST17', u'SORTTEST18', u'SORTTEST19', u'SORTTEST2', u'SORTTEST20', u'SORTTEST21', u'SORTTEST22', u'SORTTEST23', u'SORTTEST24', u'SORTTEST25', u'SORTTEST26', u'SORTTEST27', u'SORTTEST28', u'SORTTEST29', u'SORTTEST3', u'SORTTEST30', u'SORTTEST31', u'SORTTEST32', u'SORTTEST4', u'SORTTEST5', u'SORTTEST6', u'SORTTEST7', u'SORTTEST8', u'SORTTEST9']
+title = [u'10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'12\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'15\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'16\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'1\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'20\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'22\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'24\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'25\x00\x00\x00\x00\x00\x00\x00\x00B', u'26\x00\x00\x00\x00\x00\x00\x00B', u'27\x00\x00\x00\x00\x00\x00B', u'28\x00\x00\x00\x00\x00B', u'29\x00\x00\x00\x00B', u'2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'30\x00\x00\x00B', u'31\x00\x00B', u'32\x00B', u'33B', u'3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'5\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'6\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'7\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B', u'9\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00B']
+photo = ['\x001', '\x0010', '\x0011', '\x0012', '\x0013', '\x0014', '\x0015', '\x0016', '\x0017', '\x0018', '\x0019', '\x002', '\x0020', '\x0021', '\x0022', '\x0023', '\x0024', '\x0025', '\x0026', '\x0027', '\x0028', '\x0029', '\x003', '\x0030', '\x0031', '\x0032', '\x0033', '\x004', '\x005', '\x006', '\x007', '\x008', '\x009']
+serialNumber = ['abc "', 'abc "', 'abc "', 'abc "', 'abc -z"', 'abc -z"', 'abc -z"', 'abc -z"', 'abc /}@', 'abc /}@', 'abc /}@', 'abc /}@', 'abc A "', 'abc A "', 'abc A "', 'abc A "', 'abc A "', 'abc Bz"', 'abc Bz"', 'abc Bz"', 'abc Bz"', 'abc a3@', 'abc a3@', 'abc a3@', 'abc a3@', 'abc b}@', 'abc b}@', 'abc b}@', 'abc b}@', 'abc |3@', 'abc |3@', 'abc |3@', 'abc |3@']
+roomNumber = [u'10B\x00C', u'11B\x00C', u'12B\x00C', u'13B\x00C', u'14B\x00C', u'15B\x00C', u'16B\x00C', u'17B\x00C', u'18B\x00C', u'19B\x00C', u'1B\x00C', u'20B\x00C', u'21B\x00C', u'22B\x00C', u'23B\x00C', u'24B\x00C', u'25B\x00C', u'26B\x00C', u'27B\x00C', u'28B\x00C', u'29B\x00C', u'2B\x00C', u'30B\x00C', u'31B\x00C', u'32B\x00C', u'33B\x00C', u'3B\x00C', u'4B\x00C', u'5B\x00C', u'6B\x00C', u'7B\x00C', u'8B\x00C', u'9B\x00C']
+carLicense = [u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf', u'\u540e\u6765\u7ecf']
+streetAddress = [u' ', u' ', u' E', u' E', u'\t-\t', u'\t-\t', u'\n\t\t', u'\n\t\t', u'!@#!@#!', u'1\u20444', u'1', u'1', u'1/4', u'1\u20444', u'1\u20445', u'3', u'ABC', u'K\u014cKAKO', u'\u014a\u01101\u204443\u0166 \u201c\xab\u0110\xd0', u'\u014a\u01101\u204443\u0166\u201c\xab\u0110\xd0', u'SORTTEST', u'SORTT\u0112ST11,', u'\u015aORTTEST2', u'\u015aORTTEST2', u'\u015a-O-R-T-T-E-S-T-2', u'SORTT\u0112ST2,', u'\u1e60ORTTEST4', u'\u1e60ORTTEST4', u'S\xd6RTTEST-5', u'S\xd6RTTEST-5', u'SO-RTTEST7,', u'\u6851\u5df4', u'FO\x00OD']
+street = [u'A ST', u'A ST', u'A ST', u'A ST', u'A ST', u'C ST', u'C ST', u'C ST', u'C ST', u'E ST', u'E ST', u'E ST', u'E ST', u'G ST', u'G ST', u'G ST', u'G ST', u'I ST', u'I ST', u'I ST', u'I ST', u'K ST', u'K ST', u'K ST', u'K ST', u'M ST', u'M ST', u'M ST', u'M ST', u'O ST', u'O ST', u'O ST', u'O ST']
+employeeNumber = [u'0X', u'1044\n\n\n\n\n\n\n\n\n\n\n\nX', u'1118\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1190\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1260\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1328\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1394\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1458\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1520\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1580\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1638\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1694\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1748\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1800\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1850\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1898\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'194\n\nX', u'1944\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'1988\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'2030\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'2070\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'2108\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'2144\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nX', u'288\n\n\nX', u'380\n\n\n\nX', u'470\n\n\n\n\nX', u'558\n\n\n\n\n\nX', u'644\n\n\n\n\n\n\nX', u'728\n\n\n\n\n\n\n\nX', u'810\n\n\n\n\n\n\n\n\nX', u'890\n\n\n\n\n\n\n\n\n\nX', u'968\n\n\n\n\n\n\n\n\n\n\nX', u'98\nX']
+postalAddress = [u' ', u' ', u' E', u'\t-\t', u'\n\t\t', u'!@#!@#!', u'1\u20444', u'1', u'1', u'1/4', u'1\u20444', u'1\u20445', u'3', u'ABC', u'K\u014cKAKO', u'\u014a\u01101\u204443\u0166 \u201c\xab\u0110\xd0', u'\u014a\u01101\u204443\u0166\u201c\xab\u0110\xd0', u'SORTTEST', u'SORTT\u0112ST11,', u'\u015aORTTEST2', u'\u015aORTTEST2', u'\u015a-O-R-T-T-E-S-T-2', u'SORTT\u0112ST2,', u'\u1e60ORTTEST4', u'\u1e60ORTTEST4', u'S\xd6RTTEST-5', u'S\xd6RTTEST-5', u'SO-RTTEST7,', u'SO-RTTEST7,', u'\u6851\u5df4', u'\u6851\u5df4', u'FO\x00OD', u'FO\x00OD']
+givenName = [u'A', u'A', u'B', u'B', u'C', u'C', u'D', u'D', u'E', u'E', u'F', u'F', u'G', u'G', u'H', u'I', u'J', u'K', u'L', u'M', u'N', u'O', u'P', u'Q', u'R', u'S', u'T', u'U', u'V', u'W', u'X', u'Y', u'Z']
+displayNamePrintable = ['0\x00\x00', '1\x00\x01', '10\x00\n', '11\x00\x0b', '12\x00\x0c', '13\x00\r', '14\x00\x0e', '15\x00\x0f', '16\x00\x10', '17\x00\x11', '18\x00\x12', '19\x00\x13', '2\x00\x02', '20\x00\x14', '21\x00\x15', '22\x00\x16', '23\x00\x17', '24\x00\x18', '25\x00\x19', '26\x00\x1a', '27\x00\x1b', '28\x00\x1c', '29\x00\x1d', '3\x00\x03', '30\x00\x1e', '31\x00\x1f', '32\x00 ', '4\x00\x04', '5\x00\x05', '6\x00\x06', '7\x00\x07', '8\x00\x08', '9\x00\t']