KCC: tests/ldif_utils tests ldif import
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Thu, 16 Apr 2015 05:26:51 +0000 (17:26 +1200)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 30 May 2015 19:05:24 +0000 (21:05 +0200)
Thanks as usual to Andrew Bartlett for his help.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Garming Sam <garming@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/tests/ldif_utils.py

index 975810a8b099a01931d820fdb2419cd791fc81d0..73eccfe2c5d00de8397a711b43ef823a27329f4f 100644 (file)
 
 import samba
 import os
-import sys
 from tempfile import mkdtemp
-import shutil
 
 import samba.tests
 from samba import ldif_utils
 from samba import ldb
+from samba.dcerpc import misc
+
 
 from samba.param import LoadParm
 from samba.credentials import Credentials
 from samba.samdb import SamDB
-import itertools
 
 MULTISITE_LDIF = os.path.join(os.environ['SRCDIR_ABS'],
                               "testdata/ldif-utils-test-multisite.ldif")
@@ -60,6 +59,7 @@ MULTISITE_LDIF_DSAS = (
      "Default-First-Site-Name"),
 )
 
+
 class LdifUtilTests(samba.tests.TestCase):
     def setUp(self):
         super(LdifUtilTests, self).setUp()
@@ -82,6 +82,21 @@ class LdifUtilTests(samba.tests.TestCase):
         samdb = ldif_utils.ldif_to_samdb(dburl, self.lp, MULTISITE_LDIF)
         self.assertIsInstance(samdb, SamDB)
 
+        dsa = ("CN=WIN01,CN=Servers,CN=Default-First-Site-Name,CN=Sites,"
+               "CN=Configuration,DC=ad,DC=samba,DC=example,DC=com")
+        res = samdb.search(ldb.Dn(samdb, "CN=NTDS Settings," + dsa),
+                           scope=ldb.SCOPE_BASE, attrs=["objectGUID"])
+
+        ntds_guid = misc.GUID(samdb.get_ntds_GUID())
+        self.assertEqual(misc.GUID(res[0]["objectGUID"][0]), ntds_guid)
+
+        service_name_res = samdb.search(base="",
+                                        scope=ldb.SCOPE_BASE,
+                                        attrs=["dsServiceName"])
+        dn = ldb.Dn(samdb,
+                    service_name_res[0]["dsServiceName"][0])
+        self.assertEqual(dn, ldb.Dn(samdb, "CN=NTDS Settings," + dsa))
+
     def test_ldif_to_samdb_forced_local_dsa(self):
         for dsa, site in MULTISITE_LDIF_DSAS:
             dburl = os.path.join(self.tmpdir, "ldif-to-samba-forced-local-dsa"
@@ -90,9 +105,19 @@ class LdifUtilTests(samba.tests.TestCase):
                                              forced_local_dsa=dsa)
             self.assertIsInstance(samdb, SamDB)
             self.assertEqual(samdb.server_site_name(), site)
-            dn = ldb.Dn(samdb, "<GUID=%s>" % samdb.get_ntds_GUID())
-            print dn
 
+            res = samdb.search(ldb.Dn(samdb, "CN=NTDS Settings," + dsa),
+                               scope=ldb.SCOPE_BASE, attrs=["objectGUID"])
+
+            ntds_guid = misc.GUID(samdb.get_ntds_GUID())
+            self.assertEqual(misc.GUID(res[0]["objectGUID"][0]), ntds_guid)
+
+            service_name_res = samdb.search(base="",
+                                            scope=ldb.SCOPE_BASE,
+                                            attrs=["dsServiceName"])
+            dn = ldb.Dn(samdb,
+                        service_name_res[0]["dsServiceName"][0])
+            self.assertEqual(dn, ldb.Dn(samdb, "CN=NTDS Settings," + dsa))
 
     def samdb_to_ldif_file(self):
         #samdb_to_ldif_file(samdb, dburl, lp, creds, ldif_file):