def test_apply_patch_in_place_foo_from_size_missing(self): with self.assertRaises(detools.Error) as cm: detools.apply_patch_in_place_filenames( 'tests/files/foo/old', 'tests/files/foo/missing-in-place-from-size.patch') self.assertEqual(str(cm.exception), "Failed to read first size byte.")
def test_apply_patch_in_place_foo_bad_patch_type(self): with self.assertRaises(detools.Error) as cm: detools.apply_patch_in_place_filenames('tests/files/foo/old', 'tests/files/foo/patch') self.assertEqual(str(cm.exception), "Expected patch type 1, but got 0.")
def test_apply_patch_in_place_small_memory_size(self): with self.assertRaises(detools.Error) as cm: detools.apply_patch_in_place_filenames( 'tests/files/foo/old', 'tests/files/foo/in-place-3000-1500.patch') self.assertEqual( str(cm.exception), "Expected memory size of at least 3000 bytes, but got 2780.")
def test_apply_patch_in_place_foo_retain_after_3000(self): with open('foo.mem', 'wb') as fmem: with open('tests/files/foo/old', 'rb') as fold: fmem.write(fold.read()) fmem.write((3000 - 2780) * b'\xff') fmem.write(b'\x01\x02\x03') detools.apply_patch_in_place_filenames( 'foo.mem', 'tests/files/foo/in-place-3000-1500.patch') with open('foo.mem', 'rb') as fmem: data = fmem.read() self.assertEqual(len(data), 3003) self.assertEqual(data[-3:], b'\x01\x02\x03')