source: vendor/3.5.0/source3/stf/smbcontrol.py

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 7.8 KB
Line 
1#!/usr/bin/python
2#
3# Test for smbcontrol command line argument handling.
4#
5
6import comfychair
7
8class NoArgs(comfychair.TestCase):
9 """Test no arguments produces usage message."""
10 def runtest(self):
11 out = self.runcmd("smbcontrol", expectedResult = 1)
12 self.assert_re_match("Usage: smbcontrol", out[1])
13
14class OneArg(comfychair.TestCase):
15 """Test single argument produces usage message."""
16 def runtest(self):
17 out = self.runcmd("smbcontrol foo", expectedResult = 1)
18 self.assert_re_match("Usage: smbcontrol", out[1])
19
20class SmbdDest(comfychair.TestCase):
21 """Test the broadcast destination 'smbd'."""
22 def runtest(self):
23 out = self.runcmd("smbcontrol smbd noop")
24
25class NmbdDest(comfychair.TestCase):
26 """Test the destination 'nmbd'."""
27 def runtest(self):
28 # We need a way to start/stop/whatever nmbd
29 raise comfychair.NotRunError, "not implemented"
30
31class PidDest(comfychair.TestCase):
32 """Test a pid number destination'."""
33 def runtest(self):
34 out = self.runcmd("smbcontrol 1234 noop")
35
36class SelfDest(comfychair.TestCase):
37 """Test the destination 'self'."""
38 def runtest(self):
39 out = self.runcmd("smbcontrol self noop")
40
41class WinbinddDest(comfychair.TestCase):
42 """Test the destination 'winbindd'."""
43 def runtest(self):
44 # We need a way to start/stop/whatever winbindd
45 raise comfychair.NotRunError, "not implemented"
46
47class BadDest(comfychair.TestCase):
48 """Test a bad destination."""
49 def runtest(self):
50 out = self.runcmd("smbcontrol foo noop", expectedResult = 1)
51
52class BadCmd(comfychair.TestCase):
53 """Test a bad command."""
54 def runtest(self):
55 out = self.runcmd("smbcontrol self spottyfoot", expectedResult = 1)
56 self.assert_re_match("smbcontrol: unknown command", out[1]);
57
58class NoArgCmdTest(comfychair.TestCase):
59 """A test class that tests a command with no argument."""
60 def runtest(self):
61 self.require_root()
62 out = self.runcmd("smbcontrol self %s" % self.cmd)
63 out = self.runcmd("smbcontrol self %s spottyfoot" % self.cmd,
64 expectedResult = 1)
65
66class ForceElection(NoArgCmdTest):
67 """Test a force-election message."""
68 def setup(self):
69 self.cmd = "force-election"
70
71class SamSync(NoArgCmdTest):
72 """Test a samsync message."""
73 def setup(self):
74 self.cmd = "samsync"
75
76class SamRepl(NoArgCmdTest):
77 """Test a samrepl message."""
78 def setup(self):
79 self.cmd = "samrepl"
80
81class DmallocChanged(NoArgCmdTest):
82 """Test a dmalloc-changed message."""
83 def setup(self):
84 self.cmd = "dmalloc-log-changed"
85
86class DmallocMark(NoArgCmdTest):
87 """Test a dmalloc-mark message."""
88 def setup(self):
89 self.cmd = "dmalloc-mark"
90
91class Shutdown(NoArgCmdTest):
92 """Test a shutdown message."""
93 def setup(self):
94 self.cmd = "shutdown"
95
96class Ping(NoArgCmdTest):
97 """Test a ping message."""
98 def setup(self):
99 self.cmd = "ping"
100
101class Debuglevel(NoArgCmdTest):
102 """Test a debuglevel message."""
103 def setup(self):
104 self.cmd = "debuglevel"
105
106class OneArgCmdTest(comfychair.TestCase):
107 """A test class that tests a command with one argument."""
108 def runtest(self):
109 self.require_root()
110 out = self.runcmd("smbcontrol self %s spottyfoot" % self.cmd)
111 out = self.runcmd("smbcontrol self %s" % self.cmd, expectedResult = 1)
112
113class DrvUpgrade(OneArgCmdTest):
114 """Test driver upgrade message."""
115 def setup(self):
116 self.cmd = "drvupgrade"
117
118class CloseShare(OneArgCmdTest):
119 """Test close share message."""
120 def setup(self):
121 self.cmd = "close-share"
122
123class Debug(OneArgCmdTest):
124 """Test a debug message."""
125 def setup(self):
126 self.cmd = "debug"
127
128class PrintNotify(comfychair.TestCase):
129 """Test print notification commands."""
130 def runtest(self):
131
132 # No subcommand
133
134 out = self.runcmd("smbcontrol self printnotify", expectedResult = 1)
135 self.assert_re_match("Must specify subcommand", out[1]);
136
137 # Invalid subcommand name
138
139 out = self.runcmd("smbcontrol self printnotify spottyfoot",
140 expectedResult = 1)
141 self.assert_re_match("Invalid subcommand", out[1]);
142
143 # Queue commands
144
145 for cmd in ["queuepause", "queueresume"]:
146
147 out = self.runcmd("smbcontrol self printnotify %s" % cmd,
148 expectedResult = 1)
149 self.assert_re_match("Usage:", out[1])
150
151 out = self.runcmd("smbcontrol self printnotify %s spottyfoot"
152 % cmd)
153
154 # Job commands
155
156 for cmd in ["jobpause", "jobresume", "jobdelete"]:
157
158 out = self.runcmd("smbcontrol self printnotify %s" % cmd,
159 expectedResult = 1)
160 self.assert_re_match("Usage:", out[1])
161
162 out = self.runcmd("smbcontrol self printnotify %s spottyfoot"
163 % cmd, expectedResult = 1)
164 self.assert_re_match("Usage:", out[1])
165
166 out = self.runcmd("smbcontrol self printnotify %s spottyfoot 123"
167 % cmd)
168
169 # Printer properties
170
171 out = self.runcmd("smbcontrol self printnotify printer",
172 expectedResult = 1)
173 self.assert_re_match("Usage", out[1])
174
175 out = self.runcmd("smbcontrol self printnotify printer spottyfoot",
176 expectedResult = 1)
177 self.assert_re_match("Usage", out[1])
178
179 for cmd in ["comment", "port", "driver"]:
180
181 out = self.runcmd("smbcontrol self printnotify printer spottyfoot "
182 "%s" % cmd, expectedResult = 1)
183 self.assert_re_match("Usage", out[1])
184
185 out = self.runcmd("smbcontrol self printnotify printer spottyfoot "
186 "%s value" % cmd)
187
188class Profile(comfychair.TestCase):
189 """Test setting the profiling level."""
190 def runtest(self):
191 self.require_root()
192 out = self.runcmd("smbcontrol self profile", expectedResult = 1)
193 self.assert_re_match("Usage", out[1])
194
195 out = self.runcmd("smbcontrol self profile spottyfoot",
196 expectedResult = 1)
197 self.assert_re_match("Unknown", out[1])
198
199 for cmd in ["off", "count", "on", "flush"]:
200 out = self.runcmd("smbcontrol self profile %s" % cmd)
201
202class ProfileLevel(comfychair.TestCase):
203 """Test requesting the current profiling level."""
204 def runtest(self):
205 self.require_root()
206 out = self.runcmd("smbcontrol self profilelevel spottyfoot",
207 expectedResult = 1)
208 self.assert_re_match("Usage", out[1])
209
210 out = self.runcmd("smbcontrol self profilelevel")
211
212class TimeoutArg(comfychair.TestCase):
213 """Test the --timeout argument."""
214 def runtest(self):
215 out = self.runcmd("smbcontrol --timeout 5 self noop")
216 out = self.runcmd("smbcontrol --timeout spottyfoot self noop",
217 expectedResult = 1)
218
219class ConfigFileArg(comfychair.TestCase):
220 """Test the --configfile argument."""
221 def runtest(self):
222 out = self.runcmd("smbcontrol --configfile /dev/null self noop")
223
224class BogusArg(comfychair.TestCase):
225 """Test a bogus command line argument."""
226 def runtest(self):
227 out = self.runcmd("smbcontrol --bogus self noop", expectedResult = 1)
228
229tests = [NoArgs, OneArg, SmbdDest, NmbdDest, WinbinddDest, PidDest,
230 SelfDest, BadDest, BadCmd, Debug, ForceElection, SamSync,
231 SamRepl, DmallocMark, DmallocChanged, Shutdown, DrvUpgrade,
232 CloseShare, Ping, Debuglevel, PrintNotify, Profile, ProfileLevel,
233 TimeoutArg, ConfigFileArg, BogusArg]
234
235# Handle execution of this file as a main program
236
237if __name__ == '__main__':
238 comfychair.main(tests)
Note: See TracBrowser for help on using the repository browser.