[pacman-dev] [PATCH] Update pactest to allow setting modes on created files
Dan McGee
dan at archlinux.org
Mon Apr 28 23:34:09 EDT 2008
This should allow some future tests to set modes and ensure they are set
after installation. It is also in anticipation of a test for checking
permissions on pacnew files.
Signed-off-by: Dan McGee <dan at archlinux.org>
---
pactest/tests/mode001.py | 2 +-
pactest/tests/mode002.py | 12 ++++++++++++
pactest/util.py | 40 +++++++++++++++++++++-------------------
3 files changed, 34 insertions(+), 20 deletions(-)
create mode 100644 pactest/tests/mode002.py
diff --git a/pactest/tests/mode001.py b/pactest/tests/mode001.py
index ff245a2..4ec11e1 100644
--- a/pactest/tests/mode001.py
+++ b/pactest/tests/mode001.py
@@ -1,7 +1,7 @@
self.description = "Check the mode of default files in a package"
p = pmpkg("pkg1")
-p.files = ["bin/foo"
+p.files = ["bin/foo",
"bin/bar"]
self.addpkg(p)
diff --git a/pactest/tests/mode002.py b/pactest/tests/mode002.py
new file mode 100644
index 0000000..cc4a8fe
--- /dev/null
+++ b/pactest/tests/mode002.py
@@ -0,0 +1,12 @@
+self.description = "Check execute mode on files in a package"
+
+p = pmpkg("pkg1")
+p.files = ["bin/foo|755",
+ "bin/bar|755"]
+self.addpkg(p)
+
+self.args = "-U %s" % p.filename()
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("FILE_MODE=bin/foo|755")
+self.addrule("FILE_MODE=bin/bar|755")
diff --git a/pactest/util.py b/pactest/util.py
index 3f0b096..c6d5a59 100755
--- a/pactest/util.py
+++ b/pactest/util.py
@@ -58,35 +58,35 @@ def vprint(msg):
def getfilename(name):
"""
"""
- filename = ""
- link = ""
- if name.find(" -> ") != -1:
- filename, link = name.split(" -> ")
- elif name[-1] == "*":
- filename = name.rstrip("*")
- else:
- filename = name
+ filename = name
+ extra = ""
+ if filename[-1] == "*":
+ filename = filename.rstrip("*")
+ if filename.find(" -> ") != -1:
+ filename, extra = filename.split(" -> ")
+ elif filename.find("|") != -1:
+ filename, extra = filename.split("|")
return filename
def mkfile(name, data = ""):
"""
"""
-
- isaltered = 0
isdir = 0
islink = 0
+ setperms = 0
+ filename = name
link = ""
- filename = ""
+ perms = ""
- if name.find(" -> ") != -1:
+ if filename[-1] == "*":
+ filename = filename.rstrip("*")
+ if filename.find(" -> ") != -1:
islink = 1
- filename, link = name.split(" -> ")
- elif name[-1] == "*":
- isaltered = 1
- filename = name.rstrip("*")
- else:
- filename = name
- if name[-1] == "/":
+ filename, link = filename.split(" -> ")
+ elif filename.find("|") != -1:
+ setperms = 1
+ filename, perms = filename.split("|")
+ if filename[-1] == "/":
isdir = 1
if isdir:
@@ -114,6 +114,8 @@ def mkfile(name, data = ""):
if data[-1] != "\n":
fd.write("\n")
fd.close()
+ if setperms:
+ os.chmod(filename, int(perms, 8))
def mkdescfile(filename, pkg):
"""
--
1.5.5.1
More information about the pacman-dev
mailing list