summaryrefslogtreecommitdiffstats
path: root/pactest/pmdb.py
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2008-02-08 02:36:17 +0100
committerDan McGee <dan@archlinux.org>2008-02-08 02:36:17 +0100
commit11fe18479eeb7bb97062a2922da13ba816597007 (patch)
treedcc9807d8c3d78bfbbec9153cf4955e4580cbdde /pactest/pmdb.py
parent0c2206f542ce6df2606586d43f190cd5a423fb13 (diff)
downloadpacman-11fe18479eeb7bb97062a2922da13ba816597007.tar.gz
pacman-11fe18479eeb7bb97062a2922da13ba816597007.tar.xz
pactest: make more resiliant to missing files
Add a bunch of guards around function calls like open() and stat() to ensure we are not going to get ourselves a python error. This made implementing and testing the new upgrade045 pactest much easier, as its whole purpose was to create a dead symlink and debug a segfault of pacman (which caused no DB entries to be written) to support the previously checked in fix for FS#9235 (commit 0c2206f542ce6df2606586d43f190cd5a423fb13). Both of these cases are now non-fatal in pactest. Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'pactest/pmdb.py')
-rwxr-xr-xpactest/pmdb.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/pactest/pmdb.py b/pactest/pmdb.py
index cc852c2a..af392000 100755
--- a/pactest/pmdb.py
+++ b/pactest/pmdb.py
@@ -119,7 +119,10 @@ class pmdb:
# desc
filename = os.path.join(path, "desc")
- fd = file(filename, "r")
+ if not os.path.isfile(filename):
+ print "invalid db entry found (desc missing) for pkg", pkgname
+ return None
+ fd = open(filename, "r")
while 1:
line = fd.readline()
if not line:
@@ -158,7 +161,10 @@ class pmdb:
# files
filename = os.path.join(path, "files")
- fd = file(filename, "r")
+ if not os.path.isfile(filename):
+ print "invalid db entry found (files missing) for pkg", pkgname
+ return None
+ fd = open(filename, "r")
while 1:
line = fd.readline()
if not line:
@@ -177,6 +183,9 @@ class pmdb:
# depends
filename = os.path.join(path, "depends")
+ if not os.path.isfile(filename):
+ print "invalid db entry found (depends missing) for pkg", pkgname
+ return None
fd = file(filename, "r")
while 1:
line = fd.readline()