diff options
| author | Douglas Bagnall <douglas.bagnall@catalyst.net.nz> | 2022-08-14 12:08:16 +1200 |
|---|---|---|
| committer | Douglas Bagnall <dbagnall@samba.org> | 2022-09-06 21:12:36 +0000 |
| commit | 98f5332b46fbddd44366ccaa2b11346a1d2bc10d (patch) | |
| tree | 659557cc5e875c62c4edfffa145b4a6006cdc8a8 /python | |
| parent | 0a5298f0c191c1a6d5451b45ee1fc37c960f4166 (diff) | |
| download | samba-98f5332b46fbddd44366ccaa2b11346a1d2bc10d.tar.gz samba-98f5332b46fbddd44366ccaa2b11346a1d2bc10d.tar.bz2 samba-98f5332b46fbddd44366ccaa2b11346a1d2bc10d.zip | |
pytest: SambaToolCmdTest allows easier StringIO replacement
Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Joseph Sutton <josephsutton@catalyst.net.nz>
Diffstat (limited to 'python')
| -rw-r--r-- | python/samba/tests/samba_tool/base.py | 15 |
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()) |
