Skip to content

Commit 971a1b8

Browse files
committed
test: parametrize storage controller tests over both handle types
1 parent f286084 commit 971a1b8

1 file changed

Lines changed: 23 additions & 5 deletions

File tree

test/storage/test_storage_controller.py

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,39 @@
1+
from typing import Any, Type, Union
2+
13
import pandas as pd
4+
import pytest
25
from pandas.testing import assert_frame_equal
36

47
from openwpm.mp_logger import MPLogger
58
from openwpm.storage.in_memory_storage import (
69
MemoryArrowProvider,
710
MemoryStructuredProvider,
811
)
12+
from openwpm.storage.in_process_storage import InProcessStorageControllerHandle
913
from openwpm.storage.storage_controller import (
1014
INVALID_VISIT_ID,
1115
DataSocket,
1216
StorageControllerHandle,
1317
)
14-
from test.storage.fixtures import dt_test_values
18+
from test.storage.test_values import dt_test_values
19+
20+
HandleCls = Type[Union[StorageControllerHandle, InProcessStorageControllerHandle]]
21+
22+
23+
@pytest.fixture(params=["subprocess", "in_process"])
24+
def controller_handle_cls(request: Any) -> HandleCls:
25+
if request.param == "subprocess":
26+
return StorageControllerHandle
27+
else:
28+
return InProcessStorageControllerHandle
1529

1630

17-
def test_startup_and_shutdown(mp_logger: MPLogger, test_values: dt_test_values) -> None:
31+
def test_startup_and_shutdown(
32+
mp_logger: MPLogger, test_values: dt_test_values, controller_handle_cls: HandleCls
33+
) -> None:
1834
test_table, visit_ids = test_values
1935
structured = MemoryStructuredProvider()
20-
controller_handle = StorageControllerHandle(structured, None)
36+
controller_handle = controller_handle_cls(structured, None)
2137
controller_handle.launch()
2238
assert controller_handle.listener_address is not None
2339
cs = DataSocket(controller_handle.listener_address, "Test")
@@ -40,10 +56,12 @@ def test_startup_and_shutdown(mp_logger: MPLogger, test_values: dt_test_values)
4056
assert handle.storage[table] == [data]
4157

4258

43-
def test_arrow_provider(mp_logger: MPLogger, test_values: dt_test_values) -> None:
59+
def test_arrow_provider(
60+
mp_logger: MPLogger, test_values: dt_test_values, controller_handle_cls: HandleCls
61+
) -> None:
4462
test_table, visit_ids = test_values
4563
structured = MemoryArrowProvider()
46-
controller_handle = StorageControllerHandle(structured, None)
64+
controller_handle = controller_handle_cls(structured, None)
4765
controller_handle.launch()
4866

4967
assert controller_handle.listener_address is not None

0 commit comments

Comments
 (0)