Skip to content

Commit 631740e

Browse files
committed
spelling and split out dataclass
1 parent c2cda80 commit 631740e

File tree

3 files changed

+20
-15
lines changed

3 files changed

+20
-15
lines changed

core/testcontainers/core/container.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from testcontainers.core.exceptions import ContainerConnectException, ContainerStartException
2222
from testcontainers.core.labels import LABEL_SESSION_ID, SESSION_ID
2323
from testcontainers.core.network import Network
24+
from testcontainers.core.transferable import Transferable
2425
from testcontainers.core.utils import is_arm, setup_logger
2526
from testcontainers.core.waiting_utils import wait_container_is_ready, wait_for_logs
2627

@@ -35,13 +36,6 @@ class Mount(TypedDict):
3536
mode: str
3637

3738

38-
@dataclasses.dataclass
39-
class Transferrable:
40-
source: Union[bytes, PathLike]
41-
destination_in_container: str
42-
mode: int = 0o644
43-
44-
4539
class DockerContainer:
4640
"""
4741
Basic container object to spin up Docker instances.
@@ -80,7 +74,7 @@ def __init__(
8074
volumes: Optional[list[tuple[str, str, str]]] = None,
8175
network: Optional[Network] = None,
8276
network_aliases: Optional[list[str]] = None,
83-
transferrables: Optional[tuple[Transferrable]] = None,
77+
transferrables: Optional[list[Transferable]] = None,
8478
**kwargs: Any,
8579
) -> None:
8680
self.env = env or {}
@@ -108,7 +102,7 @@ def __init__(
108102
self.with_network_aliases(*network_aliases)
109103

110104
self._kwargs = kwargs
111-
self._transferrables = transferrables or []
105+
self._transferables: list[Transferable] = transferrables or []
112106

113107
def with_env(self, key: str, value: str) -> Self:
114108
self.env[key] = value
@@ -210,7 +204,7 @@ def start(self) -> Self:
210204

211205
logger.info("Container started: %s", self._container.short_id)
212206

213-
for t in self._transferrables:
207+
for t in self._transferables:
214208
self._transfer_into_container(t.source, t.destination_in_container, t.mode)
215209

216210
return self
@@ -293,10 +287,10 @@ def _configure(self) -> None:
293287
def with_copy_into_container(
294288
self, file_content: bytes | PathLike, destination_in_container: str, mode: int = 0o644
295289
):
296-
self._transferrables.append(Transferrable(file_content, destination_in_container, mode))
290+
self._transferables.append(Transferable(file_content, destination_in_container, mode))
297291
return self
298292

299-
def copy_into_container(self, file_content: bytes, destination_in_container: str, mode: int = 0o644):
293+
def copy_into_container(self, file_content: bytes | PathLike, destination_in_container: str, mode: int = 0o644):
300294
return self._transfer_into_container(file_content, destination_in_container, mode)
301295

302296
def _transfer_into_container(self, source: bytes | PathLike, destination_in_container: str, mode: int):
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import dataclasses
2+
import os
3+
from typing import Union
4+
5+
6+
@dataclasses.dataclass
7+
class Transferable:
8+
source: Union[bytes, os.PathLike]
9+
destination_in_container: str
10+
mode: int = 0o644

core/tests/test_core.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import tempfile
22
from pathlib import Path
33

4-
from testcontainers.core.container import DockerContainer, Transferrable
4+
from testcontainers.core.container import DockerContainer
5+
from testcontainers.core.transferable import Transferable
56

67

78
def test_garbage_collection_is_defensive():
@@ -89,7 +90,7 @@ def test_copy_file_into_container_via_initializer(tmp_path: Path):
8990
destination_in_container = "/tmp/my_file"
9091

9192
with DockerContainer(
92-
"bash", command="sleep infinity", transferrables=(Transferrable(my_file, destination_in_container),)
93+
"bash", command="sleep infinity", transferrables=(Transferable(my_file, destination_in_container),)
9394
) as container:
9495
# When
9596
result = container.exec(f"cat {destination_in_container}")
@@ -138,7 +139,7 @@ def test_copy_bytes_to_container_via_initializer():
138139
destination_in_container = "/tmp/my_file"
139140

140141
with DockerContainer(
141-
"bash", command="sleep infinity", transferrables=(Transferrable(file_content, destination_in_container),)
142+
"bash", command="sleep infinity", transferrables=(Transferable(file_content, destination_in_container),)
142143
) as container:
143144
# When
144145
result = container.exec(f"cat {destination_in_container}")

0 commit comments

Comments
 (0)