Esempio n. 1
0
def test_create_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)

    with pytest.raises(BackendAPIError):
        Kernel.get_or_create('python')
Esempio n. 2
0
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()
Esempio n. 3
0
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')
Esempio n. 4
0
def test_create_kernel_url(mocker):
    mock_req_obj = mock.Mock()
    mock_req_obj.send.return_value = mocker.MagicMock(status=201,
                                                      json=mock.MagicMock())
    mock_req = mocker.patch('ai.backend.client.kernel.Request',
                            return_value=mock_req_obj)

    Kernel.get_or_create('python')

    mock_req.assert_called_once_with('POST', '/kernel/create', mocker.ANY)
    mock_req_obj.send.assert_called_once_with()
    mock_req_obj.send.return_value.json.assert_called_once_with()
Esempio n. 5
0
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
Esempio n. 7
0
def run_destroy_kernel(kid):
    if kid is not None:
        begin = time.monotonic()
        Kernel(kid).destroy()
        end = time.monotonic()
        return end - begin
    return None
Esempio n. 8
0
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
Esempio n. 9
0
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()
Esempio n. 10
0
def test_create_kernel_return_id_only(mocker):
    mock_json_func = lambda: {'kernelId': 'mock_kernel_id'}
    mock_req_obj = mock.Mock()
    mock_req_obj.send.return_value = mock.MagicMock(status=201,
                                                    json=mock_json_func)
    mocker.patch('ai.backend.client.kernel.Request', return_value=mock_req_obj)

    k = Kernel.get_or_create('python')

    assert k.kernel_id == mock_json_func()['kernelId']
Esempio n. 11
0
def run_create_kernel(_idx):
    begin = time.monotonic()
    try:
        k = Kernel.get_or_create('python3')
        ret = k.kernel_id
    except:
        log.exception('run_create_kernel')
        ret = None
    finally:
        end = time.monotonic()
    t = end - begin
    return t, ret
Esempio n. 12
0
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 py3_kernel():
    kernel = Kernel.get_or_create('python:latest')
    yield kernel
    kernel.destroy()
Esempio n. 14
0
def test_deprecated_api():
    with pytest.raises(AssertionError):
        Kernel.get_or_create('python')