Example #1
0
    def test_multi_lock(self):
        lock = defer.DeferredLock()
        sem = defer.DeferredSemaphore(2)
        conn = ThrottledSwiftConnection(
            [lock, sem],
            'http://127.0.0.1:8080/auth/v1.0', 'username', 'api_key',
            verbose=True)
        conn.agent = self.agent
        conn.storage_url = 'http://127.0.0.1:8080/v1/AUTH_user'
        conn.auth_token = 'TOKEN_123'

        conn.make_request('method', 'path')

        self.assertEqual(len(self.agent.requests), 1)
        self.assertEqual(lock.locked, 1)
        self.assertEqual(sem.tokens, 1)

        conn.make_request('method', 'path2')
        self.assertEqual(len(self.agent.requests), 1)
        d, args, kwargs = self.agent.requests[0]
        d.callback(StubResponse(200))

        self.assertEqual(len(self.agent.requests), 2)
        d, args, kwargs = self.agent.requests[1]
        d.callback(StubResponse(200))
        self.assertEqual(lock.locked, 0)
        self.assertEqual(sem.tokens, 2)
Example #2
0
    def test_multi_lock(self):
        lock = defer.DeferredLock()
        sem = defer.DeferredSemaphore(2)
        conn = ThrottledSwiftConnection([lock, sem],
                                        'http://127.0.0.1:8080/auth/v1.0',
                                        'username',
                                        'api_key',
                                        verbose=True)
        conn.agent = self.agent
        conn.storage_url = 'http://127.0.0.1:8080/v1/AUTH_user'
        conn.auth_token = 'TOKEN_123'

        conn.make_request('method', 'path')

        self.assertEqual(len(self.agent.requests), 1)
        self.assertEqual(lock.locked, 1)
        self.assertEqual(sem.tokens, 1)

        conn.make_request('method', 'path2')
        self.assertEqual(len(self.agent.requests), 1)
        d, args, kwargs = self.agent.requests[0]
        d.callback(StubResponse(200))

        self.assertEqual(len(self.agent.requests), 2)
        d, args, kwargs = self.agent.requests[1]
        d.callback(StubResponse(200))
        self.assertEqual(lock.locked, 0)
        self.assertEqual(sem.tokens, 2)