[pacman-dev] CVS update of pacman-lib/pactest (6 files)
Date: Monday, March 5, 2007 @ 13:06:12 Author: aaron Path: /home/cvs-pacman/pacman-lib/pactest Modified: pactest.py (1.8 -> 1.9) pmdb.py (1.5 -> 1.6) pmpkg.py (1.4 -> 1.5) pmrule.py (1.5 -> 1.6) pmtest.py (1.5 -> 1.6) util.py (1.4 -> 1.5) * Fixed an issue with globbing the --test argument * Added a custom 'mkdir' function which makes parents and doesn't fail on existence * Added output for 'SKIP' messages (it did not indicate WHY it was skipped) * Added the ability to generate DB packages in the sync dir (not the cache dir) for testing downloading. (self.cachepkgs = False) * Added pmtest.path for the full path to the package file ------------+ pactest.py | 3 ++- pmdb.py | 5 ++--- pmpkg.py | 8 ++++++-- pmrule.py | 4 ++++ pmtest.py | 19 ++++++++++--------- util.py | 10 ++++++++++ 6 files changed, 34 insertions(+), 15 deletions(-) Index: pacman-lib/pactest/pactest.py diff -u pacman-lib/pactest/pactest.py:1.8 pacman-lib/pactest/pactest.py:1.9 --- pacman-lib/pactest/pactest.py:1.8 Fri Feb 23 00:12:58 2007 +++ pacman-lib/pactest/pactest.py Mon Mar 5 13:06:12 2007 @@ -36,7 +36,8 @@ globlist = [] # maintain the idx so we can modify rargs - while not parser.rargs[idx].startswith('-'): + while idx < len(parser.rargs) and \ + not parser.rargs[idx].startswith('-'): globlist += glob.glob(parser.rargs[idx]) idx += 1 Index: pacman-lib/pactest/pmdb.py diff -u pacman-lib/pactest/pmdb.py:1.5 pacman-lib/pactest/pmdb.py:1.6 --- pacman-lib/pactest/pmdb.py:1.5 Wed Feb 28 11:37:24 2007 +++ pacman-lib/pactest/pmdb.py Mon Mar 5 13:06:12 2007 @@ -219,8 +219,7 @@ """ path = os.path.join(self.dbdir, self.treename, pkg.fullname()) - if not os.path.isdir(path): - os.makedirs(path); + mkdir(path) # desc # for local db entries: name, version, desc, groups, url, license, @@ -332,7 +331,7 @@ mkdescfile(pkg.fullname(), pkg) # Generate database archive - os.makedirs(path, 0755) + mkdir(path) archive = os.path.join(path, "%s%s" % (self.treename, PM_EXT_DB)) os.system("tar zcf %s *" % archive) Index: pacman-lib/pactest/pmpkg.py diff -u pacman-lib/pactest/pmpkg.py:1.4 pacman-lib/pactest/pmpkg.py:1.5 --- pacman-lib/pactest/pmpkg.py:1.4 Tue Feb 27 11:25:01 2007 +++ pacman-lib/pactest/pmpkg.py Mon Mar 5 13:06:12 2007 @@ -33,6 +33,7 @@ """ def __init__(self, name, version = "1.0-1"): + self.path = "" #the path of the generated package # desc self.name = name self.version = version @@ -116,7 +117,7 @@ A package archive is generated in the location 'path', based on the data from the object. """ - archive = os.path.join(path, self.filename()) + self.path = os.path.join(path, self.filename()) curdir = os.getcwd() tmpdir = tempfile.mkdtemp() @@ -172,8 +173,11 @@ os.system("touch .FILELIST") targets += " .FILELIST" + #safely create the dir + mkdir(os.path.dirname(self.path)) + # Generate package archive - os.system("tar zcf %s %s" % (archive, targets)) + os.system("tar zcf %s %s" % (self.path, targets)) os.chdir(curdir) shutil.rmtree(tmpdir) Index: pacman-lib/pactest/pmrule.py diff -u pacman-lib/pactest/pmrule.py:1.5 pacman-lib/pactest/pmrule.py:1.6 --- pacman-lib/pactest/pmrule.py:1.5 Wed Feb 28 11:37:24 2007 +++ pacman-lib/pactest/pmrule.py Mon Mar 5 13:06:12 2007 @@ -57,6 +57,7 @@ if not grep(os.path.join(root, LOGFILE), key): success = 0 else: + print "PACMAN rule '%s' not found" % case success = -1 elif kind == "PKG": newpkg = localdb.db_read(key) @@ -100,6 +101,7 @@ if not found: success = 0 else: + print "PKG rule '%s' not found" % case success = -1 elif kind == "FILE": filename = os.path.join(root, key) @@ -122,8 +124,10 @@ if not os.path.isfile("%s%s" % (filename, PM_PACSAVE)): success = 0 else: + print "FILE rule '%s' not found" % case success = -1 else: + print "Rule kind '%s' not found" % kind success = -1 if self.false and success != -1: Index: pacman-lib/pactest/pmtest.py diff -u pacman-lib/pactest/pmtest.py:1.5 pacman-lib/pactest/pmtest.py:1.6 --- pacman-lib/pactest/pmtest.py:1.5 Mon Feb 26 03:19:03 2007 +++ pacman-lib/pactest/pmtest.py Mon Mar 5 13:06:12 2007 @@ -38,6 +38,7 @@ self.name = name self.testname = os.path.basename(name).replace('.py', '') self.root = root + self.cachepkgs = True def __str__(self): return "name = %s\n" \ @@ -130,14 +131,15 @@ vprint("\t%s" % os.path.join(TMPDIR, pkg.filename())) pkg.makepkg(tmpdir) for key, value in self.db.iteritems(): - if key == "local": - continue + if key == "local": continue for pkg in value.pkgs: - archive = pkg.filename() - vprint("\t%s" % os.path.join(PM_CACHEDIR, archive)) - pkg.makepkg(cachedir) - pkg.md5sum = getmd5sum(os.path.join(cachedir, archive)) - pkg.csize = os.stat(os.path.join(cachedir, archive))[stat.ST_SIZE] + vprint("\t%s" % os.path.join(PM_CACHEDIR, pkg.filename())) + if self.cachepkgs: + pkg.makepkg(cachedir) + else: + pkg.makepkg(os.path.join(syncdir, value.treename)) + pkg.md5sum = getmd5sum(pkg.path) + pkg.csize = os.stat(pkg.path)[stat.ST_SIZE] # Populating databases vprint(" Populating databases") @@ -151,8 +153,7 @@ # Creating sync database archives vprint(" Creating sync database archives") for key, value in self.db.iteritems(): - if key == "local": - continue + if key == "local": continue archive = value.treename + PM_EXT_DB vprint("\t" + os.path.join(SYNCREPO, archive)) value.gensync(os.path.join(syncdir, value.treename)) Index: pacman-lib/pactest/util.py diff -u pacman-lib/pactest/util.py:1.4 pacman-lib/pactest/util.py:1.5 --- pacman-lib/pactest/util.py:1.4 Wed Feb 28 11:37:24 2007 +++ pacman-lib/pactest/util.py Mon Mar 5 13:06:12 2007 @@ -247,6 +247,16 @@ fd.close() return found +def mkdir(dir): + if os.path.isdir(dir): + return + elif os.path.isfile(dir): + raise OSError("'%s' already exists and is not a directory" % dir) + else: + parent, thisdir = os.path.split(dir) + if parent: mkdir(parent) #recurse to make all parents + print "making dir %s" % thisdir + if thisdir: os.mkdir(dir) if __name__ == "__main__": pass
On 3/5/07, Aaron Griffin <aaron@archlinux.org> wrote:
Date: Monday, March 5, 2007 @ 13:06:12 Author: aaron Path: /home/cvs-pacman/pacman-lib/pactest
Modified: pactest.py (1.8 -> 1.9) pmdb.py (1.5 -> 1.6) pmpkg.py (1.4 -> 1.5) pmrule.py (1.5 -> 1.6) pmtest.py (1.5 -> 1.6) util.py (1.4 -> 1.5)
pactest itself is more an internal tool and probably shouldn't be part of the dist target... Either way, I don't really consider it frozen as it is our front-line test suite.
On 3/5/07, Aaron Griffin <aaronmgriffin@gmail.com> wrote:
On 3/5/07, Aaron Griffin <aaron@archlinux.org> wrote:
Date: Monday, March 5, 2007 @ 13:06:12 Author: aaron Path: /home/cvs-pacman/pacman-lib/pactest
Modified: pactest.py (1.8 -> 1.9) pmdb.py (1.5 -> 1.6) pmpkg.py (1.4 -> 1.5) pmrule.py (1.5 -> 1.6) pmtest.py (1.5 -> 1.6) util.py (1.4 -> 1.5)
pactest itself is more an internal tool and probably shouldn't be part of the dist target...
Anyone that actually downloads the source would find it helpful, however, especially if trying to move it to another processor / OS. Autotools also recommends having a 'check' target for integration with the 'make distcheck' call. This ensures that you are distributing everything you need to.
Either way, I don't really consider it frozen as it is our front-line test suite.
I agree with this, as long as we don't stretch it too far. :) -Dan
On 3/5/07, Dan McGee <dpmcgee@gmail.com> wrote:
On 3/5/07, Aaron Griffin <aaronmgriffin@gmail.com> > > Either way, I don't really consider it frozen as it is our front-line
test suite.
I agree with this, as long as we don't stretch it too far. :)
Yeah, this was w.r.t. the bug with double package names.
participants (3)
-
Aaron Griffin
-
Aaron Griffin
-
Dan McGee