PEP8: fix E401: multiple imports on one line
[kai/samba-autobuild/.git] / source4 / torture / drs / python / repl_move.py
index dfb48415c6f2e429b2fbb407e6de80dd0f062a4c..d5cb3ede4c26f46147642ad6641f5b54a5f193b8 100644 (file)
@@ -30,6 +30,7 @@
 from __future__ import print_function
 import time
 import uuid
+import samba.tests
 
 from samba.ndr import ndr_unpack
 from samba.dcerpc import drsblobs
@@ -39,11 +40,13 @@ from samba.drs_utils import drs_DsBind
 from ldb import (
     SCOPE_BASE,
     SCOPE_SUBTREE,
-    )
+)
 
-import drs_base, ldb
+import drs_base
+import ldb
 from samba.dcerpc.drsuapi import *
 
+
 class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
     def _ds_bind(self, server_name):
@@ -63,8 +66,11 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
         self._net_drs_replicate(DC=self.dnsname_dc1, fromDC=self.dnsname_dc2, forced=True)
 
+        self.top_ou = samba.tests.create_test_ou(self.ldb_dc1,
+                                                 "replica_move")
+
         self.ou1_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU1")
-        self.ou1_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou1_dn.add_base(self.top_ou)
         ou1 = {}
         ou1["dn"] = self.ou1_dn
         ou1["objectclass"] = "organizationalUnit"
@@ -72,7 +78,7 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         self.ldb_dc1.add(ou1)
 
         self.ou2_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU2")
-        self.ou2_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou2_dn.add_base(self.top_ou)
         ou2 = {}
         ou2["dn"] = self.ou2_dn
         ou2["objectclass"] = "organizationalUnit"
@@ -89,13 +95,12 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
     def tearDown(self):
         try:
-            self.ldb_dc1.delete(self.ou1_dn, ["tree_delete:1"])
+            self.ldb_dc1.delete(self.top_ou, ["tree_delete:1"])
         except ldb.LdbError as e:
             (enum, string) = e.args
             if enum == ldb.ERR_NO_SUCH_OBJECT:
                 pass
 
-        self.ldb_dc1.delete(self.ou2_dn, ["tree_delete:1"])
         self._enable_all_repl(self.dnsname_dc1)
         self._enable_all_repl(self.dnsname_dc2)
         super(DrsMoveObjectTestCase, self).tearDown()
@@ -104,7 +109,7 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         return "DrsMoveU_" + time.strftime("%s", time.gmtime())
 
     def _check_metadata(self, user_dn, sam_ldb, drs, metadata, expected):
-        repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, str(metadata[0]))
+        repl = ndr_unpack(drsblobs.replPropertyMetaDataBlob, metadata[0])
 
         self.assertEqual(len(repl.ctr.array), len(expected))
 
@@ -246,7 +251,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         return user_cur
 
-
     def test_ReplicateMoveObject1(self):
         """Verifies how a moved container with a user inside is replicated between two DCs.
            This test should verify that:
@@ -265,7 +269,9 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -447,7 +453,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                                    is_deleted=False,
                                    expected_metadata=modified_metadata)
 
-
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
@@ -524,7 +529,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                                    expected_metadata=deleted_modified_metadata_dc1)
         self.assertFalse("description" in user_cur)
 
-
     def test_ReplicateMoveObject2(self):
         """Verifies how a moved container with a user inside is not
            replicated between two DCs as no replication is triggered
@@ -538,7 +542,9 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -705,7 +711,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                                    is_deleted=True,
                                    expected_metadata=deleted_metadata_dc1)
 
-
     def test_ReplicateMoveObject3(self):
         """Verifies how a moved container with a user inside is replicated between two DCs.
            This test should verify that:
@@ -720,7 +725,9 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -760,7 +767,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                         obj_orig=user_orig, is_deleted=False,
                         expected_metadata=initial_metadata)
 
-
         new_dn = ldb.Dn(self.ldb_dc1, "CN=%s" % username)
         new_dn.add_base(self.ou2_dn)
         self.ldb_dc1.rename(user_dn, new_dn)
@@ -885,7 +891,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                                    is_deleted=True,
                                    expected_metadata=deleted_metadata_dc2)
 
-
     def test_ReplicateMoveObject3b(self):
         """Verifies how a moved container with a user inside is replicated between two DCs.
            This test should verify that:
@@ -900,7 +905,9 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -940,7 +947,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                         obj_orig=user_orig, is_deleted=False,
                         expected_metadata=initial_metadata)
 
