summaryrefslogtreecommitdiff
path: root/python/samba
diff options
context:
space:
mode:
Diffstat (limited to 'python/samba')
-rw-r--r--python/samba/tests/samba_tool/base.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/python/samba/tests/samba_tool/base.py b/python/samba/tests/samba_tool/base.py
index 4e0f1d0604c..728ed1139d0 100644
--- a/python/samba/tests/samba_tool/base.py
+++ b/python/samba/tests/samba_tool/base.py
@@ -38,6 +38,9 @@ def truncate_string(s, cutoff=100):
class SambaToolCmdTest(samba.tests.BlackboxTestCase):
+ # Use a class level reference to StringIO, which subclasses can
+ # override if they need to (to e.g. add a lying isatty() method).
+ stringIO = StringIO
def getSamDB(self, *argv):
"""a convenience function to get a samdb instance so that we can query it"""
@@ -72,8 +75,8 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase):
def runcmd(self, name, *args):
"""run a single level command"""
cmd = cmd_sambatool.subcommands[name]
- cmd.outf = StringIO()
- cmd.errf = StringIO()
+ cmd.outf = self.stringIO()
+ cmd.errf = self.stringIO()
result = cmd._run("samba-tool %s" % name, *args)
return (result, cmd.outf.getvalue(), cmd.errf.getvalue())
@@ -83,8 +86,8 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase):
# that the .outf StringIO assignment is overridden if we use
# runcmd, so we can't capture stdout and stderr
cmd = cmd_sambatool.subcommands[name].subcommands[sub]
- cmd.outf = StringIO()
- cmd.errf = StringIO()
+ cmd.outf = self.stringIO()
+ cmd.errf = self.stringIO()
result = cmd._run("samba-tool %s %s" % (name, sub), *args)
return (result, cmd.outf.getvalue(), cmd.errf.getvalue())
@@ -100,8 +103,8 @@ class SambaToolCmdTest(samba.tests.BlackboxTestCase):
for sub in sublevels:
cmd = cmd.subcommands[sub]
cmd_str += " %s" % sub
- cmd.outf = StringIO()
- cmd.errf = StringIO()
+ cmd.outf = self.stringIO()
+ cmd.errf = self.stringIO()
result = cmd._run(cmd_str, *args)
return (result, cmd.outf.getvalue(), cmd.errf.getvalue())