summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing
diff options
context:
space:
mode:
authorbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2005-11-03 22:40:04 +0000
committerbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2005-11-03 22:40:04 +0000
commit070e5c4080dac3de8e26a7d5d7314ceb36d32440 (patch)
tree9d651c518600f1edafd83df337f33f2541625fdd /rdiff-backup/testing
parent5348003fbeed531b60cb99330c7603c354a74fe9 (diff)
downloadrdiff-backup-070e5c4080dac3de8e26a7d5d7314ceb36d32440.tar.gz
Some refactoring of metadata code
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@668 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing')
-rw-r--r--rdiff-backup/testing/metadatatest.py54
1 files changed, 41 insertions, 13 deletions
diff --git a/rdiff-backup/testing/metadatatest.py b/rdiff-backup/testing/metadatatest.py
index b908dc2..becfecc 100644
--- a/rdiff-backup/testing/metadatatest.py
+++ b/rdiff-backup/testing/metadatatest.py
@@ -60,7 +60,7 @@ class MetadataTest(unittest.TestCase):
def write_metadata_to_temp(self):
"""If necessary, write metadata of bigdir to file metadata.gz"""
global tempdir
- temprp = tempdir.append("metadata.gz")
+ temprp = tempdir.append("mirror_metadata.2005-11-03T14:51:06-06:00.snapshot.gz")
if temprp.lstat(): return temprp
self.make_temp()
@@ -68,19 +68,19 @@ class MetadataTest(unittest.TestCase):
rpath_iter = selection.Select(rootrp).set_iter()
start_time = time.time()
- MetadataFile.open_file(temprp)
- for rp in rpath_iter: MetadataFile.write_object(rp)
- MetadataFile.close_file()
+ mf = MetadataFile(temprp, 'w')
+ for rp in rpath_iter: mf.write_object(rp)
+ mf.close()
print "Writing metadata took %s seconds" % (time.time() - start_time)
return temprp
def testSpeed(self):
"""Test testIterator on 10000 files"""
temprp = self.write_metadata_to_temp()
- MetadataFile._rp = temprp
+ mf = MetadataFile(temprp, 'r')
start_time = time.time(); i = 0
- for rorp in MetadataFile.get_objects(): i += 1
+ for rorp in mf.get_objects(): i += 1
print "Reading %s metadata entries took %s seconds." % \
(i, time.time() - start_time)
@@ -102,9 +102,9 @@ class MetadataTest(unittest.TestCase):
"""
temprp = self.write_metadata_to_temp()
- MetadataFile._rp = temprp
+ mf = MetadataFile(temprp, 'r')
start_time = time.time(); i = 0
- for rorp in MetadataFile.get_objects(("subdir3", "subdir10")): i += 1
+ for rorp in mf.get_objects(("subdir3", "subdir10")): i += 1
print "Reading %s metadata entries took %s seconds." % \
(i, time.time() - start_time)
assert i == 51
@@ -112,7 +112,7 @@ class MetadataTest(unittest.TestCase):
def test_write(self):
"""Test writing to metadata file, then reading back contents"""
global tempdir
- temprp = tempdir.append("write_test.gz")
+ temprp = tempdir.append("mirror_metadata.2005-11-03T12:51:06-06:00.snapshot.gz")
if temprp.lstat(): temprp.delete()
self.make_temp()
@@ -123,14 +123,42 @@ class MetadataTest(unittest.TestCase):
rps = map(rootrp.append, dirlisting)
assert not temprp.lstat()
- MetadataFile.open_file(temprp)
- for rp in rps: MetadataFile.write_object(rp)
- MetadataFile.close_file()
+ write_mf = MetadataFile(temprp, 'w')
+ for rp in rps: write_mf.write_object(rp)
+ write_mf.close()
assert temprp.lstat()
- reread_rps = list(MetadataFile.get_objects())
+ reread_rps = list(MetadataFile(temprp, 'r').get_objects())
assert len(reread_rps) == len(rps), (len(reread_rps), len(rps))
for i in range(len(reread_rps)):
assert reread_rps[i] == rps[i], i
+ def test_patch(self):
+ """Test combining 3 iters of metadata rorps"""
+ self.make_temp()
+ os.system('cp -a testfiles/various_file_types/* ' + tempdir.path)
+
+ rp1 = tempdir.append('regular_file')
+ rp2 = tempdir.append('subdir')
+ rp3 = rp2.append('subdir_file')
+ rp4 = tempdir.append('test')
+
+ rp1new = tempdir.append('regular_file')
+ rp1new.chmod(0)
+ zero = rpath.RORPath(('test',))
+
+ current = [rp1, rp2, rp3]
+ diff1 = [rp1, rp4]
+ diff2 = [rp1new, rp2, zero]
+
+ output = patch(iter(current), iter(diff1), iter(diff2))
+ out1 = output.next()
+ assert out1 is rp1new, out1
+ out2 = output.next()
+ assert out2 is rp2, out2
+ out3 = output.next()
+ assert out3 is rp3, out3
+ self.assertRaises(StopIteration, output.next)
+
+
if __name__ == "__main__": unittest.main()