Skip to content

Commit

Permalink
Deprecate create_orion_api in favor of create_api_app (PrefectHQ#…
Browse files Browse the repository at this point in the history
  • Loading branch information
zanieb committed May 30, 2023
1 parent 1c5b7e6 commit dcfeeba
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 11 deletions.
10 changes: 8 additions & 2 deletions src/prefect/server/api/server.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
import prefect.server.services as services
import prefect.settings
from prefect._internal.compatibility.experimental import enabled_experiments
from prefect._internal.compatibility.deprecated import deprecated_callable
from prefect.logging import get_logger
from prefect.server.api.dependencies import EnforceMinimumAPIVersion
from prefect.server.exceptions import ObjectNotFoundError
Expand Down Expand Up @@ -207,7 +208,12 @@ async def prefect_object_not_found_exception_handler(
)


def create_orion_api(
@deprecated_callable(start_date="May 2023", help="Use `create_api_app` instead.")
def create_orion_api(*args, **kwargs) -> FastAPI:
return create_orion_api(*args, **kwargs)


def create_api_app(
router_prefix: Optional[str] = "",
dependencies: Optional[List[Depends]] = None,
health_check_path: str = "/health",
Expand Down Expand Up @@ -527,7 +533,7 @@ def on_service_exit(service, task):
version=API_VERSION,
lifespan=lifespan,
)
api_app = create_orion_api(
api_app = create_api_app(
fast_api_app_kwargs={
"exception_handlers": {
# NOTE: FastAPI special cases the generic `Exception` handler and
Expand Down
18 changes: 9 additions & 9 deletions tests/server/api/test_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
API_ROUTERS,
SERVER_API_VERSION,
_memoize_block_auto_registration,
create_orion_api,
create_api_app,
create_app,
method_paths_from_routes,
)
Expand Down Expand Up @@ -149,7 +149,7 @@ class TestCreateOrionAPI:
}

def test_includes_all_default_paths(self):
app = create_orion_api()
app = create_api_app()

expected = self.BUILTIN_ROUTES.copy()

Expand All @@ -159,7 +159,7 @@ def test_includes_all_default_paths(self):
assert method_paths_from_routes(app.router.routes) == expected

def test_allows_router_omission_with_null_override(self):
app = create_orion_api(router_overrides={"/logs": None})
app = create_api_app(router_overrides={"/logs": None})

routes = method_paths_from_routes(app.router.routes)
assert all("/logs" not in route for route in routes)
Expand All @@ -173,7 +173,7 @@ def test_checks_for_router_paths_during_override(self):
ValueError,
match="override for '/logs' is missing paths",
) as exc:
create_orion_api(router_overrides={"/logs": router})
create_api_app(router_overrides={"/logs": router})

# These are displayed in a non-deterministic order
assert exc.match("POST /logs/filter")
Expand All @@ -186,7 +186,7 @@ def test_checks_for_changed_prefix_during_override(self):
ValueError,
match="Router override for '/logs' defines a different prefix '/foo'",
):
create_orion_api(router_overrides={"/logs": router})
create_api_app(router_overrides={"/logs": router})

def test_checks_for_new_prefix_during_override(self):
router = APIRouter(prefix="/foo")
Expand All @@ -195,7 +195,7 @@ def test_checks_for_new_prefix_during_override(self):
KeyError,
match="Router override provided for prefix that does not exist: '/foo'",
):
create_orion_api(router_overrides={"/foo": router})
create_api_app(router_overrides={"/foo": router})

def test_only_includes_missing_paths_in_override_error(self):
router = APIRouter(prefix="/logs")
Expand All @@ -208,7 +208,7 @@ def foo():
ValueError,
match="override for '/logs' is missing paths.* {'POST /logs/filter'}",
):
create_orion_api(router_overrides={"/logs": router})
create_api_app(router_overrides={"/logs": router})

def test_override_uses_new_router(self):
router = APIRouter(prefix="/logs")
Expand All @@ -222,7 +222,7 @@ def foo():
logs_filter = MagicMock()
router.post("/filter")(logs_filter)

app = create_orion_api(router_overrides={"/logs": router})
app = create_api_app(router_overrides={"/logs": router})
client = testclient.TestClient(app)
client.post("/logs")
logs.assert_called_once()
Expand All @@ -248,7 +248,7 @@ def bar():
def foobar():
return logs_get()

app = create_orion_api(router_overrides={"/logs": router})
app = create_api_app(router_overrides={"/logs": router})

client = testclient.TestClient(app)
client.get("/logs/").raise_for_status()
Expand Down

0 comments on commit dcfeeba

Please sign in to comment.