summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan McGee <dan@archlinux.org>2010-05-05 10:59:20 -0500
committerDan McGee <dan@archlinux.org>2010-05-05 11:11:20 -0500
commit9528c36452a6ca8b3718ef5895f31f46c16b17fa (patch)
treeae975b47827315689f199a167f27cd6f5aa50506
parentf9fa822ccb0a077cf4cfa2cbbdac773187b88e20 (diff)
downloadpacman-9528c36452a6ca8b3718ef5895f31f46c16b17fa.tar.xz
Add two new pactests for --dbonly
It caught me by surprise that: 1. These weren't being tested at all 2. The --dbonly combined with -U not only "works" but is also completely undocumented. It also has some weird behavior on install vs. upgrade that may need addressing. Add some tests which will hopefully provoke some discussion. Signed-off-by: Dan McGee <dan@archlinux.org>
-rw-r--r--pactest/tests/database010.py17
-rw-r--r--pactest/tests/database011.py17
-rw-r--r--pactest/tests/database012.py31
3 files changed, 65 insertions, 0 deletions
diff --git a/pactest/tests/database010.py b/pactest/tests/database010.py
new file mode 100644
index 00000000..662dc1b6
--- /dev/null
+++ b/pactest/tests/database010.py
@@ -0,0 +1,17 @@
+# TODO: these are labeled as database packages because they sure seem to me to
+# be database-type operations. In their current implementation however they are
+# calling -U and -R rather than -D. Obviously the tests will need to be updated
+# if this changes.
+self.description = "Remove a package with --dbonly, no files touched"
+
+p = pmpkg("dummy")
+p.files = ["bin/dummy",
+ "usr/man/man1/dummy.1"]
+self.addpkg2db("local", p)
+
+self.args = "-R --dbonly %s" % p.name
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("!PKG_EXIST=dummy")
+for f in p.files:
+ self.addrule("FILE_EXIST=%s" % f)
diff --git a/pactest/tests/database011.py b/pactest/tests/database011.py
new file mode 100644
index 00000000..7d475d91
--- /dev/null
+++ b/pactest/tests/database011.py
@@ -0,0 +1,17 @@
+# TODO: these are labeled as database packages because they sure seem to me to
+# be database-type operations. In their current implementation however they are
+# calling -U and -R rather than -D. Obviously the tests will need to be updated
+# if this changes.
+self.description = "Install a package with --dbonly, no files touched"
+
+p = pmpkg("dummy")
+p.files = ["bin/dummy",
+ "usr/man/man1/dummy.1"]
+self.addpkg(p)
+
+self.args = "-U --dbonly %s" % p.filename()
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_EXIST=dummy")
+for f in p.files:
+ self.addrule("!FILE_EXIST=%s" % f)
diff --git a/pactest/tests/database012.py b/pactest/tests/database012.py
new file mode 100644
index 00000000..a1f86980
--- /dev/null
+++ b/pactest/tests/database012.py
@@ -0,0 +1,31 @@
+# TODO: these are labeled as database packages because they sure seem to me to
+# be database-type operations. In their current implementation however they are
+# calling -U and -R rather than -D. Obviously the tests will need to be updated
+# if this changes.
+self.description = "Upgrade a package with --dbonly, no files touched"
+
+lp = pmpkg("dummy")
+lp.files = ["bin/dummy",
+ "usr/man/man1/dummy.1"]
+self.addpkg2db("local", lp)
+
+p = pmpkg("dummy", "2.0-1")
+p.files = ["bin/dummy",
+ "bin/dummy2",
+ "usr/man/man1/dummy.1"]
+self.addpkg(p)
+
+self.args = "-U --dbonly %s" % p.filename()
+
+self.addrule("PACMAN_RETCODE=0")
+self.addrule("PKG_EXIST=dummy")
+self.addrule("PKG_VERSION=dummy|2.0-1")
+for f in lp.files:
+ self.addrule("!FILE_EXIST=%s" % f)
+# TODO: I honestly think the above should NOT delete the original files, it
+# should upgrade the DB entry without touching anything on the file system.
+# E.g. this test should be the same as:
+# pacman -R --dbonly dummy && pacman -U --dbonly dummy.pkg.tar.gz
+#for f in lp.files:
+# self.addrule("FILE_EXIST=%s" % f)
+self.addrule("!FILE_EXIST=bin/dummy2")