diff options
Diffstat (limited to 'test/pacman/pmrule.py')
-rwxr-xr-x | test/pacman/pmrule.py | 55 |
1 files changed, 27 insertions, 28 deletions
diff --git a/test/pacman/pmrule.py b/test/pacman/pmrule.py index e7c9c44f..62630457 100755 --- a/test/pacman/pmrule.py +++ b/test/pacman/pmrule.py @@ -16,10 +16,11 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import os -from util import * -from stat import * +import stat -class pmrule: +import util + +class pmrule(object): """Rule object """ @@ -29,19 +30,20 @@ class pmrule: self.result = 0 def __str__(self): - return "rule = %s" % self.rule + if len(self.rule) <= 40: + 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: @@ -49,33 +51,32 @@ class pmrule: 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, 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 grep(os.path.join(root, 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 else: - vprint("\tnewpkg.checksum : %s" % newpkg.checksum) - vprint("\tnewpkg.mtime : %s" % newpkg.mtime) if case == "EXIST": success = 1 - elif case == "MODIFIED": - if not localdb.ispkgmodified(newpkg): - success = 0 elif case == "VERSION": if value != newpkg.version: success = 0 + elif case == "DESC": + if value != newpkg.desc: + success = 0 elif case == "GROUPS": if not value in newpkg.groups: success = 0 @@ -106,21 +107,22 @@ class pmrule: 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 + break elif case == "MODE": if not os.path.isfile(filename): success = 0 else: - mode = os.lstat(filename)[ST_MODE] - if int(value,8) != S_IMODE(mode): + mode = os.lstat(filename)[stat.ST_MODE] + if int(value, 8) != stat.S_IMODE(mode): success = 0 elif case == "TYPE": if value == "dir": @@ -133,13 +135,13 @@ class pmrule: if not os.path.islink(filename): success = 0 elif case == "PACNEW": - if not os.path.isfile("%s%s" % (filename, PM_PACNEW)): + if not os.path.isfile("%s.pacnew" % filename): success = 0 elif case == "PACORIG": - if not os.path.isfile("%s%s" % (filename, PM_PACORIG)): + if not os.path.isfile("%s.pacorig" % filename): success = 0 elif case == "PACSAVE": - if not os.path.isfile("%s%s" % (filename, PM_PACSAVE)): + if not os.path.isfile("%s.pacsave" % filename): success = 0 else: print "FILE rule '%s' not found" % case @@ -153,7 +155,4 @@ class pmrule: self.result = success return success - -if __name__ != "__main__": - rule = pmrule("PKG_EXIST=dummy") # vim: set ts=4 sw=4 et: |