1
0
mirror of https://github.com/moparisthebest/pacman synced 2024-08-13 17:03:46 -04:00

pactest: pass entire test to rule.check()

We were piecemeal passing fields from the test object in and it was getting
out of hand, and future work would have added yet another argument. Instead,
just pass the entire test object and entrust the rule to get what it needs.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2011-01-29 11:23:55 -06:00
parent ef86da97f5
commit ce089e1b97
2 changed files with 12 additions and 12 deletions

View File

@ -34,17 +34,16 @@ class pmrule(object):
return self.rule
return self.rule[:37] + '...'
def check(self, root, retcode, localdb, files):
def check(self, test):
"""
"""
success = 1
[test, args] = self.rule.split("=")
if test[0] == "!":
[testname, args] = self.rule.split("=")
if testname[0] == "!":
self.false = 1
test = test.lstrip("!")
[kind, case] = test.split("_")
testname = testname.lstrip("!")
[kind, case] = testname.split("_")
if "|" in args:
[key, value] = args.split("|", 1)
else:
@ -52,19 +51,20 @@ class pmrule(object):
if kind == "PACMAN":
if case == "RETCODE":
if retcode != int(key):
if test.retcode != int(key):
success = 0
elif case == "OUTPUT":
logfile = os.path.join(root, util.LOGFILE)
logfile = os.path.join(test.root, util.LOGFILE)
if not os.access(logfile, os.F_OK):
print "LOGFILE not found, cannot validate 'OUTPUT' rule"
success = 0
elif not util.grep(os.path.join(root, util.LOGFILE), key):
elif not util.grep(logfile, key):
success = 0
else:
print "PACMAN rule '%s' not found" % case
success = -1
elif kind == "PKG":
localdb = test.db["local"]
newpkg = localdb.db_read(key)
if not newpkg:
success = 0
@ -107,12 +107,12 @@ class pmrule(object):
print "PKG rule '%s' not found" % case
success = -1
elif kind == "FILE":
filename = os.path.join(root, key)
filename = os.path.join(test.root, key)
if case == "EXIST":
if not os.path.isfile(filename):
success = 0
elif case == "MODIFIED":
for f in files:
for f in test.files:
if f.name == key:
if not f.ismodified():
success = 0

View File

@ -263,7 +263,7 @@ class pmtest(object):
print "==> Checking rules"
for i in self.rules:
success = i.check(self.root, self.retcode, self.db["local"], self.files)
success = i.check(self)
if success == 1:
msg = " OK "
self.result["success"] += 1