1+ from typing import Any , Type , Union
2+
13import pandas as pd
4+ import pytest
25from pandas .testing import assert_frame_equal
36
47from openwpm .mp_logger import MPLogger
58from openwpm .storage .in_memory_storage import (
69 MemoryArrowProvider ,
710 MemoryStructuredProvider ,
811)
12+ from openwpm .storage .in_process_storage import InProcessStorageControllerHandle
913from 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