def test_load_flows_from_json_unsupported_version(self, monkeypatch, capsys): monkeypatch.setattr( "prefect.cli.build_register.read_bytes_from_path", MagicMock(return_value=json.dumps({"version": 2, "flows": []})), ) with pytest.raises(TerminalError, match="is version 2, only version 1"): load_flows_from_json("https://some/url/flows.json")
def test_load_flows_from_json_schema_error(self, monkeypatch): monkeypatch.setattr( "prefect.cli.build_register.read_bytes_from_path", MagicMock(return_value=json.dumps({"bad": "file"})), ) with pytest.raises(TerminalError, match="is not a valid Prefect flows `json` file."): load_flows_from_json("https://some/url/flows.json")
def test_load_flows_from_json_fail_read(self, monkeypatch, capsys): monkeypatch.setattr( "prefect.cli.build_register.read_bytes_from_path", MagicMock(side_effect=ValueError("oh no!")), ) with pytest.raises(TerminalError): load_flows_from_json("https://some/url/flows.json") out, _ = capsys.readouterr() assert "Error loading 'https://some/url/flows.json'" in out assert "oh no!" in out
def test_load_flows_from_json(self, monkeypatch): flows = [ Flow("flow 1").serialize(build=False), Flow("flow 2").serialize(build=False), ] data = json.dumps({"version": 1, "flows": flows}).encode("utf-8") monkeypatch.setattr( "prefect.cli.build_register.read_bytes_from_path", MagicMock(return_value=data), ) res = load_flows_from_json("https://some/url/flows.json") assert res == flows