Skip to content
This repository has been archived by the owner on Sep 18, 2024. It is now read-only.

Commit

Permalink
linting and formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
Rwolfe-Nava committed Aug 1, 2024
1 parent dcd3b74 commit bc1927d
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 23 deletions.
7 changes: 2 additions & 5 deletions api/src/api/opportunities_v1/opportunity_routes.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,13 +54,10 @@
"funding_category": {"one_of": ["recovery_act", "arts", "natural_resources"]},
"funding_instrument": {"one_of": ["cooperative_agreement", "grant"]},
"opportunity_status": {"one_of": ["forecasted", "posted"]},
"post_date": {
"start_date": "2024-01-01",
"end_date": "2024-02-01"
},
"post_date": {"start_date": "2024-01-01", "end_date": "2024-02-01"},
"close_date": {
"start_date": "2024-01-01",
}
},
},
"pagination": {
"order_by": "opportunity_id",
Expand Down
13 changes: 4 additions & 9 deletions api/src/api/opportunities_v1/opportunity_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from src.api.schemas.extension import Schema, fields, validators
from src.api.schemas.response_schema import AbstractResponseSchema, PaginationMixinSchema
from src.api.schemas.search_schema import StrSearchSchemaBuilder, DateSearchSchemaBuilder
from src.api.schemas.search_schema import DateSearchSchemaBuilder, StrSearchSchemaBuilder
from src.constants.lookup_constants import (
ApplicantType,
FundingCategory,
Expand Down Expand Up @@ -322,19 +322,14 @@ class OpportunitySearchFilterV1Schema(Schema):
)

post_date = fields.Nested(
DateSearchSchemaBuilder("PostDateFilterV1Schema")
.with_start_date()
.with_end_date()
.build()
DateSearchSchemaBuilder("PostDateFilterV1Schema").with_start_date().with_end_date().build()
)

close_date = fields.Nested(
DateSearchSchemaBuilder("CloseDateFilterV1Schema")
.with_start_date()
.with_end_date()
.build()
DateSearchSchemaBuilder("CloseDateFilterV1Schema").with_start_date().with_end_date().build()
)


class OpportunityFacetV1Schema(Schema):
opportunity_status = fields.Dict(
keys=fields.String(),
Expand Down
11 changes: 8 additions & 3 deletions api/src/api/schemas/search_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def validates_non_empty(self, data: dict, **kwargs: Any) -> None:
]
)


class BaseSearchSchemaBuilder:
def __init__(self, schema_class_name: str):
# The schema class name is used on the endpoint
Expand All @@ -43,6 +44,7 @@ def __init__(self, schema_class_name: str):
def build(self) -> Schema:
return BaseSearchSchema.from_dict(self.schema_fields, name=self.schema_class_name) # type: ignore


class StrSearchSchemaBuilder(BaseSearchSchemaBuilder):
"""
Builder for setting up a filter in a search endpoint schema.
Expand Down Expand Up @@ -77,6 +79,7 @@ class OpportunitySearchFilterSchema(Schema):
.build()
)
"""

def __init__(self, schema_class_name: str):
super().__init__(schema_class_name)

Expand Down Expand Up @@ -111,6 +114,7 @@ def with_one_of(
def build(self) -> Schema:
return super().build()


class DateSearchSchemaBuilder(BaseSearchSchemaBuilder):
"""
Builder for setting up a filter for a date in the search endpoint schema.
Expand Down Expand Up @@ -150,16 +154,17 @@ class DateSearchSchemaBuilder(BaseSearchSchemaBuilder):
.build()
)
"""

def __init__(self, schema_class_name: str):
super().__init__(schema_class_name)

def with_start_date(self) -> "StrSearchSchemaBuilder":
def with_start_date(self) -> "DateSearchSchemaBuilder":
self.schema_fields["start_date"] = fields.Date(allow_none=True)
return self

def with_end_date(self) -> "StrSearchSchemaBuilder":
def with_end_date(self) -> "DateSearchSchemaBuilder":
self.schema_fields["end_date"] = fields.Date(allow_none=True)
return self

def build(self) -> Schema:
return super().build()
return super().build()
4 changes: 2 additions & 2 deletions api/tests/src/api/opportunities_v1/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,10 +66,10 @@ def get_search_request(

if agency_one_of is not None:
filters["agency"] = {"one_of": agency_one_of}

if post_date is not None:
filters["post_date"] = post_date

if close_date is not None:
filters["close_date"] = close_date

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -721,7 +721,12 @@ def test_search_filters_200(
(get_search_request(post_date={"start_date": None, "end_date": None}), 200),
(get_search_request(post_date={"start_date": "2020-01-01", "end_date": None}), 200),
(get_search_request(post_date={"start_date": None, "end_date": "2020-02-01"}), 200),
(get_search_request(post_date={"start_date": "2020-01-01", "end_date": "2020-02-01"}), 200),
(
get_search_request(
post_date={"start_date": "2020-01-01", "end_date": "2020-02-01"}
),
200,
),
(get_search_request(post_date={"start_date": "I am not a date"}), 422),
(get_search_request(post_date={"start_date": "123-456-789"}), 422),
(get_search_request(post_date={"start_date": "5"}), 422),
Expand All @@ -730,7 +735,6 @@ def test_search_filters_200(
(get_search_request(post_date={"end_date": "123-456-789"}), 422),
(get_search_request(post_date={"end_date": "5"}), 422),
(get_search_request(post_date={"end_date": 5}), 422),
# Close Date
(get_search_request(close_date={"start_date": None}), 200),
(get_search_request(close_date={"end_date": None}), 200),
Expand All @@ -739,7 +743,12 @@ def test_search_filters_200(
(get_search_request(close_date={"start_date": None, "end_date": None}), 200),
(get_search_request(close_date={"start_date": "2020-01-01", "end_date": None}), 200),
(get_search_request(close_date={"start_date": None, "end_date": "2020-02-01"}), 200),
(get_search_request(close_date={"start_date": "2020-01-01", "end_date": "2020-02-01"}), 200),
(
get_search_request(
close_date={"start_date": "2020-01-01", "end_date": "2020-02-01"}
),
200,
),
(get_search_request(close_date={"start_date": "I am not a date"}), 422),
(get_search_request(close_date={"start_date": "123-456-789"}), 422),
(get_search_request(close_date={"start_date": "5"}), 422),
Expand All @@ -748,7 +757,7 @@ def test_search_filters_200(
(get_search_request(close_date={"end_date": "123-456-789"}), 422),
(get_search_request(close_date={"end_date": "5"}), 422),
(get_search_request(close_date={"end_date": 5}), 422),
]
],
)
def test_search_validate_date_filters(
self, client, api_auth_token, search_request, expected_status_code
Expand Down

0 comments on commit bc1927d

Please sign in to comment.