From 8689694fe5e4f5ac42ea37428aabd8cca82ce0ae Mon Sep 17 00:00:00 2001 From: "jake@prefect.io" Date: Tue, 11 Feb 2025 00:18:39 -0500 Subject: [PATCH] add test --- tests/test_flows.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/test_flows.py b/tests/test_flows.py index 561775a5d4b1..cca83f0bb138 100644 --- a/tests/test_flows.py +++ b/tests/test_flows.py @@ -45,6 +45,7 @@ from prefect.exceptions import ( CancelledRun, InvalidNameError, + MissingFlowError, ParameterTypeError, ReservedArgumentError, ScriptError, @@ -4968,6 +4969,41 @@ def pretend_flow(): "my.module.pretend_flow", use_placeholder_flow=True ) + async def test_load_flow_from_non_flow_func( + self, prefect_client: "PrefectClient", monkeypatch + ): + def not_quite_a_flow(): + pass + + _load_flow_from_entrypoint = mock.Mock(side_effect=MissingFlowError) + monkeypatch.setattr( + "prefect.flows.load_flow_from_entrypoint", + _load_flow_from_entrypoint, + ) + + _import_object = mock.Mock(return_value=not_quite_a_flow) + monkeypatch.setattr( + "prefect.flows.import_object", + _import_object, + ) + + flow_id = await prefect_client.create_flow_from_name(not_quite_a_flow.__name__) + + deployment_id = await prefect_client.create_deployment( + name="My Module Deployment", + entrypoint="my_file.py:not_quite_a_flow", + flow_id=flow_id, + ) + + flow_run = await prefect_client.create_flow_run_from_deployment( + deployment_id=deployment_id + ) + + result = await load_flow_from_flow_run(flow_run) + + assert isinstance(result, Flow) + assert result.fn == not_quite_a_flow + class TestTransactions: def test_grouped_rollback_behavior(self):