def run_destroy_kernel(kid): if kid is not None: begin = time.monotonic() Kernel(kid).destroy() end = time.monotonic() return end - begin return None
def run_restart_kernel(kid): # 2nd params is currently ignored. if kid is not None: begin = time.monotonic() Kernel(kid).restart() end = time.monotonic() return end - begin return None
def test_restart_kernel_raises_err_with_abnormal_status(mocker): mock_req_obj = mock.Mock() mock_req_obj.send.return_value = mock.MagicMock(status=400) mocker.patch('ai.backend.client.kernel.Request', return_value=mock_req_obj) kernel_id = token_hex(12) with pytest.raises(BackendAPIError): k = Kernel(kernel_id) k.restart()
def test_execute_code_raises_err_with_abnormal_status(mocker): mock_req_obj = mock.Mock() mock_req_obj.send.return_value = mock.MagicMock(status=400) mocker.patch('ai.backend.client.kernel.Request', return_value=mock_req_obj) kernel_id = token_hex(12) run_id = token_hex(8) with pytest.raises(BackendAPIError): k = Kernel(kernel_id) k.execute(run_id, 'hello')
def test_restart_kernel_url(mocker): mock_req_obj = mock.Mock() mock_req_obj.send.return_value = mock.MagicMock(status=204) mock_req = mocker.patch('ai.backend.client.kernel.Request', return_value=mock_req_obj) kernel_id = token_hex(12) k = Kernel(kernel_id) k.restart() mock_req.assert_called_once_with('PATCH', '/kernel/{}'.format(kernel_id)) mock_req_obj.send.assert_called_once_with()
def test_kernel_lifecycles(defconfig): kernel = Kernel.get_or_create('python:latest') kernel_id = kernel.kernel_id info = kernel.get_info() assert info['lang'] == 'python:latest' assert info['numQueriesExecuted'] == 1 info = kernel.get_info() assert info['numQueriesExecuted'] == 2 kernel.destroy() # kernel destruction is no longer synchronous! time.sleep(2.0) with pytest.raises(BackendAPIError) as e: info = Kernel(kernel_id).get_info() assert e.value.args[0] == 404
def run_execute_code(kid): if kid is not None: begin = time.monotonic() console = [] run_id = token_hex(8) while True: result = Kernel(kid).execute(run_id, sample_code) console.extend(result['console']) if result['status'] == 'finished': break stdout = ''.join(rec[1] for rec in console if rec[0] == 'stdout') end = time.monotonic() print(stdout) return end - begin return None
def test_execute_code_url(mocker): mock_req_obj = mock.Mock() mock_req_obj.send.return_value = mock.MagicMock(status=200) mock_req = mocker.patch('ai.backend.client.kernel.Request', return_value=mock_req_obj) kernel_id = token_hex(12) k = Kernel(kernel_id) run_id = token_hex(8) k.execute(run_id, 'hello') mock_req.assert_called_once_with('POST', '/kernel/{}'.format(kernel_id), { 'mode': 'query', 'runId': run_id, 'code': 'hello' }) mock_req_obj.send.assert_called_once_with() mock_req_obj.send.return_value.json.assert_called_once_with()