diff options
author | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2003-03-04 21:10:38 +0000 |
---|---|---|
committer | bescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2003-03-04 21:10:38 +0000 |
commit | 1d98cd8af3761cb473fe4ebbbdee60109a1b757a (patch) | |
tree | 930d100911360eb8ad46f5a50ce14fd68d7dd2cc /rdiff-backup/testing | |
parent | 28cff11744e0ad52a37edc79c9fdd0d748c41e8d (diff) | |
download | rdiff-backup-1d98cd8af3761cb473fe4ebbbdee60109a1b757a.tar.gz |
Final checkin for 0.11.3 (fixed pipeline flushing problem)
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@292 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/testing')
-rw-r--r-- | rdiff-backup/testing/iterfiletest.py | 99 |
1 files changed, 91 insertions, 8 deletions
diff --git a/rdiff-backup/testing/iterfiletest.py b/rdiff-backup/testing/iterfiletest.py index c8c77c6..2c357ef 100644 --- a/rdiff-backup/testing/iterfiletest.py +++ b/rdiff-backup/testing/iterfiletest.py @@ -52,15 +52,98 @@ class testIterFile(unittest.TestCase): assert new_iter.next() == "foo" self.assertRaises(StopIteration, new_iter.next) + +class testRORPIters(unittest.TestCase): + """Test sending rorpiter back and forth""" + def setUp(self): + """Make testfiles/output directory and a few files""" + Myrm("testfiles/output") + self.outputrp = rpath.RPath(Globals.local_connection, + "testfiles/output") + self.regfile1 = self.outputrp.append("reg1") + self.regfile2 = self.outputrp.append("reg2") + self.regfile3 = self.outputrp.append("reg3") + + self.outputrp.mkdir() + + fp = self.regfile1.open("wb") + fp.write("hello") + fp.close() + self.regfile1.setfile(self.regfile1.open("rb")) + + self.regfile2.touch() + self.regfile2.setfile(self.regfile2.open("rb")) + + fp = self.regfile3.open("wb") + fp.write("goodbye") + fp.close() + self.regfile3.setfile(self.regfile3.open("rb")) + + self.regfile1.setdata() + self.regfile2.setdata() + self.regfile3.setdata() -class testBufferedRead(unittest.TestCase): - def testBuffering(self): - """Test buffering a StringIO""" - fp = StringIO.StringIO("12345678"*10000) - bfp = BufferedRead(fp) - assert bfp.read(5) == "12345" - assert bfp.read(4) == "6781" - assert len(bfp.read(75000)) == 75000 + def print_RORPIterFile(self, rpiter_file): + """Print the given rorpiter file""" + while 1: + buf = rpiter_file.read() + sys.stdout.write(buf) + if buf[0] == "z": break + + def testBasic(self): + """Test basic conversion""" + l = [self.outputrp, self.regfile1, self.regfile2, self.regfile3] + i_out = FileToRORPIter(RORPIterToFile(iter(l))) + + out1 = i_out.next() + assert out1 == self.outputrp + + out2 = i_out.next() + assert out2 == self.regfile1 + fp = out2.open("rb") + assert fp.read() == "hello" + assert not fp.close() + + out3 = i_out.next() + assert out3 == self.regfile2 + fp = out3.open("rb") + assert fp.read() == "" + assert not fp.close() + + i_out.next() + self.assertRaises(StopIteration, i_out.next) + + def testFlush(self): + """Test flushing property of RORPIterToFile""" + l = [self.outputrp, RORPIterFlush, self.outputrp] + filelike = RORPIterToFile(iter(l)) + new_filelike = StringIO.StringIO((filelike.read() + "z" + + C.long2str(0L))) + + i_out = FileToRORPIter(new_filelike) + assert i_out.next() == self.outputrp + self.assertRaises(StopIteration, i_out.next) + + i_out2 = FileToRORPIter(filelike) + assert i_out2.next() == self.outputrp + self.assertRaises(StopIteration, i_out2.next) + + def testFlushRepeat(self): + """Test flushing like above, but have Flush obj emerge from iter""" + l = [self.outputrp, RORPIterFlushRepeat, self.outputrp] + filelike = RORPIterToFile(iter(l)) + new_filelike = StringIO.StringIO((filelike.read() + "z" + + C.long2str(0L))) + + i_out = FileToRORPIter(new_filelike) + assert i_out.next() == self.outputrp + assert i_out.next() is RORPIterFlushRepeat + self.assertRaises(StopIteration, i_out.next) + + i_out2 = FileToRORPIter(filelike) + assert i_out2.next() == self.outputrp + self.assertRaises(StopIteration, i_out2.next) + if __name__ == "__main__": unittest.main() |