summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing/restoretest.py
diff options
context:
space:
mode:
authorben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-03-21 07:22:43 +0000
committerben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2002-03-21 07:22:43 +0000
commit8c37a5bdfdd46d5cfad6e9d67925ddef9ca382bf (patch)
tree8f19be83962ef31d8ad58429d575c6f17d89c0ea /rdiff-backup/testing/restoretest.py
parent8259a0d8a9ad1396a93cd6320943dc33446ac6ed (diff)
downloadrdiff-backup-8c37a5bdfdd46d5cfad6e9d67925ddef9ca382bf.tar.gz
First checkin
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@2 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing/restoretest.py')
-rw-r--r--rdiff-backup/testing/restoretest.py47
1 files changed, 47 insertions, 0 deletions
diff --git a/rdiff-backup/testing/restoretest.py b/rdiff-backup/testing/restoretest.py
new file mode 100644
index 0000000..7672e1a
--- /dev/null
+++ b/rdiff-backup/testing/restoretest.py
@@ -0,0 +1,47 @@
+import unittest
+
+execfile("commontest.py")
+rbexec("restore.py")
+
+
+lc = Globals.local_connection
+
+class RestoreTest(unittest.TestCase):
+ """Test Restore class"""
+ prefix = "testfiles/restoretest/"
+ def maketesttuples(self, basename):
+ """Make testing tuples from available files starting with prefix"""
+ dirlist = os.listdir(self.prefix)
+ baselist = filter(lambda f: f.startswith(basename), dirlist)
+ rps = map(lambda f: RPath(lc, self.prefix+f), baselist)
+ incs = filter(lambda rp: rp.isincfile(), rps)
+ tuples = map(lambda rp: (rp, RPath(lc, "%s.%s" %
+ (rp.getincbase().path,
+ rp.getinctime()))),
+ incs)
+ return tuples, incs
+
+ def restoreonefiletest(self, basename):
+ tuples, incs = self.maketesttuples(basename)
+ rpbase = RPath(lc, self.prefix + basename)
+ rptarget = RPath(lc, "testfiles/outfile")
+
+ if rptarget.lstat(): rptarget.delete()
+ for pair in tuples:
+ print "Processing file " + pair[0].path
+ rest_time = Time.stringtotime(pair[0].getinctime())
+ Restore.RestoreFile(rest_time, rpbase, incs, rptarget)
+ if not rptarget.lstat(): assert not pair[1].lstat()
+ else:
+ assert RPath.cmp(rptarget, pair[1]), \
+ "%s %s" % (rptarget.path, pair[1].path)
+ assert RPath.cmp_attribs(rptarget, pair[1]), \
+ "%s %s" % (rptarget.path, pair[1].path)
+ rptarget.delete()
+
+ def testRestorefiles(self):
+ """Testing restoration of files one at a time"""
+ map(self.restoreonefiletest, ["ocaml", "mf"])
+
+
+if __name__ == "__main__": unittest.main()