ntdb: switch between secrets.tdb and secrets.ntdb depending on 'use ntdb'
[obnox/samba/samba-obnox.git] / source4 / scripting / python / samba / tests / upgradeprovision.py
index f0306fe6a1aa421425507a076775c688f1a3b057..93a6731c8307cf60038d880481faf94bcbd8e476 100644 (file)
@@ -1,5 +1,3 @@
-#!/usr/bin/python
-
 # Unix SMB/CIFS implementation.
 # Copyright (C) Jelmer Vernooij <jelmer@samba.org> 2007-2008
 #
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+"""Tests for samba.upgradeprovision."""
+
 import os
-from samba.upgradehelpers import  (usn_in_range, dn_sort,
+from samba.upgradehelpers import (usn_in_range, dn_sort,
                                   get_diff_sddls, update_secrets,
                                   construct_existor_expr)
 
 from samba.tests.provision import create_dummy_secretsdb
-from samba.tests import env_loadparm, TestCaseInTempDir
+from samba.tests import TestCaseInTempDir
 from samba import Ldb
-from ldb import SCOPE_SUBTREE
+from ldb import SCOPE_BASE
 import samba.tests
 
-lp = env_loadparm()
-
 def dummymessage(a=None, b=None):
-    if 0:
-        print "none"
+    pass
 
 
 class UpgradeProvisionTestCase(TestCaseInTempDir):
@@ -60,7 +57,8 @@ class UpgradeProvisionTestCase(TestCaseInTempDir):
         self.assertEquals(dn_sort("dc=toto,dc=tata",
                                     "cn=foo,dc=toto,dc=tata"), -1)
         self.assertEquals(dn_sort("cn=bar, dc=toto,dc=tata",
-                                    "cn=foo, dc=toto,dc=tata"),-1)
+                                    "cn=foo, dc=toto,dc=tata"), -1)
+
     def test_get_diff_sddl(self):
         sddl = "O:SAG:DUD:AI(A;CIID;RPWPCRCCLCLORCWOWDSW;;;SA)\
 (A;CIID;RP LCLORC;;;AU)(A;CIID;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)S:AI(AU;CIIDSA;WP;;;WD)"
@@ -75,19 +73,19 @@ class UpgradeProvisionTestCase(TestCaseInTempDir):
         sddl5 = "O:SAG:DUD:AI(A;CIID;RPWPCRCCLCLORCWOWDSW;;;SA)\
 (A;CIID;RP LCLORC;;;AU)(A;CIID;RPWPCRCCDCLCLORCWOWDSDDTSW;;;SY)"
 
-        self.assertEquals(get_diff_sddls(sddl, sddl1) ,"")
+        self.assertEquals(get_diff_sddls(sddl, sddl1)"")
         txt = get_diff_sddls(sddl, sddl2)
-        self.assertEquals(txt ,"\tOwner mismatch: SA (in ref) BA(in current)\n")
+        self.assertEquals(txt"\tOwner mismatch: SA (in ref) BA(in current)\n")
         txt = get_diff_sddls(sddl, sddl3)
-        self.assertEquals(txt ,"\tGroup mismatch: DU (in ref) BA(in current)\n")
+        self.assertEquals(txt"\tGroup mismatch: DU (in ref) BA(in current)\n")
         txt = get_diff_sddls(sddl, sddl4)
         txtmsg = "\tPart dacl is different between reference and current here\
  is the detail:\n\t\t(A;CIID;RPWPCRCCLCLORCWOWDSW;;;BA) ACE is not present in\
  the reference\n\t\t(A;CIID;RPWPCRCCLCLORCWOWDSW;;;SA) ACE is not present in\
  the current\n"
-        self.assertEquals(txt , txtmsg)
+        self.assertEquals(txt, txtmsg)
         txt = get_diff_sddls(sddl, sddl5)
-        self.assertEquals(txt ,"\tCurrent ACL hasn't a sacl part\n")
+        self.assertEquals(txt"\tCurrent ACL hasn't a sacl part\n")
 
     def test_construct_existor_expr(self):
         res = construct_existor_expr([])
@@ -99,7 +97,9 @@ class UpgradeProvisionTestCase(TestCaseInTempDir):
         res = construct_existor_expr(["foo", "bar"])
         self.assertEquals(res, "(|(foo=*)(bar=*))")
 
+
 class UpdateSecretsTests(samba.tests.TestCaseInTempDir):
+
     def setUp(self):
         super(UpdateSecretsTests, self).setUp()
         self.referencedb = create_dummy_secretsdb(
@@ -121,14 +121,12 @@ class UpdateSecretsTests(samba.tests.TestCaseInTempDir):
     def test_update_modules(self):
         empty_db = self._getEmptyDb()
         update_secrets(self.referencedb, empty_db, dummymessage)
-        newmodules = empty_db.search(
-            expression="dn=@MODULES", base="", scope=SCOPE_SUBTREE)
-        refmodules = self.referencedb.search(
-            expression="dn=@MODULES", base="", scope=SCOPE_SUBTREE)
-        self.assertEquals(newmodules, refmodules)
+        newmodules = empty_db.search(base="@MODULES", scope=SCOPE_BASE)
+        refmodules = self.referencedb.search(base="@MODULES", scope=SCOPE_BASE)
+        self.assertEquals(newmodules.msgs, refmodules.msgs)
 
     def tearDown(self):
-        for name in ["ref.ldb", "secrets.ldb"]:
+        for name in ["ref.ldb", "secrets.ldb", "secrets.tdb", "secrets.tdb.bak", "secrets.ntdb"]:
             path = os.path.join(self.tempdir, name)
             if os.path.exists(path):
                 os.unlink(path)