rdiff-backup-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Rdiff-backup-commits] Changes to rdiff-backup/testing/metadatatest.py


From: Ben Escoto
Subject: [Rdiff-backup-commits] Changes to rdiff-backup/testing/metadatatest.py
Date: Fri, 04 Nov 2005 17:41:27 -0500

Index: rdiff-backup/testing/metadatatest.py
diff -u rdiff-backup/testing/metadatatest.py:1.7 
rdiff-backup/testing/metadatatest.py:1.8
--- rdiff-backup/testing/metadatatest.py:1.7    Thu Nov  3 22:40:04 2005
+++ rdiff-backup/testing/metadatatest.py        Fri Nov  4 22:41:13 2005
@@ -1,6 +1,6 @@
 import unittest, os, cStringIO, time
 from rdiff_backup.metadata import *
-from rdiff_backup import rpath, connection, Globals, selection
+from rdiff_backup import rpath, connection, Globals, selection, lazy
 
 tempdir = rpath.RPath(Globals.local_connection, "testfiles/output")
 
@@ -151,7 +151,9 @@
                diff1 = [rp1, rp4]
                diff2 = [rp1new, rp2, zero]
 
-               output = patch(iter(current), iter(diff1), iter(diff2))
+               Globals.rbdir = tempdir
+               output = PatchDiffMan().iterate_patched_meta(
+                                   [iter(current), iter(diff1), iter(diff2)])
                out1 = output.next()
                assert out1 is rp1new, out1
                out2 = output.next()
@@ -160,5 +162,57 @@
                assert out3 is rp3, out3
                self.assertRaises(StopIteration, output.next)
 
+       def test_meta_patch_cycle(self):
+               """Create various metadata rorps, diff them, then compare"""
+               def write_dir_to_meta(manager, rp, time):
+                       """Record the metadata under rp to a mirror_metadata 
file"""
+                       metawriter = man.get_meta_writer('snapshot', time)
+                       for rorp in selection.Select(rp).set_iter():
+                               metawriter.write_object(rorp)
+                       metawriter.close()
+
+               def compare(man, rootrp, time):
+                       assert 
lazy.Iter.equal(selection.Select(rootrp).set_iter(),
+                                                                  
man.get_meta_at_time(time, None))
+
+
+               self.make_temp()
+               Globals.rbdir = tempdir
+               man = PatchDiffMan()
+               inc1 = rpath.RPath(Globals.local_connection, 
"testfiles/increment1")
+               inc2 = rpath.RPath(Globals.local_connection, 
"testfiles/increment2")
+               inc3 = rpath.RPath(Globals.local_connection, 
"testfiles/increment3")
+               inc4 = rpath.RPath(Globals.local_connection, 
"testfiles/increment4")
+               write_dir_to_meta(man, inc1, 10000)
+               compare(man, inc1, 10000)
+               write_dir_to_meta(man, inc2, 20000)
+               compare(man, inc2, 20000)
+               man.ConvertMetaToDiff()
+               man = PatchDiffMan()
+               write_dir_to_meta(man, inc3, 30000)
+               compare(man, inc3, 30000)
+               man.ConvertMetaToDiff()
+               man = PatchDiffMan()
+               man.max_diff_chain = 3
+               write_dir_to_meta(man, inc4, 40000)
+               compare(man, inc4, 40000)
+               man.ConvertMetaToDiff()
+
+               man = PatchDiffMan()
+               l = man.sorted_meta_inclist()
+               assert l[0].getinctype() == 'snapshot'
+               assert l[0].getinctime() == 40000
+               assert l[1].getinctype() == 'snapshot'
+               assert l[1].getinctime() == 30000
+               assert l[2].getinctype() == 'diff'
+               assert l[2].getinctime() == 20000
+               assert l[3].getinctype() == 'diff'
+               assert l[3].getinctime() == 10000
+
+               compare(man, inc1, 10000)
+               compare(man, inc2, 20000)
+               compare(man, inc3, 30000)
+               compare(man, inc4, 40000)
+               
 
 if __name__ == "__main__": unittest.main()




reply via email to

[Prev in Thread] Current Thread [Next in Thread]