-
-
Notifications
You must be signed in to change notification settings - Fork 222
Expand file tree
/
Copy pathconftest.py
More file actions
56 lines (46 loc) · 1.9 KB
/
conftest.py
File metadata and controls
56 lines (46 loc) · 1.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
from collections.abc import Generator
from pathlib import Path
from unittest.mock import AsyncMock, Mock, patch
import httpx
import pytest
from dstack._internal.server.main import app
from dstack._internal.server.services import encryption as encryption # import for side-effect
from dstack._internal.server.services import logs as logs_services
from dstack._internal.server.services.docker import ImageConfig, ImageConfigObject
from dstack._internal.server.services.logs.filelog import FileLogStorage
from dstack._internal.server.testing.conf import ( # noqa: F401
postgres_container,
session,
test_db,
)
@pytest.fixture
def client():
transport = httpx.ASGITransport(app=app)
return httpx.AsyncClient(transport=transport, base_url="http://test")
@pytest.fixture
def test_log_storage(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> FileLogStorage:
root = tmp_path / "test_logs"
root.mkdir()
storage = FileLogStorage(root)
monkeypatch.setattr(logs_services, "_log_storage", storage)
return storage
@pytest.fixture
def image_config_mock(monkeypatch: pytest.MonkeyPatch) -> ImageConfig:
image_config = ImageConfig.parse_obj({"User": None, "Entrypoint": None, "Cmd": ["/bin/bash"]})
monkeypatch.setattr(
"dstack._internal.server.services.jobs.configurators.base._get_image_config",
Mock(return_value=image_config),
)
monkeypatch.setattr(
"dstack._internal.server.services.docker.get_image_config",
Mock(return_value=ImageConfigObject(config=image_config)),
)
return image_config
@pytest.fixture()
def mock_gateway_connection() -> Generator[AsyncMock, None, None]:
with patch(
"dstack._internal.server.services.gateways.gateway_connections_pool.get_or_add"
) as get_conn_mock:
get_conn_mock.return_value.client = Mock()
get_conn_mock.return_value.client.return_value = AsyncMock()
yield get_conn_mock