-
         new_dn = ldb.Dn(self.ldb_dc1, "CN=%s" % username)
         new_dn.add_base(self.ou2_dn)
         self.ldb_dc1.rename(user_dn, new_dn)
@@ -1065,7 +1071,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
                                    is_deleted=True,
                                    expected_metadata=deleted_metadata_dc2)
 
-
     def test_ReplicateMoveObject4(self):
         """Verifies how a moved container with a user inside is replicated between two DCs.
            This test should verify that:
@@ -1081,7 +1086,9 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -1341,7 +1348,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
             (DRSUAPI_ATTID_objectCategory, self.dc1_guid, 2),
             (DRSUAPI_ATTID_isRecycled, self.dc1_guid, 1)]
 
-
         # check user info on DC1 - should be deleted user
         user_cur = self._check_obj(sam_ldb=self.ldb_dc1, drs=self.drs_dc1,
                                    obj_orig=user_moved_orig,
@@ -1404,7 +1410,9 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -1462,7 +1470,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         user_cur = self._check_obj(sam_ldb=self.ldb_dc1, obj_orig=user_moved_orig, is_deleted=True)
         self.assertFalse("description" in user_cur)
 
-
     def test_ReplicateMoveObject6(self):
         """Verifies how a moved container is replicated between two DCs.
            This test should verify that:
@@ -1528,7 +1535,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         ou_cur = self._check_obj(sam_ldb=self.ldb_dc2, obj_orig=ou_moved_orig, is_deleted=True)
         self.assertFalse("description" in ou_cur)
 
-
     def test_ReplicateMoveObject7(self):
         """Verifies how a moved container is replicated between two DCs.
            This test should verify that:
@@ -1594,7 +1600,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         ou_cur = self._check_obj(sam_ldb=self.ldb_dc2, obj_orig=ou_moved_orig, is_deleted=True)
         self.assertFalse("description" in ou_cur)
 
-
     def test_ReplicateMoveObject8(self):
         """Verifies how a moved container is replicated between two DCs.
            This test should verify that:
@@ -1660,7 +1665,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         ou_cur = self._check_obj(sam_ldb=self.ldb_dc2, obj_orig=ou_moved_orig, is_deleted=True)
         self.assertFalse("description" in ou_cur)
 
-
     def test_ReplicateMoveObject9(self):
         """Verifies how a moved container is replicated between two DCs.
            This test should verify that:
@@ -1727,7 +1731,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         ou_cur = self._check_obj(sam_ldb=self.ldb_dc2, obj_orig=ou_moved_orig, is_deleted=True)
         self.assertFalse("description" in ou_cur)
 
-
     def test_ReplicateMoveObject10(self):
         """Verifies how a moved container is replicated between two DCs.
            This test should verify that:
@@ -1776,7 +1779,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         ou_cur = self._check_obj(sam_ldb=self.ldb_dc1, obj_orig=ou_orig, is_deleted=True)
         self.assertFalse("description" in ou_cur)
 
