mirror of
https://github.com/All-Hands-AI/OpenHands.git
synced 2026-01-10 07:18:10 -05:00
[Arch] Implement EventStream Runtime Client with Jupyter Support using Agnostic Sandbox (#2879)
* support loading a particular runtime class via config.runtime (default to server to not break things) * move image agnostic util to shared runtime util * move dependency * include poetry.lock in sdist * accept port as arg for client * make client start server with specified port * update image agnostic utility for eventstream runtime * make client and runtime working with REST API * rename execute_server * add plugin to initialize stuff inside es-runtime; cleanup runtime methods to delegate everything to container * remove redundant ls -alh * fix jupyter * improve logging in agnostic sandbox * improve logging of test function * add read & edit * update agnostic sandbox * support setting work dir at start * fix file read/write test * fix unit test * update tescase * Fix unit test again * fix unit test again again
This commit is contained in:
@@ -2,14 +2,14 @@ from unittest.mock import MagicMock, patch
|
||||
|
||||
from opendevin.runtime.utils.image_agnostic import (
|
||||
_get_new_image_name,
|
||||
generate_dockerfile_content,
|
||||
generate_dockerfile,
|
||||
get_od_sandbox_image,
|
||||
)
|
||||
|
||||
|
||||
def test_generate_dockerfile_content():
|
||||
def test_generate_dockerfile():
|
||||
base_image = 'debian:11'
|
||||
dockerfile_content = generate_dockerfile_content(base_image)
|
||||
dockerfile_content = generate_dockerfile(base_image)
|
||||
assert base_image in dockerfile_content
|
||||
assert (
|
||||
'RUN apt update && apt install -y openssh-server wget sudo'
|
||||
@@ -17,17 +17,18 @@ def test_generate_dockerfile_content():
|
||||
)
|
||||
|
||||
|
||||
def test_get_new_image_name():
|
||||
def test_get_new_image_name_legacy():
|
||||
# test non-eventstream runtime (sandbox-based)
|
||||
base_image = 'debian:11'
|
||||
new_image_name = _get_new_image_name(base_image)
|
||||
new_image_name = _get_new_image_name(base_image, is_eventstream_runtime=False)
|
||||
assert new_image_name == 'od_sandbox:debian__11'
|
||||
|
||||
base_image = 'ubuntu:22.04'
|
||||
new_image_name = _get_new_image_name(base_image)
|
||||
new_image_name = _get_new_image_name(base_image, is_eventstream_runtime=False)
|
||||
assert new_image_name == 'od_sandbox:ubuntu__22.04'
|
||||
|
||||
base_image = 'ubuntu'
|
||||
new_image_name = _get_new_image_name(base_image)
|
||||
new_image_name = _get_new_image_name(base_image, is_eventstream_runtime=False)
|
||||
assert new_image_name == 'od_sandbox:ubuntu__latest'
|
||||
|
||||
|
||||
@@ -46,5 +47,11 @@ def test_get_od_sandbox_image(mock_docker_client, mock_build_sandbox_image):
|
||||
image_name = get_od_sandbox_image(base_image, mock_docker_client)
|
||||
assert image_name == 'od_sandbox:debian__11'
|
||||
mock_build_sandbox_image.assert_called_once_with(
|
||||
base_image, 'od_sandbox:debian__11', mock_docker_client
|
||||
base_image,
|
||||
'od_sandbox:debian__11',
|
||||
mock_docker_client,
|
||||
# eventstream runtime specific arguments, not used for sandbox-based runtime
|
||||
# is_eventstream_runtime=
|
||||
False,
|
||||
skip_init=False,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user