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()