/greentest/test__semaphore.py

https://code.google.com/p/gevent/ · Python · 26 lines · 19 code · 6 blank · 1 comment · 1 complexity · 084d39134deac92e42dc4626553a7415 MD5 · raw file

  1. import greentest
  2. import gevent
  3. from gevent.coros import Semaphore
  4. class TestTimeoutAcquire(greentest.TestCase):
  5. # issue 39
  6. def test_acquire_returns_false_after_timeout(self):
  7. s = Semaphore(value=0)
  8. result = s.acquire(timeout=0.01)
  9. assert result is False, repr(result)
  10. def test_release_twice(self):
  11. s = Semaphore()
  12. result = []
  13. s.rawlink(lambda s: result.append('a'))
  14. s.release()
  15. s.rawlink(lambda s: result.append('b'))
  16. s.release()
  17. gevent.sleep(0.001)
  18. self.assertEqual(result, ['a', 'b'])
  19. if __name__ == '__main__':
  20. greentest.main()