summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>2022-08-14 12:08:16 +1200
committerDouglas Bagnall <dbagnall@samba.org>2022-09-06 21:12:36 +0000
commit98f5332b46fbddd44366ccaa2b11346a1d2bc10d (patch)
tree659557cc5e875c62c4edfffa145b4a6006cdc8a8 /python
parent0a5298f0c191c1a6d5451b45ee1fc37c960f4166 (diff)
downloadsamba-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.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())