diff options
author | Andrew Tridgell <tridge@samba.org> | 2010-11-19 14:08:18 +1100 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2010-11-19 15:17:44 +1100 |
commit | 7bfc60e40cae4d71301be27d5c44ce99a471a62b (patch) | |
tree | 85e77456f71ae2a55ef4477b33418f96df6eb1b1 | |
parent | 8f1df5726576f045f9c9a3305f388d7d823750e6 (diff) | |
download | samba-7bfc60e40cae4d71301be27d5c44ce99a471a62b.tar.gz samba-7bfc60e40cae4d71301be27d5c44ce99a471a62b.tar.bz2 samba-7bfc60e40cae4d71301be27d5c44ce99a471a62b.zip |
wintest: added del_files, write_file and casefold
-rwxr-xr-x | wintest/test-s4-howto.py | 23 | ||||
-rw-r--r-- | wintest/wintest.py | 24 |
2 files changed, 35 insertions, 12 deletions
diff --git a/wintest/test-s4-howto.py b/wintest/test-s4-howto.py index 6afea1a89b..b925973df1 100755 --- a/wintest/test-s4-howto.py +++ b/wintest/test-s4-howto.py @@ -6,8 +6,6 @@ import sys, os import optparse import wintest -vars = {} - def check_prerequesites(t): t.info("Checking prerequesites") t.setvar('HOSTNAME', t.cmd_output("hostname -s").strip()) @@ -30,8 +28,7 @@ def provision_s4(t, func_level="2008", interfaces=None): '''provision s4 as a DC''' t.info('Provisioning s4') t.chdir('${PREFIX}') - t.run_cmd("rm -rf etc private") - t.run_cmd("find var -type f | xargs rm -f") + t.del_files(["var", "etc", "private"]) options=' --function-level=%s -d${DEBUGLEVEL}' % func_level if interfaces: options += ' --option=interfaces=%s' % interfaces @@ -68,16 +65,15 @@ def test_smbclient(t): def create_shares(t): t.info("Adding test shares") t.chdir('${PREFIX}') - f = open("etc/smb.conf", mode='a') - f.write(t.substitute(''' + t.write_file("etc/smb.conf", ''' [test] path = ${PREFIX}/test read only = no [profiles] path = ${PREFIX}/var/profiles read only = no - ''')) - f.close() + ''', + mode='a') t.run_cmd("mkdir -p test") t.run_cmd("mkdir -p var/profiles") @@ -592,19 +588,28 @@ if __name__ == '__main__': parser.add_option("--list", action='store_true', default=False, help='list the available steps') parser.add_option("--rebase", action='store_true', default=False, help='do a git pull --rebase') parser.add_option("--clean", action='store_true', default=False, help='clean the tree') + parser.add_option("--prefix", type='string', default=None, help='override install prefix') + parser.add_option("--sourcetree", type='string', default=None, help='override sourcetree location') opts, args = parser.parse_args() if not opts.conf: - t.info("Please specify a config file with --conf") + print("Please specify a config file with --conf") sys.exit(1) t = wintest.wintest() t.load_config(opts.conf) t.set_skip(opts.skip) + if opts.list: t.list_steps_mode() + if opts.prefix: + t.setvar('PREFIX', opts.prefix) + + if opts.sourcetree: + t.setvar('SOURCETREE', opts.sourcetree) + if opts.rebase: t.info('rebasing') t.chdir('${SOURCETREE}') diff --git a/wintest/wintest.py b/wintest/wintest.py index f871462fba..5706f88aa9 100644 --- a/wintest/wintest.py +++ b/wintest/wintest.py @@ -96,6 +96,16 @@ class wintest(): '''chdir with substitution''' os.chdir(self.substitute(dir)) + def del_files(self, dirs): + '''delete all files in the given directory''' + for d in dirs: + self.run_cmd("find %s -type f | xargs rm -f" % d) + + def write_file(self, filename, text, mode='w'): + '''write to a file''' + f = open(self.substitute(filename), mode=mode) + f.write(self.substitute(text)) + f.close() def run_cmd(self, cmd, dir=".", show=None, output=False, checkfail=True): cmd = self.substitute(cmd) @@ -120,8 +130,13 @@ class wintest(): cmd = self.substitute(cmd) return self.run_cmd(cmd, output=True) - def cmd_contains(self, cmd, contains, nomatch=False, ordered=False, regex=False): + def cmd_contains(self, cmd, contains, nomatch=False, ordered=False, regex=False, + casefold=False): '''check that command output contains the listed strings''' + + if isinstance(contains, str): + contains = [contains] + out = self.cmd_output(cmd) self.info(out) for c in self.substitute(contains): @@ -133,6 +148,9 @@ class wintest(): else: start = m.start() end = m.end() + elif casefold: + start = out.upper().find(c.upper()) + end = start + len(c) else: start = out.find(c) end = start + len(c) @@ -146,12 +164,12 @@ class wintest(): out = out[end:] def retry_cmd(self, cmd, contains, retries=30, delay=2, wait_for_fail=False, - ordered=False, regex=False): + ordered=False, regex=False, casefold=False): '''retry a command a number of times''' while retries > 0: try: self.cmd_contains(cmd, contains, nomatch=wait_for_fail, - ordered=ordered, regex=regex) + ordered=ordered, regex=regex, casefold=casefold) return except: time.sleep(delay) |