class SemaphoreMultipleTestCase(TestCase):
    
    _MAX = 5

    def setUp(self):
        self.bind = mim.Connection.get()
        self.bind.drop_all()
        self.semaphore = Semaphore(self.bind.db, 1, 'counter', self._MAX)

    def test_acquire(self):
        for i in xrange(self._MAX):
            self.assertTrue(self.semaphore.acquire(), msg='Failed to acquire intial semaphore')
        self.assertFalse(self.semaphore.acquire())
예제 #2
0
class SemaphoreMultipleTestCase(TestCase):

    _MAX = 5

    def setUp(self):
        self.bind = mim.Connection.get()
        self.bind.drop_all()
        self.semaphore = Semaphore(self.bind.db, 1, 'counter', self._MAX)

    def test_acquire(self):
        for i in xrange(self._MAX):
            self.assertTrue(self.semaphore.acquire(),
                            msg='Failed to acquire intial semaphore')
        self.assertFalse(self.semaphore.acquire())
 def setUp(self):
     self.bind = mim.Connection.get()
     self.bind.drop_all()
     self.semaphore = Semaphore(self.bind.db, 1, 'counter', 1)
class SemaphoreBinaryTestCase(TestCase):
    
    def setUp(self):
        self.bind = mim.Connection.get()
        self.bind.drop_all()
        self.semaphore = Semaphore(self.bind.db, 1, 'counter', 1)

    def test_acquire(self):
        self.assertTrue(self.semaphore.acquire(), msg='Failed to acquire intial semaphore')

    def test_release(self):
        self.semaphore.acquire()
        self.semaphore.release()

    def test_sequence(self):
        self.assertTrue(self.semaphore.acquire(), msg='Failed to acquire intial semaphore')
        self.assertFalse(self.semaphore.acquire(), msg='Failed to block on second acquire')
        self.semaphore.release()
        self.assertTrue(self.semaphore.acquire(), msg='Failed to reacquire after release')
        for i in xrange(10):
            self.semaphore.release()
            self.assertTrue(self.semaphore.acquire())
            self.semaphore.release()

    def test_peek(self):
        self.assertEquals(self.semaphore.peek(), 1)
        self.semaphore.acquire()
        self.assertEquals(self.semaphore.peek(), 0)

    def test_force_acquire(self):
        val = self.semaphore.peek()
        self.semaphore.force_acquire()
        self.assertEquals(val - 1, self.semaphore.peek())
        self.semaphore.force_acquire()
        self.assertEquals(val - 2, self.semaphore.peek())

    def test_force_release(self):
        val = self.semaphore.peek()
        self.semaphore.force_release()
        self.assertEquals(val + 1, self.semaphore.peek())
        self.semaphore.force_release()
        self.assertEquals(val + 2, self.semaphore.peek())

    def test_status(self):
        self.assertTrue(self.semaphore.status(), msg='Initial status is false')
        self.assertTrue(self.semaphore.acquire())
        self.assertFalse(self.semaphore.status(), msg='Status after acquire is true')
        self.assertFalse(self.semaphore.acquire())
        self.semaphore.release()
        self.assertTrue(self.semaphore.status())
예제 #5
0
 def setUp(self):
     self.bind = mim.Connection.get()
     self.bind.drop_all()
     self.semaphore = Semaphore(self.bind.db, 1, 'counter', 1)
예제 #6
0
class SemaphoreBinaryTestCase(TestCase):
    def setUp(self):
        self.bind = mim.Connection.get()
        self.bind.drop_all()
        self.semaphore = Semaphore(self.bind.db, 1, 'counter', 1)

    def test_acquire(self):
        self.assertTrue(self.semaphore.acquire(),
                        msg='Failed to acquire intial semaphore')

    def test_release(self):
        self.semaphore.acquire()
        self.semaphore.release()

    def test_sequence(self):
        self.assertTrue(self.semaphore.acquire(),
                        msg='Failed to acquire intial semaphore')
        self.assertFalse(self.semaphore.acquire(),
                         msg='Failed to block on second acquire')
        self.semaphore.release()
        self.assertTrue(self.semaphore.acquire(),
                        msg='Failed to reacquire after release')
        for i in xrange(10):
            self.semaphore.release()
            self.assertTrue(self.semaphore.acquire())
            self.semaphore.release()

    def test_peek(self):
        self.assertEquals(self.semaphore.peek(), 1)
        self.semaphore.acquire()
        self.assertEquals(self.semaphore.peek(), 0)

    def test_force_acquire(self):
        val = self.semaphore.peek()
        self.semaphore.force_acquire()
        self.assertEquals(val - 1, self.semaphore.peek())
        self.semaphore.force_acquire()
        self.assertEquals(val - 2, self.semaphore.peek())

    def test_force_release(self):
        val = self.semaphore.peek()
        self.semaphore.force_release()
        self.assertEquals(val + 1, self.semaphore.peek())
        self.semaphore.force_release()
        self.assertEquals(val + 2, self.semaphore.peek())

    def test_status(self):
        self.assertTrue(self.semaphore.status(), msg='Initial status is false')
        self.assertTrue(self.semaphore.acquire())
        self.assertFalse(self.semaphore.status(),
                         msg='Status after acquire is true')
        self.assertFalse(self.semaphore.acquire())
        self.semaphore.release()
        self.assertTrue(self.semaphore.status())