Add a few SharedLock delete() tests
authorGuido Trotter <ultrotter@google.com>
Thu, 21 Feb 2008 13:45:27 +0000 (13:45 +0000)
committerGuido Trotter <ultrotter@google.com>
Thu, 21 Feb 2008 13:45:27 +0000 (13:45 +0000)
- Check that even a shared acquire() fails on a deleted lock
- Check that delete() fails on a lock you share (must own it or nothing)

These are assumptions I build on in future code, so better check for them.
Currently no code change is necessary for them to be valid.

Reviewed-by: iustinp

test/ganeti.locking_unittest.py

index 9e99ab1..75d9e94 100755 (executable)
@@ -192,8 +192,13 @@ class TestSharedLock(unittest.TestCase):
   def testDelete(self):
     self.sl.delete()
     self.assertRaises(errors.LockError, self.sl.acquire)
+    self.assertRaises(errors.LockError, self.sl.acquire, shared=1)
     self.assertRaises(errors.LockError, self.sl.delete)
 
+  def testNoDeleteIfSharer(self):
+    self.sl.acquire(shared=1)
+    self.assertRaises(AssertionError, self.sl.delete)
+
   def testDeletePendingSharersExclusiveDelete(self):
     self.sl.acquire()
     Thread(target=self._doItSharer).start()