Пример #1
0
 def setUp(self):
     self.api_key = "test-api"
     self.host = 'localhost'
     self.port = random.randint(10000,60000)
     self.server = mp.Process(target=run_local_server, args=(self.api_key, self.port))
     self.server.start()
     time.sleep(0.1)
     self.client = RemoteClient(self.api_key, self.host, self.port)
Пример #2
0
class RemotelyServerTest2(unittest.TestCase):

    def setUp(self):
        self.api_key = "test-api"
        self.host = 'localhost'
        self.port = random.randint(10000,60000)
        self.server = mp.Process(target=run_local_server, args=(self.api_key, self.port))
        self.server.start()
        time.sleep(0.1)
        self.client = RemoteClient(self.api_key, self.host, self.port)

    def tearDown(self):
        self.server.terminate()
        self.server.join()
        self.server = None
        self.client = None

    def test_blocking_run(self):
        # function blocks and returns value
        self.client.set_async(False)
        output = self.client.run(foo, 2, 3, 4)
        self.assertEquals(output, 2+3+4)

    def test_async_run(self):    
        # function does not block and returns pid for join()
        pid = self.client.run(foo, 1, 2, 3)
        output = self.client.join(pid)
        self.assertTrue(pid > 0)
        self.assertEqual(output, 6)

    def test_join_timeout(self):
        # non-blocking join returns no output
        pid = self.client.run(foo2, "A","B","C")
        output = self.client.join(pid, 0.01)
        output2 = self.client.join(pid, 0.01)
        output3 = self.client.join(pid)
        self.assertTrue(output is None)
        self.assertTrue(output2 is None)
        self.assertEquals(output3, "ABC")

    def test_async_kill(self):
        # killed process, no output returned
        pid = self.client.run(foo2, 1, 2, 3)
        ret = self.client.kill(pid)
        output = self.client.join(pid)
        self.assertTrue(ret)
        self.assertEquals(output, None)