def test_new_writer_from_stale_cache(self): cwriter = arv_put.ArvPutCollectionWriter(self.cache) with self.make_test_file() as testfile: cwriter.write_file(testfile.name, 'test') new_writer = arv_put.ArvPutCollectionWriter.from_cache(self.cache) new_writer.write_file('/dev/null') self.assertEqual(". d41d8cd98f00b204e9800998ecf8427e+0 0:0:null\n", new_writer.manifest_text())
def test_writer_caches(self): cwriter = arv_put.ArvPutCollectionWriter(self.cache) cwriter.write_file('/dev/null') cwriter.cache_state() self.assertTrue(self.cache.load()) self.assertEqual(". d41d8cd98f00b204e9800998ecf8427e+0 0:0:null\n", cwriter.manifest_text())
def test_writer_resumable_after_arbitrary_bytes(self): cwriter = arv_put.ArvPutCollectionWriter(self.cache) # These bytes are intentionally not valid UTF-8. with self.make_test_file('\x00\x07\xe2') as testfile: cwriter.write_file(testfile.name, 'test') cwriter.cache_state() new_writer = arv_put.ArvPutCollectionWriter.from_cache(self.cache) self.assertEqual(cwriter.manifest_text(), new_writer.manifest_text())
def test_writer_resumes_from_cache(self): cwriter = arv_put.ArvPutCollectionWriter(self.cache) with self.make_test_file() as testfile: cwriter.write_file(testfile.name, 'test') cwriter.cache_state() new_writer = arv_put.ArvPutCollectionWriter.from_cache(self.cache) self.assertEqual(". 098f6bcd4621d373cade4e832627b4f6+4 0:4:test\n", new_writer.manifest_text())
def test_resume_progress(self): cwriter = arv_put.ArvPutCollectionWriter(self.cache, bytes_expected=4) with self.make_test_file() as testfile: # Set up a writer with some flushed bytes. cwriter.write_file(testfile.name, 'test') cwriter.finish_current_stream() cwriter.cache_state() new_writer = arv_put.ArvPutCollectionWriter.from_cache(self.cache) self.assertEqual(new_writer.bytes_written, 4)
def test_progress_reporting(self): for expect_count in (None, 8): progression, reporter = self.make_progress_tester() cwriter = arv_put.ArvPutCollectionWriter( reporter=reporter, bytes_expected=expect_count) with self.make_test_file() as testfile: cwriter.write_file(testfile.name, 'test') cwriter.finish_current_stream() self.assertIn((4, expect_count), progression)
def test_writer_works_without_cache(self): cwriter = arv_put.ArvPutCollectionWriter() cwriter.write_file('/dev/null') self.assertEqual(". d41d8cd98f00b204e9800998ecf8427e+0 0:0:null\n", cwriter.manifest_text())