1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-23 17:34:34 +03:00
samba-mirror/source3/stf/smbcontrol.py
Tim Potter 2988370510 Tests for smbcontrol.
(This used to be commit 7bf68a533e)
2003-04-09 05:57:00 +00:00

239 lines
7.8 KiB
Python
Executable File

#!/usr/bin/python
#
# Test for smbcontrol command line argument handling.
#
import comfychair
class NoArgs(comfychair.TestCase):
"""Test no arguments produces usage message."""
def runtest(self):
out = self.runcmd("smbcontrol", expectedResult = 1)
self.assert_re_match("Usage: smbcontrol", out[1])
class OneArg(comfychair.TestCase):
"""Test single argument produces usage message."""
def runtest(self):
out = self.runcmd("smbcontrol foo", expectedResult = 1)
self.assert_re_match("Usage: smbcontrol", out[1])
class SmbdDest(comfychair.TestCase):
"""Test the broadcast destination 'smbd'."""
def runtest(self):
out = self.runcmd("smbcontrol smbd noop")
class NmbdDest(comfychair.TestCase):
"""Test the destination 'nmbd'."""
def runtest(self):
# We need a way to start/stop/whatever nmbd
raise comfychair.NotRunError, "not implemented"
class PidDest(comfychair.TestCase):
"""Test a pid number destination'."""
def runtest(self):
out = self.runcmd("smbcontrol 1234 noop")
class SelfDest(comfychair.TestCase):
"""Test the destination 'self'."""
def runtest(self):
out = self.runcmd("smbcontrol self noop")
class WinbinddDest(comfychair.TestCase):
"""Test the destination 'winbindd'."""
def runtest(self):
# We need a way to start/stop/whatever winbindd
raise comfychair.NotRunError, "not implemented"
class BadDest(comfychair.TestCase):
"""Test a bad destination."""
def runtest(self):
out = self.runcmd("smbcontrol foo noop", expectedResult = 1)
class BadCmd(comfychair.TestCase):
"""Test a bad command."""
def runtest(self):
out = self.runcmd("smbcontrol self spottyfoot", expectedResult = 1)
self.assert_re_match("smbcontrol: unknown command", out[1]);
class NoArgCmdTest(comfychair.TestCase):
"""A test class that tests a command with no argument."""
def runtest(self):
self.require_root()
out = self.runcmd("smbcontrol self %s" % self.cmd)
out = self.runcmd("smbcontrol self %s spottyfoot" % self.cmd,
expectedResult = 1)
class ForceElection(NoArgCmdTest):
"""Test a force-election message."""
def setup(self):
self.cmd = "force-election"
class SamSync(NoArgCmdTest):
"""Test a samsync message."""
def setup(self):
self.cmd = "samsync"
class SamRepl(NoArgCmdTest):
"""Test a samrepl message."""
def setup(self):
self.cmd = "samrepl"
class DmallocChanged(NoArgCmdTest):
"""Test a dmalloc-changed message."""
def setup(self):
self.cmd = "dmalloc-log-changed"
class DmallocMark(NoArgCmdTest):
"""Test a dmalloc-mark message."""
def setup(self):
self.cmd = "dmalloc-mark"
class Shutdown(NoArgCmdTest):
"""Test a shutdown message."""
def setup(self):
self.cmd = "shutdown"
class Ping(NoArgCmdTest):
"""Test a ping message."""
def setup(self):
self.cmd = "ping"
class Debuglevel(NoArgCmdTest):
"""Test a debuglevel message."""
def setup(self):
self.cmd = "debuglevel"
class OneArgCmdTest(comfychair.TestCase):
"""A test class that tests a command with one argument."""
def runtest(self):
self.require_root()
out = self.runcmd("smbcontrol self %s spottyfoot" % self.cmd)
out = self.runcmd("smbcontrol self %s" % self.cmd, expectedResult = 1)
class DrvUpgrade(OneArgCmdTest):
"""Test driver upgrade message."""
def setup(self):
self.cmd = "drvupgrade"
class CloseShare(OneArgCmdTest):
"""Test close share message."""
def setup(self):
self.cmd = "close-share"
class Debug(OneArgCmdTest):
"""Test a debug message."""
def setup(self):
self.cmd = "debug"
class PrintNotify(comfychair.TestCase):
"""Test print notification commands."""
def runtest(self):
# No subcommand
out = self.runcmd("smbcontrol self printnotify", expectedResult = 1)
self.assert_re_match("Must specify subcommand", out[1]);
# Invalid subcommand name
out = self.runcmd("smbcontrol self printnotify spottyfoot",
expectedResult = 1)
self.assert_re_match("Invalid subcommand", out[1]);
# Queue commands
for cmd in ["queuepause", "queueresume"]:
out = self.runcmd("smbcontrol self printnotify %s" % cmd,
expectedResult = 1)
self.assert_re_match("Usage:", out[1])
out = self.runcmd("smbcontrol self printnotify %s spottyfoot"
% cmd)
# Job commands
for cmd in ["jobpause", "jobresume", "jobdelete"]:
out = self.runcmd("smbcontrol self printnotify %s" % cmd,
expectedResult = 1)
self.assert_re_match("Usage:", out[1])
out = self.runcmd("smbcontrol self printnotify %s spottyfoot"
% cmd, expectedResult = 1)
self.assert_re_match("Usage:", out[1])
out = self.runcmd("smbcontrol self printnotify %s spottyfoot 123"
% cmd)
# Printer properties
out = self.runcmd("smbcontrol self printnotify printer",
expectedResult = 1)
self.assert_re_match("Usage", out[1])
out = self.runcmd("smbcontrol self printnotify printer spottyfoot",
expectedResult = 1)
self.assert_re_match("Usage", out[1])
for cmd in ["comment", "port", "driver"]:
out = self.runcmd("smbcontrol self printnotify printer spottyfoot "
"%s" % cmd, expectedResult = 1)
self.assert_re_match("Usage", out[1])
out = self.runcmd("smbcontrol self printnotify printer spottyfoot "
"%s value" % cmd)
class Profile(comfychair.TestCase):
"""Test setting the profiling level."""
def runtest(self):
self.require_root()
out = self.runcmd("smbcontrol self profile", expectedResult = 1)
self.assert_re_match("Usage", out[1])
out = self.runcmd("smbcontrol self profile spottyfoot",
expectedResult = 1)
self.assert_re_match("Unknown", out[1])
for cmd in ["off", "count", "on", "flush"]:
out = self.runcmd("smbcontrol self profile %s" % cmd)
class ProfileLevel(comfychair.TestCase):
"""Test requesting the current profiling level."""
def runtest(self):
self.require_root()
out = self.runcmd("smbcontrol self profilelevel spottyfoot",
expectedResult = 1)
self.assert_re_match("Usage", out[1])
out = self.runcmd("smbcontrol self profilelevel")
class TimeoutArg(comfychair.TestCase):
"""Test the --timeout argument."""
def runtest(self):
out = self.runcmd("smbcontrol --timeout 5 self noop")
out = self.runcmd("smbcontrol --timeout spottyfoot self noop",
expectedResult = 1)
class ConfigFileArg(comfychair.TestCase):
"""Test the --configfile argument."""
def runtest(self):
out = self.runcmd("smbcontrol --configfile /dev/null self noop")
class BogusArg(comfychair.TestCase):
"""Test a bogus command line argument."""
def runtest(self):
out = self.runcmd("smbcontrol --bogus self noop", expectedResult = 1)
tests = [NoArgs, OneArg, SmbdDest, NmbdDest, WinbinddDest, PidDest,
SelfDest, BadDest, BadCmd, Debug, ForceElection, SamSync,
SamRepl, DmallocMark, DmallocChanged, Shutdown, DrvUpgrade,
CloseShare, Ping, Debuglevel, PrintNotify, Profile, ProfileLevel,
TimeoutArg, ConfigFileArg, BogusArg]
# Handle execution of this file as a main program
if __name__ == '__main__':
comfychair.main(tests)