Skip to content
This repository was archived by the owner on Apr 2, 2025. It is now read-only.

Commit 387590f

Browse files
committed
update test implementation
1 parent 276e16f commit 387590f

File tree

4 files changed

+28
-11
lines changed

4 files changed

+28
-11
lines changed

bin/server.py

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,13 @@
88
OpportunityPropertiesBase,
99
OpportunityRequest,
1010
)
11-
from stapi_fastapi.models.order import Order
11+
from stapi_fastapi.models.order import Order, OrderParametersBase, OrderRequest
1212
from stapi_fastapi.models.product import (
1313
Product,
1414
Provider,
1515
ProviderRole,
1616
)
17+
from stapi_fastapi.routers.product_router import ProductRouter
1718
from stapi_fastapi.routers.root_router import RootRouter
1819

1920

@@ -44,29 +45,34 @@ async def get_order(self, order_id: str, request: Request) -> Order:
4445
class MockProductBackend(ProductBackend):
4546
def __init__(self, orders: MockOrderDB) -> None:
4647
self._opportunities: list[Opportunity] = []
47-
self._allowed_payloads: list[OpportunityRequest] = []
48+
self._allowed_payloads: list[OrderRequest] = []
4849
self._orders: MockOrderDB = orders
4950

5051
async def search_opportunities(
51-
self, product: Product, search: OpportunityRequest, request: Request
52+
self,
53+
product_router: ProductRouter,
54+
search: OpportunityRequest,
55+
request: Request,
5256
) -> list[Opportunity]:
5357
return [o.model_copy(update=search.model_dump()) for o in self._opportunities]
5458

5559
async def create_order(
56-
self, product: Product, payload: OpportunityRequest, request: Request
60+
self, product_router: ProductRouter, payload: OrderRequest, request: Request
5761
) -> Order:
5862
"""
5963
Create a new order.
6064
"""
6165
allowed: bool = any(allowed == payload for allowed in self._allowed_payloads)
66+
allowed = True
6267
if allowed:
6368
order = Order(
6469
id=str(uuid4()),
6570
geometry=payload.geometry,
6671
properties={
6772
"filter": payload.filter,
6873
"datetime": payload.datetime,
69-
"product_id": product.id,
74+
"product_id": product_router.product.id,
75+
**dict(payload.order_parameters),
7076
},
7177
links=[],
7278
)
@@ -79,6 +85,10 @@ class TestSpotlightProperties(OpportunityPropertiesBase):
7985
off_nadir: int
8086

8187

88+
class TestOrderParameters(OrderParametersBase):
89+
s3_path: str
90+
91+
8292
order_db = MockOrderDB()
8393
product_backend = MockProductBackend(order_db)
8494
root_backend = MockRootBackend(order_db)
@@ -99,6 +109,7 @@ class TestSpotlightProperties(OpportunityPropertiesBase):
99109
providers=[provider],
100110
links=[],
101111
constraints=TestSpotlightProperties,
112+
order_parameters=TestOrderParameters,
102113
backend=product_backend,
103114
)
104115

tests/backends.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ async def create_order(
6464
"filter": payload.filter,
6565
"datetime": payload.datetime,
6666
"product_id": product_router.product.id,
67-
# **payload.order_parameters,
67+
**dict(payload.order_parameters),
6868
},
6969
links=[],
7070
)

tests/conftest.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@
1212
from stapi_fastapi.models.opportunity import (
1313
Opportunity,
1414
OpportunityPropertiesBase,
15-
OpportunityRequest,
1615
)
16+
from stapi_fastapi.models.order import OrderParametersBase, OrderRequest
1717
from stapi_fastapi.models.product import Product, Provider, ProviderRole
1818
from stapi_fastapi.routers.root_router import RootRouter
1919

@@ -24,6 +24,10 @@ class TestSpotlightProperties(OpportunityPropertiesBase):
2424
off_nadir: int
2525

2626

27+
class TestSpotlightOrderProperties(OrderParametersBase):
28+
s3_path: str | None = None
29+
30+
2731
@pytest.fixture(scope="session")
2832
def base_url() -> Iterator[str]:
2933
yield "http://stapiserver"
@@ -58,6 +62,7 @@ def mock_product_test_spotlight(
5862
providers=[mock_provider],
5963
links=[],
6064
constraints=TestSpotlightProperties,
65+
order_parameters=TestSpotlightOrderProperties,
6166
backend=product_backend,
6267
)
6368

@@ -126,13 +131,14 @@ def mock_test_spotlight_opportunities() -> list[Opportunity]:
126131

127132

128133
@pytest.fixture
129-
def allowed_payloads() -> list[OpportunityRequest]:
134+
def allowed_payloads() -> list[OrderRequest]:
130135
return [
131-
OpportunityRequest(
136+
OrderRequest(
132137
geometry=Point(
133138
type="Point", coordinates=Position2D(longitude=13.4, latitude=52.5)
134139
),
135140
datetime=(datetime.now(UTC), datetime.now(UTC)),
136141
filter={},
142+
order_parameters={"s3_path": "BUCKET"},
137143
),
138144
]

tests/order_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from fastapi import status
55
from fastapi.testclient import TestClient
66
from httpx import Response
7-
from stapi_fastapi.models.opportunity import OpportunityRequest
7+
from stapi_fastapi.models.order import OrderRequest
88

99
from .backends import MockProductBackend
1010
from .utils import find_link
@@ -19,7 +19,7 @@ def new_order_response(
1919
product_id: str,
2020
product_backend: MockProductBackend,
2121
stapi_client: TestClient,
22-
allowed_payloads: list[OpportunityRequest],
22+
allowed_payloads: list[OrderRequest],
2323
) -> Response:
2424
product_backend._allowed_payloads = allowed_payloads
2525

0 commit comments

Comments
 (0)