Split LockMachine() into 2 functions: one for lock and the other for unlock.
Also added a check before the unlock takes place to make sure the user
unlocking is the same as the user who locked the machine.
PRESUBMIT=passed
R=raymes,bjanakiraman,kbaclawski
DELTA=278 (188 added, 17 deleted, 73 changed)
OCL=55045-p2
RCL=55189-p2
RDATE=2011/08/23 10:37:54
P4 change: 42652763
diff --git a/v14/lock_machine_test.py b/v14/lock_machine_test.py
new file mode 100644
index 0000000..8c00c40
--- /dev/null
+++ b/v14/lock_machine_test.py
@@ -0,0 +1,58 @@
+#!/usr/bin/python2.6
+#
+# Copyright 2010 Google Inc. All Rights Reserved.
+
+"""lock_machine.py related unit-tests.
+
+MachineManagerTest tests MachineManager.
+"""
+
+__author__ = "asharif@google.com (Ahmad Sharif)"
+
+
+import lock_machine
+import unittest
+
+
+class MachineTest(unittest.TestCase):
+ def setUp(self):
+ pass
+
+
+ def testRepeatedUnlock(self):
+ mach = lock_machine.Machine("qqqraymes.mtv")
+ for i in range(10):
+ self.assertFalse(mach.Unlock())
+
+ def testLockUnlock(self):
+ mach = lock_machine.Machine("otter.mtv")
+ for i in range(10):
+ self.assertTrue(mach.Lock(exclusive=True))
+ self.assertTrue(mach.Unlock(exclusive=True))
+
+ def testSharedLock(self):
+ mach = lock_machine.Machine("chrotomation.mtv")
+ for i in range(10):
+ self.assertTrue(mach.Lock(exclusive=False))
+ for i in range(10):
+ self.assertTrue(mach.Unlock(exclusive=False))
+ self.assertTrue(mach.Lock(exclusive=True))
+ self.assertTrue(mach.Unlock(exclusive=True))
+
+ def testExclusiveLock(self):
+ mach = lock_machine.Machine("atree.mtv")
+ self.assertTrue(mach.Lock(exclusive=True))
+ for i in range(10):
+ self.assertFalse(mach.Lock(exclusive=True))
+ self.assertFalse(mach.Lock(exclusive=False))
+ self.assertTrue(mach.Unlock(exclusive=True))
+
+ def testExclusiveState(self):
+ mach = lock_machine.Machine("testExclusiveState")
+ self.assertTrue(mach.Lock(exclusive=True))
+ for i in range(10):
+ self.assertFalse(mach.Lock(exclusive=False))
+ self.assertTrue(mach.Unlock(exclusive=True))
+
+if __name__ == "__main__":
+ unittest.main()