| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- from unittest.mock import MagicMock, patch
- from opendevin.runtime.utils.image_agnostic import (
- _get_new_image_name,
- generate_dockerfile,
- get_od_sandbox_image,
- )
- def test_generate_dockerfile():
- base_image = 'debian:11'
- dockerfile_content = generate_dockerfile(base_image)
- assert base_image in dockerfile_content
- assert (
- 'RUN apt update && apt install -y openssh-server wget sudo'
- in dockerfile_content
- )
- 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)
- assert new_image_name == 'od_sandbox:debian__11'
- base_image = 'ubuntu:22.04'
- new_image_name = _get_new_image_name(base_image)
- assert new_image_name == 'od_sandbox:ubuntu__22.04'
- base_image = 'ubuntu'
- new_image_name = _get_new_image_name(base_image)
- assert new_image_name == 'od_sandbox:ubuntu__latest'
- @patch('opendevin.runtime.utils.image_agnostic._build_sandbox_image')
- @patch('opendevin.runtime.utils.image_agnostic.docker.DockerClient')
- def test_get_od_sandbox_image(mock_docker_client, mock_build_sandbox_image):
- base_image = 'debian:11'
- mock_docker_client.images.list.return_value = [
- MagicMock(tags=['od_sandbox:debian__11'])
- ]
- image_name = get_od_sandbox_image(base_image, mock_docker_client)
- assert image_name == 'od_sandbox:debian__11'
- mock_docker_client.images.list.return_value = []
- 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
- )
|