summaryrefslogtreecommitdiff
path: root/rdiff-backup/testing/metadatatest.py
diff options
context:
space:
mode:
Diffstat (limited to 'rdiff-backup/testing/metadatatest.py')
-rw-r--r--rdiff-backup/testing/metadatatest.py40
1 files changed, 34 insertions, 6 deletions
diff --git a/rdiff-backup/testing/metadatatest.py b/rdiff-backup/testing/metadatatest.py
index ed7e07c..b908dc2 100644
--- a/rdiff-backup/testing/metadatatest.py
+++ b/rdiff-backup/testing/metadatatest.py
@@ -40,13 +40,16 @@ class MetadataTest(unittest.TestCase):
def testIterator(self):
"""Test writing RORPs to file and iterating them back"""
+ def write_rorp_iter_to_file(rorp_iter, file):
+ for rorp in rorp_iter: file.write(RORP2Record(rorp))
+
l = self.get_rpaths()
fp = cStringIO.StringIO()
write_rorp_iter_to_file(iter(l), fp)
fp.seek(0)
cstring = fp.read()
fp.seek(0)
- outlist = list(rorp_extractor(fp).iterate())
+ outlist = list(RorpExtractor(fp).iterate())
assert len(l) == len(outlist), (len(l), len(outlist))
for i in range(len(l)):
if not l[i].equal_verbose(outlist[i]):
@@ -65,18 +68,19 @@ class MetadataTest(unittest.TestCase):
rpath_iter = selection.Select(rootrp).set_iter()
start_time = time.time()
- OpenMetadata(temprp)
- for rp in rpath_iter: WriteMetadata(rp)
- CloseMetadata()
+ MetadataFile.open_file(temprp)
+ for rp in rpath_iter: MetadataFile.write_object(rp)
+ MetadataFile.close_file()
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
start_time = time.time(); i = 0
- for rorp in GetMetadata(temprp): i += 1
+ for rorp in MetadataFile.get_objects(): i += 1
print "Reading %s metadata entries took %s seconds." % \
(i, time.time() - start_time)
@@ -98,11 +102,35 @@ class MetadataTest(unittest.TestCase):
"""
temprp = self.write_metadata_to_temp()
+ MetadataFile._rp = temprp
start_time = time.time(); i = 0
- for rorp in GetMetadata(temprp, ("subdir3", "subdir10")): i += 1
+ for rorp in MetadataFile.get_objects(("subdir3", "subdir10")): i += 1
print "Reading %s metadata entries took %s seconds." % \
(i, time.time() - start_time)
assert i == 51
+ def test_write(self):
+ """Test writing to metadata file, then reading back contents"""
+ global tempdir
+ temprp = tempdir.append("write_test.gz")
+ if temprp.lstat(): temprp.delete()
+
+ self.make_temp()
+ rootrp = rpath.RPath(Globals.local_connection,
+ "testfiles/various_file_types")
+ dirlisting = rootrp.listdir()
+ dirlisting.sort()
+ rps = map(rootrp.append, dirlisting)
+
+ assert not temprp.lstat()
+ MetadataFile.open_file(temprp)
+ for rp in rps: MetadataFile.write_object(rp)
+ MetadataFile.close_file()
+ assert temprp.lstat()
+
+ reread_rps = list(MetadataFile.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
if __name__ == "__main__": unittest.main()