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"""
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())
# 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())
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())