def test_write_resource_failure(self): fs = FakeSanlock() fs.errors["write_resource"] = ExpectedError with self.assertRaises(ExpectedError): fs.write_resource("lockspace", "resource", [("path", 1048576)]) with self.assertRaises(fs.SanlockException) as e: fs.read_resource("path", 1048576) self.assertEqual(e.exception.errno, fs.SANLK_LEADER_MAGIC)
def test_write_read_resource(self): fs = FakeSanlock() fs.write_resource("lockspace", "resource", [("path", 1048576)]) info = fs.read_resource("path", 1048576) expected = {"resource": "resource", "lockspace": "lockspace", "version": 0} self.assertEqual(info, expected)
def test_acquire(self): fs = FakeSanlock() fs.write_resource("lockspace", "resource", [("path", 1048576)]) fs.add_lockspace("lockspace", 1, "path") fd = fs.register() fs.acquire("lockspace", "resource", [("path", 1048576)], slkfd=fd) res = fs.read_resource("path", 1048576) self.assertTrue(res["acquired"], "resource is not acquired")
def test_write_read_resource(self): fs = FakeSanlock() fs.write_resource("lockspace", "resource", [("path", 1048576)]) info = fs.read_resource("path", 1048576) expected = { "resource": "resource", "lockspace": "lockspace", "version": 0 } self.assertEqual(info, expected)
def test_acquire_an_acquired_resource(self): fs = FakeSanlock() fs.write_resource("lockspace", "resource", [("path", 1048576)]) fs.add_lockspace("lockspace", 1, "path") fd = fs.register() fs.acquire("lockspace", "resource", [("path", 1048576)], slkfd=fd) with self.assertRaises(fs.SanlockException) as e: fs.acquire("lockspace", "resource", [("path", 1048576)], slkfd=fd) self.assertEqual(e.exception.errno, errno.EEXIST) res = fs.read_resource("path", 1048576) self.assertTrue(res["acquired"], "resource is not acquired")
def test_read_resource_failure(self): fs = FakeSanlock() fs.errors["read_resource"] = ExpectedError fs.write_resource("lockspace", "resource", [("path", 1048576)]) with self.assertRaises(ExpectedError): fs.read_resource("path", 1048576)
def test_non_existing_resource(self): fs = FakeSanlock() with self.assertRaises(fs.SanlockException) as e: fs.read_resource("path", 1048576) self.assertEqual(e.exception.errno, fs.SANLK_LEADER_MAGIC)