PEP8: fix E225: missing whitespace around operator
[nivanova/samba-autobuild/.git] / python / samba / tests / samba_tool / base.py
index de257e3db09a96476337e26e0bb1bb2559e4adfa..8e2e2457e126a0af8d8c314b0175576a55474847 100644 (file)
@@ -88,6 +88,23 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase):
         result = cmd._run("samba-tool %s %s" % (name, sub), *args)
         return (result, cmd.outf.getvalue(), cmd.errf.getvalue())
 
         result = cmd._run("samba-tool %s %s" % (name, sub), *args)
         return (result, cmd.outf.getvalue(), cmd.errf.getvalue())
 
+    def runsublevelcmd(self, name, sublevels, *args):
+        """run a command with any number of sub command levels"""
+        # Same as runsubcmd, except this handles a varying number of sub-command
+        # levels, e.g. 'samba-tool domain passwordsettings pso set', whereas
+        # runsubcmd() only handles exactly one level of sub-commands.
+        # First, traverse the levels of sub-commands to get the actual cmd
+        # object we'll run, and construct the cmd string along the way
+        cmd = cmd_sambatool.subcommands[name]
+        cmd_str = "samba-tool %s" % name
+        for sub in sublevels:
+            cmd = cmd.subcommands[sub]
+            cmd_str += " %s" % sub
+        cmd.outf = StringIO()
+        cmd.errf = StringIO()
+        result = cmd._run(cmd_str, *args)
+        return (result, cmd.outf.getvalue(), cmd.errf.getvalue())
+
     def assertCmdSuccess(self, exit, out, err, msg=""):
         self.assertIsNone(exit, msg="exit[%s] stdout[%s] stderr[%s]: %s" % (
                           exit, out, err, msg))
     def assertCmdSuccess(self, exit, out, err, msg=""):
         self.assertIsNone(exit, msg="exit[%s] stdout[%s] stderr[%s]: %s" % (
                           exit, out, err, msg))
@@ -96,22 +113,23 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase):
         self.assertIsNotNone(val, msg)
 
     def assertMatch(self, base, string, msg=None):
         self.assertIsNotNone(val, msg)
 
     def assertMatch(self, base, string, msg=None):
+        # Note: we should stop doing this and just use self.assertIn()
         if msg is None:
             msg = "%r is not in %r" % (truncate_string(string),
                                        truncate_string(base))
         if msg is None:
             msg = "%r is not in %r" % (truncate_string(string),
                                        truncate_string(base))
-        self.assertTrue(string in base, msg)
+        self.assertIn(string, base, msg)
 
     def randomName(self, count=8):
         """Create a random name, cap letters and numbers, and always starting with a letter"""
         name = random.choice(string.ascii_uppercase)
 
     def randomName(self, count=8):
         """Create a random name, cap letters and numbers, and always starting with a letter"""
         name = random.choice(string.ascii_uppercase)
-        name += ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase+ string.digits) for x in range(count - 1))
+        name += ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for x in range(count - 1))
         return name
 
     def randomPass(self, count=16):
         name = random.choice(string.ascii_uppercase)
         name += random.choice(string.digits)
         name += random.choice(string.ascii_lowercase)
         return name
 
     def randomPass(self, count=16):
         name = random.choice(string.ascii_uppercase)
         name += random.choice(string.digits)
         name += random.choice(string.ascii_lowercase)
-        name += ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase+ string.digits) for x in range(count - 3))
+        name += ''.join(random.choice(string.ascii_uppercase + string.ascii_lowercase + string.digits) for x in range(count - 3))
         return name
 
     def randomXid(self):
         return name
 
     def randomXid(self):