예제 #1
0
 def test_close(self):
     client_num = [1, 2, 5, 10]
     for n in client_num:
         clients = self._create_clients(n)
         mclient = IPCRPCMultiProcessClient(clients)
         for c in clients:
             assert c.called is False
         mclient.close()
         for c in clients:
             ok_(c.called and c.called_method == "close")
예제 #2
0
    def test_get_client(self):
        client_num = [1, 2, 5, 10]
        for n in client_num:
            clients = self._create_clients(n)
            mclient = IPCRPCMultiProcessClient(clients)

            for i in xrange(n):
                exppected_client = clients[i]
                result_client = mclient.get_client(i)
                ok_(result_client is exppected_client)
예제 #3
0
    def test_call_async(self):
        clients_num = (2, 5, 10)
        for n in clients_num:
            clients = self._create_clients(n)
            mclient = IPCRPCMultiProcessClient(clients)

            for i in xrange(n):
                c = clients[i]
                assert not c.called
                mclient.call_async("foobar", i, i * 2)
                ok_(c.called)
                eq_(c.called_method, "call_async")
                eq_(c.params, dict(method_name="foobar", args=(i, i * 2)))

                total_called = len([c for c in clients if c.called])
                eq_(total_called, i + 1)
예제 #4
0
    def test_choose_client(self):
        # clients=1 case
        clients1 = self._create_clients(1)
        mclient1 = IPCRPCMultiProcessClient(clients1)

        eq_(mclient1._idx, 0)
        c1_1 = mclient1._choose_client()
        ok_(c1_1 is clients1[0])
        eq_(mclient1._idx, 0)
        c1_2 = mclient1._choose_client()
        ok_(c1_2 is clients1[0])

        # clients=N(1 < N) case
        clients_num = (2, 5, 10)
        for n in clients_num:
            clients = self._create_clients(n)
            mclient = IPCRPCMultiProcessClient(clients)

            for i in xrange(n - 1):
                eq_(mclient._idx, i)
                c = mclient._choose_client()
                ok_(c is clients[i])
                eq_(mclient._idx, i + 1)

            eq_(mclient._idx, n - 1)
            c = mclient._choose_client()
            eq_(c, clients[-1])
            eq_(mclient._idx, 0)
예제 #5
0
 def test_close_multiple_times_closing(self):
     clients = self._create_clients(2)
     mclient = IPCRPCMultiProcessClient(clients)
     mclient.close()  # ok
     mclient.close()  # raises
예제 #6
0
 def test_get_client_bad_index_positive(self):
     clients = self._create_clients(2)
     mclient = IPCRPCMultiProcessClient(clients)
     mclient.get_client(2)  # raises