def test_one_file_rollback(self): testfile = os.path.join(self.tempdir, 'testfile.dat') self.create_file(testfile, 'one') ftrans = FileTransaction() fp = ftrans.open(testfile, 'r') self.assertEqual(fp.read(), 'one') fp = ftrans.open(testfile, 'w') fp.write('one,two') fp.close() fp = ftrans.open(testfile, 'r') self.assertEqual(fp.read(), 'one,two') fp = ftrans.open(testfile, 'a') fp.write(',three') fp.close() fp = ftrans.open(testfile, 'r') self.assertEqual(fp.read(), 'one,two,three') ftrans.rollback() self.assertEqual(open(testfile, 'r').read(), 'one')
def test_mkdir_rollback(self): ftrans = FileTransaction() ftrans.mkdir(os.path.join(self.tempdir, '1')) ftrans.mkdir(os.path.join(self.tempdir, '1', '2')) fp = ftrans.open(os.path.join(self.tempdir, '1', '2', 'file'), 'w') fp.write('data') fp.close() ftrans.rollback() self.assertFalse(os.path.exists(os.path.join(self.tempdir, '1')))
def test_rollback(self): init_data = "init data," data1 = "test data one" data2 = "test data two" file1 = os.path.join(self.tempdir, "file1.dat") file2 = os.path.join(self.tempdir, "file2.dat") self.create_file(file1, init_data) ftrans = FileTransaction() fp1 = ftrans.open(file1, "a") fp2 = ftrans.open(file2, "w") fp1.write(data1) fp2.write(data2) fp1.close() fp2.close() ftrans.rollback() self.assertEqual(open(file1).read(), init_data) self.assertFalse(os.path.exists(file2))