Skip to content

Commit db514be

Browse files
committed
fix: add ulimit support for dragonfly
1 parent dccdc5f commit db514be

File tree

3 files changed

+14
-8
lines changed

3 files changed

+14
-8
lines changed

pyproject.toml

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ extra-dependencies = [
9494
"pytest-vcr",
9595
"pytest-click",
9696
"pytest-xdist",
97+
"pytest-sugar",
9798
# lint
9899
"mypy",
99100
"ruff",
@@ -471,14 +472,7 @@ module = ["docutils.nodes.*"]
471472

472473
[[tool.mypy.overrides]]
473474
ignore_missing_imports = true
474-
module = [
475-
"pyodbc",
476-
"google.auth.*",
477-
"google.cloud.*",
478-
"google.protobuf.*",
479-
"googleapiclient",
480-
"googleapiclient.*",
481-
]
475+
module = ["pyodbc", "google.auth.*", "google.cloud.*", "google.protobuf.*", "googleapiclient", "googleapiclient.*"]
482476

483477
[tool.ruff]
484478
exclude = [

src/pytest_databases/_service.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
import docker
1616
from docker.errors import ImageNotFound
17+
from docker.types import Ulimit
1718
from pytest_databases.helpers import get_xdist_worker_id
1819
from pytest_databases.types import ServiceContainer
1920

@@ -128,6 +129,8 @@ def run(
128129
timeout: int = 10,
129130
pause: float = 0.1,
130131
transient: bool = False,
132+
ulimits: list[Ulimit] | None = None,
133+
shm_size: int | None = None,
131134
) -> Generator[ServiceContainer, None, None]:
132135
if check is None and wait_for_log is None:
133136
msg = "Must set at least check or wait_for_log"
@@ -152,6 +155,7 @@ def run(
152155
labels=["pytest_databases"],
153156
name=name,
154157
environment=env,
158+
ulimits=ulimits,
155159
)
156160
container.reload()
157161

src/pytest_databases/docker/dragonfly.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import redis
88
from redis.exceptions import ConnectionError as RedisConnectionError
99

10+
from docker.types import Ulimit
1011
from pytest_databases.helpers import get_xdist_worker_num
1112
from pytest_databases.types import ServiceContainer, XdistIsolationLevel
1213

@@ -49,11 +50,17 @@ def dragonfly_image() -> str:
4950
return "docker.dragonflydb.io/dragonflydb/dragonfly"
5051

5152

53+
@pytest.fixture(scope="session")
54+
def dragonfly_ulimits() -> list[Ulimit]:
55+
return [Ulimit(name="memlock", soft=-1, hard=-1)]
56+
57+
5258
@pytest.fixture(autouse=False, scope="session")
5359
def dragonfly_service(
5460
docker_service: DockerService,
5561
dragonfly_image: str,
5662
xdist_dragonfly_isolation_level: XdistIsolationLevel,
63+
dragonfly_ulimits: list[Ulimit],
5764
) -> Generator[DragonflyService, None, None]:
5865
worker_num = get_xdist_worker_num()
5966
if xdist_dragonfly_isolation_level == "database":
@@ -69,5 +76,6 @@ def dragonfly_service(
6976
container_port=6379,
7077
name=name,
7178
transient=xdist_dragonfly_isolation_level == "server",
79+
ulimits=dragonfly_ulimits,
7280
) as service:
7381
yield DragonflyService(host=service.host, port=service.port, db=db)

0 commit comments

Comments
 (0)