Skip to content

Commit aeb3e71

Browse files
Using generic container
1 parent 6cb8820 commit aeb3e71

1 file changed

Lines changed: 21 additions & 1 deletion

File tree

tests_integration/conftest.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
import os
22
from importlib import reload
33
from typing import Generator, Any, MutableMapping
4-
from testcontainers.postgres import PostgresContainer
54

65
import pytest
76
import structlog
87
from fastapi.testclient import TestClient
8+
from testcontainers.core.container import DockerContainer
9+
from testcontainers.core.waiting_utils import wait_for_logs
10+
from testcontainers.postgres import PostgresContainer
911

1012
import app.config as config
1113
import app.main as main
@@ -17,16 +19,34 @@ def postgres_container() -> Generator[PostgresContainer, None, None]:
1719
yield postgres
1820

1921

22+
@pytest.fixture(scope="session")
23+
def postgres_docker_container() -> Generator[DockerContainer, None, None]:
24+
env_vars: dict[str, str] = {
25+
"POSTGRES_USER": "myuser",
26+
"POSTGRES_PASSWORD": "superpassword",
27+
}
28+
with DockerContainer(
29+
image="public.ecr.aws/docker/library/postgres:18-alpine",
30+
env=env_vars,
31+
ports=[5432],
32+
) as container:
33+
wait_for_logs(container, "server started")
34+
yield container
35+
36+
2037
@pytest.fixture
2138
def test_client(
2239
disable_db_migrations: config.Settings,
2340
postgres_container: PostgresContainer,
41+
postgres_docker_container: DockerContainer,
2442
) -> Generator[TestClient, None, None]:
2543
print(postgres_container.get_container_host_ip())
2644
print(postgres_container.get_exposed_port(5432))
2745
print(postgres_container.username)
2846
print(postgres_container.password)
2947
print(postgres_container.dbname)
48+
print(postgres_docker_container.get_container_host_ip())
49+
print(postgres_docker_container.get_exposed_port(5432))
3050
app = reload(main).app
3151
with TestClient(app) as client:
3252
yield client

0 commit comments

Comments
 (0)