コード例 #1
0
ファイル: test_lock.py プロジェクト: ForkRepo/sentry
    def test_context_manager_interface(self):
        backend = mock.Mock(spec=LockBackend)
        key = 'lock'
        duration = 60
        routing_key = None

        lock = Lock(backend, key, duration, routing_key)

        with lock.acquire():
            backend.acquire.assert_called_once_with(
                key,
                duration,
                routing_key,
            )

        backend.release.assert_called_once_with(
            key,
            routing_key,
        )
コード例 #2
0
ファイル: test_lock.py プロジェクト: ForkRepo/sentry
    def test_procedural_interface(self):
        backend = mock.Mock(spec=LockBackend)
        key = 'lock'
        duration = 60
        routing_key = None

        lock = Lock(backend, key, duration, routing_key)

        lock.acquire()
        backend.acquire.assert_called_once_with(
            key,
            duration,
            routing_key,
        )

        lock.release()
        backend.release.assert_called_once_with(
            key,
            routing_key,
        )

        backend.acquire.side_effect = Exception('Boom!')
        with pytest.raises(UnableToAcquireLock):
            lock.acquire()
コード例 #3
0
 def get(self, key, duration, routing_key=None):
     """
     Retrieve a ``Lock`` instance.
     """
     return Lock(self.backend, key, duration, routing_key)