1 |
import unittest, StringIO |
import unittest, StringIO |
2 |
from rdiff_backup import hash, rpath, regress, restore, metadata |
from rdiff_backup import hash |
3 |
from commontest import * |
from commontest import * |
4 |
|
|
5 |
class HashTest(unittest.TestCase): |
class HashTest(unittest.TestCase): |
81 |
in_rp1, hashlist1, in_rp2, hashlist2 = self.make_dirs() |
in_rp1, hashlist1, in_rp2, hashlist2 = self.make_dirs() |
82 |
Myrm("testfiles/output") |
Myrm("testfiles/output") |
83 |
|
|
84 |
rdiff_backup(1, 1, in_rp1.path, "testfiles/output", 10000, "-v5") |
rdiff_backup(1, 1, in_rp1.path, "testfiles/output", 10000, "-v3") |
85 |
meta_prefix = rpath.RPath(Globals.local_connection, |
meta_prefix = rpath.RPath(Globals.local_connection, |
86 |
"testfiles/output/rdiff-backup-data/mirror_metadata") |
"testfiles/output/rdiff-backup-data/mirror_metadata") |
87 |
incs = restore.get_inclist(meta_prefix) |
incs = restore.get_inclist(meta_prefix) |
90 |
hashlist = self.extract_hashs(metadata_rp) |
hashlist = self.extract_hashs(metadata_rp) |
91 |
assert hashlist == hashlist1, (hashlist1, hashlist) |
assert hashlist == hashlist1, (hashlist1, hashlist) |
92 |
|
|
93 |
rdiff_backup(1, 1, in_rp2.path, "testfiles/output", 20000, "-v7") |
rdiff_backup(1, 1, in_rp2.path, "testfiles/output", 20000, "-v3") |
94 |
incs = restore.get_inclist(meta_prefix) |
incs = restore.get_inclist(meta_prefix) |
95 |
assert len(incs) == 2 |
assert len(incs) == 2 |
96 |
metadata_rp.delete() # easy way to find the other one |
if incs[0].getinctype() == 'snapshot': inc = incs[0] |
97 |
incs = restore.get_inclist(meta_prefix) |
else: inc = incs[1] |
98 |
assert len(incs) == 1 |
hashlist = self.extract_hashs(inc) |
|
hashlist = self.extract_hashs(incs[0]) |
|
99 |
assert hashlist == hashlist2, (hashlist2, hashlist) |
assert hashlist == hashlist2, (hashlist2, hashlist) |
100 |
|
|
101 |
|
def test_rorpiter_xfer(self): |
102 |
|
"""Test if hashes are transferred in files, rorpiter""" |
103 |
|
#log.Log.setverbosity(5) |
104 |
|
Globals.security_level = 'override' |
105 |
|
conn = SetConnections.init_connection('python ./server.py .') |
106 |
|
assert conn.reval("lambda x: x+1", 4) == 5 # connection sanity check |
107 |
|
|
108 |
|
fp = hash.FileWrapper(StringIO.StringIO(self.s1)) |
109 |
|
conn.Globals.set('tmp_file', fp) |
110 |
|
fp_remote = conn.Globals.get('tmp_file') |
111 |
|
assert fp_remote.read() == self.s1 |
112 |
|
assert fp_remote.close().sha1_digest == self.s1_hash |
113 |
|
|
114 |
|
# Tested xfer of file, now test xfer of files in rorpiter |
115 |
|
root = MakeOutputDir() |
116 |
|
rp1 = root.append('s1') |
117 |
|
rp1.write_string(self.s1) |
118 |
|
rp2 = root.append('s2') |
119 |
|
rp2.write_string(self.s2) |
120 |
|
rp1.setfile(hash.FileWrapper(rp1.open('rb'))) |
121 |
|
rp2.setfile(hash.FileWrapper(rp2.open('rb'))) |
122 |
|
rpiter = iter([rp1, rp2]) |
123 |
|
|
124 |
|
conn.Globals.set('tmp_conn_iter', rpiter) |
125 |
|
remote_iter = conn.Globals.get('tmp_conn_iter') |
126 |
|
|
127 |
|
rorp1 = remote_iter.next() |
128 |
|
fp = rorp1.open('rb') |
129 |
|
assert fp.read() == self.s1, fp.read() |
130 |
|
ret_val = fp.close() |
131 |
|
assert isinstance(ret_val, hash.Report), ret_val |
132 |
|
assert ret_val.sha1_digest == self.s1_hash |
133 |
|
rorp2 = remote_iter.next() |
134 |
|
fp2 = rorp1.open('rb') |
135 |
|
assert fp2.close().sha1_digest == self.s2_hash |
136 |
|
|
137 |
|
conn.quit() |
138 |
|
|
139 |
|
|
140 |
|
from rdiff_backup import rpath, regress, restore, metadata, log, Globals |
141 |
|
|
142 |
if __name__ == "__main__": unittest.main() |
if __name__ == "__main__": unittest.main() |