コード例 #1
0
        lock.release()

    def testfrequentlockunlock(self):
        """This tests whether lock acquisition fails as expected, even if
        (1) lock can't be acquired (makelock fails by EEXIST), and
        (2) locker info can't be read in (readlock fails by ENOENT) while
        retrying 5 times.
        """

        d = tempfile.mkdtemp(dir=os.getcwd())
        state = teststate(self, d)

        def emulatefrequentlock(*args):
            raise OSError(errno.EEXIST, "File exists")
        def emulatefrequentunlock(*args):
            raise OSError(errno.ENOENT, "No such file or directory")

        state.vfs.makelock = emulatefrequentlock
        state.vfs.readlock = emulatefrequentunlock

        try:
            state.makelock(timeout=0)
            self.fail("unexpected lock acquisition")
        except error.LockHeld as why:
            self.assertTrue(why.errno == errno.ETIMEDOUT)
            self.assertTrue(why.locker == "")
            state.assertlockexists(False)

if __name__ == '__main__':
    silenttestrunner.main(__name__)
コード例 #2
0
        for i in array:
            self._assertBisect(array, i, i)
        array = range(0, 11)
        for i in array:
            self._assertBisect(array, i, i)

    def testNotFound(self):
        array = range(0, 10)
        self._assertBisect(array, 10, None)
        array = range(0, 11)
        self._assertBisect(array, 11, None)
        array = range(0, 10, 2)
        self._assertBisect(array, 1, None)

    def _assertBisect(self, array, value, result):

        def comp(index, value):
            if array[index] < value:
                return -1
            elif array[index] == value:
                return 0
            else:
                return 1

        self.assertEqual(bisect(0, len(array) - 1, comp, value), result)

if __name__ == '__main__':
    sys.path.insert(0, os.path.join(os.environ["TESTDIR"], "..", "hgext3rd"))
    from generic_bisect import bisect
    silenttestrunner.main(__name__)