@@ -147,4 +147,47 @@ 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 align and merge workflow call
175+ mock_align_and_merge_call = mocker .patch (
176+ "murfey.workflows.clem.register_preprocessing_results.submit_cluster_request"
177+ )
178+
179+ # Import and set up the TransportManager only after mocking
180+ import murfey .server
181+ from murfey .server .ispyb import TransportManager
182+
183+ murfey .server ._transport_object = TransportManager ("PikaTransport" )
184+
185+ for message in preprocessing_messages :
186+ result = run (
187+ message = message ,
188+ murfey_db = murfey_db_session ,
189+ )
190+ assert result == {"success" : True }
191+ assert mock_align_and_merge_call .call_count == len (preprocessing_messages ) * len (
192+ colors
193+ )
0 commit comments