@@ -147,4 +147,61 @@ def test_run(
147147 assert mock_align_and_merge_call .call_count == len (preprocessing_messages ) * len (
148148 colors
149149 )
150- assert run
150+
151+
152+ def test_run_with_db (
153+ mocker : MockerFixture ,
154+ preprocessing_messages : list [dict [str , Any ]],
155+ murfey_db_session ,
156+ seed_murfey_db ,
157+ ispyb_db_session_factory ,
158+ ispyb_db_session ,
159+ seed_ispyb_db ,
160+ ):
161+ # Mock out module-level functions
162+ mock_get_security_config = mocker .patch ("murfey.server.ispyb.get_security_config" )
163+ mock_get_security_config .return_value = MagicMock ()
164+ mock_url = mocker .patch ("murfey.server.ispyb.url" )
165+ mock_url .return_value = MagicMock ()
166+ mock_create_engine = mocker .patch ("murfey.server.ispyb.create_engine" )
167+ mock_create_engine .return_value = MagicMock ()
168+
169+ # Mock the ISPyB connection
170+ mock_ispyb_sessionmaker = mocker .patch ("murfey.server.ispyb.sessionmaker" )
171+ mock_ispyb_sessionmaker .return_value = ispyb_db_session_factory
172+ mock_ispyb_sessionmaker .return_value .return_value = ispyb_db_session
173+
174+ # Mock the registration helper functions
175+ mock_register_clem_series = mocker .patch (
176+ "murfey.workflows.clem.register_preprocessing_results._register_clem_image_series"
177+ )
178+ mock_register_dcg_and_atlas = mocker .patch (
179+ "murfey.workflows.clem.register_preprocessing_results._register_dcg_and_atlas"
180+ )
181+ mock_register_grid_square = mocker .patch (
182+ "murfey.workflows.clem.register_preprocessing_results._register_grid_square"
183+ )
184+
185+ # Mock the align and merge workflow call
186+ mock_align_and_merge_call = mocker .patch (
187+ "murfey.workflows.clem.register_preprocessing_results.submit_cluster_request"
188+ )
189+
190+ # Import and set up the TransportManager only after mocking
191+ import murfey .server
192+ from murfey .server .ispyb import TransportManager
193+
194+ murfey .server ._transport_object = TransportManager ("PikaTransport" )
195+
196+ for message in preprocessing_messages :
197+ result = run (
198+ message = message ,
199+ murfey_db = murfey_db_session ,
200+ )
201+ assert result == {"success" : True }
202+ assert mock_register_clem_series .call_count == len (preprocessing_messages )
203+ assert mock_register_dcg_and_atlas .call_count == len (preprocessing_messages )
204+ assert mock_register_grid_square .call_count == len (preprocessing_messages ) - 1
205+ assert mock_align_and_merge_call .call_count == len (preprocessing_messages ) * len (
206+ colors
207+ )
0 commit comments