-
     def test_ReplicateMoveObject11(self):
         """Verifies how a moved container is replicated between two DCs.
            This test should verify that:
@@ -1826,7 +1828,6 @@ class DrsMoveObjectTestCase(drs_base.DrsBaseTestCase):
         self.assertFalse("description" in ou_cur)
 
 
-
 class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
     def setUp(self):
@@ -1835,65 +1836,67 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         self._disable_all_repl(self.dnsname_dc1)
         self._disable_all_repl(self.dnsname_dc2)
 
+        self.top_ou = samba.tests.create_test_ou(self.ldb_dc1,
+                                                 "replica_move")
+
         # make sure DCs are synchronized before the test
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
         self._net_drs_replicate(DC=self.dnsname_dc1, fromDC=self.dnsname_dc2, forced=True)
 
         self.ou1_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU1")
-        self.ou1_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou1_dn.add_base(self.top_ou)
         self.ou1 = {}
         self.ou1["dn"] = self.ou1_dn
         self.ou1["objectclass"] = "organizationalUnit"
         self.ou1["ou"] = self.ou1_dn.get_component_value(0)
 
         self.ou2_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU2,OU=DrsOU1")
-        self.ou2_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou2_dn.add_base(self.top_ou)
         self.ou2 = {}
         self.ou2["dn"] = self.ou2_dn
         self.ou2["objectclass"] = "organizationalUnit"
         self.ou2["ou"] = self.ou2_dn.get_component_value(0)
 
         self.ou2b_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU2B,OU=DrsOU1")
-        self.ou2b_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou2b_dn.add_base(self.top_ou)
         self.ou2b = {}
         self.ou2b["dn"] = self.ou2b_dn
         self.ou2b["objectclass"] = "organizationalUnit"
         self.ou2b["ou"] = self.ou2b_dn.get_component_value(0)
 
         self.ou2c_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU2C,OU=DrsOU1")
-        self.ou2c_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou2c_dn.add_base(self.top_ou)
 
         self.ou3_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU3,OU=DrsOU2,OU=DrsOU1")
-        self.ou3_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou3_dn.add_base(self.top_ou)
         self.ou3 = {}
         self.ou3["dn"] = self.ou3_dn
         self.ou3["objectclass"] = "organizationalUnit"
         self.ou3["ou"] = self.ou3_dn.get_component_value(0)
 
         self.ou4_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU4,OU=DrsOU3,OU=DrsOU2,OU=DrsOU1")
-        self.ou4_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou4_dn.add_base(self.top_ou)
         self.ou4 = {}
         self.ou4["dn"] = self.ou4_dn
         self.ou4["objectclass"] = "organizationalUnit"
         self.ou4["ou"] = self.ou4_dn.get_component_value(0)
 
         self.ou5_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU5,OU=DrsOU4,OU=DrsOU3,OU=DrsOU2,OU=DrsOU1")
-        self.ou5_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou5_dn.add_base(self.top_ou)
         self.ou5 = {}
         self.ou5["dn"] = self.ou5_dn
         self.ou5["objectclass"] = "organizationalUnit"
         self.ou5["ou"] = self.ou5_dn.get_component_value(0)
 
         self.ou6_dn = ldb.Dn(self.ldb_dc1, "OU=DrsOU6,OU=DrsOU5,OU=DrsOU4,OU=DrsOU3,OU=DrsOU2,OU=DrsOU1")
-        self.ou6_dn.add_base(self.ldb_dc1.get_default_basedn())
+        self.ou6_dn.add_base(self.top_ou)
         self.ou6 = {}
         self.ou6["dn"] = self.ou6_dn
         self.ou6["objectclass"] = "organizationalUnit"
         self.ou6["ou"] = self.ou6_dn.get_component_value(0)
 
-
     def tearDown(self):
-        self.ldb_dc1.delete(self.ou1_dn, ["tree_delete:1"])
+        self.ldb_dc1.delete(self.top_ou, ["tree_delete:1"])
         self._enable_all_repl(self.dnsname_dc1)
         self._enable_all_repl(self.dnsname_dc2)
         super(DrsMoveBetweenTreeOfObjectTestCase, self).tearDown()
@@ -1934,7 +1937,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         return user_cur
 
-
     def test_ReplicateMoveInTree1(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -1949,7 +1951,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -1989,7 +1993,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
-
     def test_ReplicateMoveInTree2(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -2005,7 +2008,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2083,7 +2088,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         user_cur = self._check_obj(sam_ldb=self.ldb_dc2, obj_orig=user_moved_orig, is_deleted=True)
         self.assertFalse("description" in user_cur)
 
-
     def test_ReplicateMoveInTree3(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -2099,7 +2103,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2167,7 +2173,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
-
     def test_ReplicateMoveInTree3b(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -2188,7 +2193,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2271,7 +2278,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
-
     def test_ReplicateMoveInTree4(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -2288,7 +2294,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2331,7 +2339,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
-
     def test_ReplicateAddInOU(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -2348,7 +2355,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2376,7 +2385,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
-
     def test_ReplicateAddInMovedOU(self):
         """Verifies how an object is replicated between two DCs.
            This test should verify that:
@@ -2394,7 +2402,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2431,7 +2441,6 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
         # trigger replication from DC1 to DC2, for cleanup
         self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, forced=True)
 
-
     def test_ReplicateAddInConflictOU_time(self):
         """Verifies how an object is replicated between two DCs, when created in an ambigious location
            This test should verify that:
@@ -2449,7 +2458,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,
@@ -2527,7 +2538,9 @@ class DrsMoveBetweenTreeOfObjectTestCase(drs_base.DrsBaseTestCase):
 
         # create user on DC1
         self.ldb_dc1.newuser(username=username,
-                             userou="ou=%s" % self.ou1_dn.get_component_value(0),
+                             userou="ou=%s,ou=%s"
+                             % (self.ou1_dn.get_component_value(0),
+                                self.top_ou.get_component_value(0)),
                              password=None, setpassword=False)
         ldb_res = self.ldb_dc1.search(base=self.ou1_dn,
                                       scope=SCOPE_SUBTREE,