Skip to content

Commit 24c829d

Browse files
committed
Adjust test, take ownership when :memory: has been passed
1 parent 02fb63c commit 24c829d

File tree

2 files changed

+6
-7
lines changed

2 files changed

+6
-7
lines changed

dlt/destinations/impl/duckdb/configuration.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,12 +72,14 @@ def parse_native_representation(self, native_value: Any) -> None:
7272
# if in-memory mode has been requested
7373
# then prepare duckdb connection so later
7474
# it is configured appropriately
75+
is_owner = False
7576
if isinstance(native_value, str) and native_value == ":memory:":
7677
native_value = duckdb.connect(native_value)
78+
is_owner = True
7779

7880
if isinstance(native_value, duckdb.DuckDBPyConnection):
7981
self._conn = native_value
80-
self._conn_owner = False
82+
self._conn_owner = is_owner
8183
self._conn_borrows = 0
8284
self.database = ":external:"
8385
self.__is_resolved__ = True

tests/load/duckdb/test_duckdb_client.py

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,16 +259,13 @@ def test_external_duckdb_database() -> None:
259259

260260

261261
def test_in_memory_duckdb_database() -> None:
262-
import duckdb
263-
264262
# pass explicit in memory database
265-
conn = duckdb.connect(":memory:")
266263
c = resolve_configuration(
267-
DuckDbClientConfiguration(credentials=conn)._bind_dataset_name(dataset_name="test_dataset")
264+
DuckDbClientConfiguration(credentials=":memory:")._bind_dataset_name(dataset_name="test_dataset")
268265
)
269-
c.credentials.borrow_conn(read_only=False)
266+
conn = c.credentials.borrow_conn(read_only=False)
270267
assert c.credentials._conn_borrows == 1
271-
assert c.credentials._conn_owner is False
268+
assert c.credentials._conn_owner
272269
conn.close()
273270
assert not os.path.exists(":memory:")
274271

0 commit comments

Comments
 (0)