From add357e7d61b4690fe4180cecc1432a8b96eb63e Mon Sep 17 00:00:00 2001 From: Rob Aleck Date: Tue, 23 Jul 2024 12:16:56 +0100 Subject: [PATCH] chore: Update Disruption model fields to be optional (#63) * chore: Update Disruption model fields to be optional Make the 'summary', 'additional_info', 'created', and 'last_update' fields in the Disruption model optional by setting their default value to None. This allows for more flexibility when creating instances of the Disruption class and handling data that may not always be available. * Update test to model mapping --- pydantic_tfl_api/models/disruption.py | 8 ++++---- pydantic_tfl_api/models/matched_stop.py | 2 +- tests/config_for_tests.py | 18 +++++++++--------- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/pydantic_tfl_api/models/disruption.py b/pydantic_tfl_api/models/disruption.py index 424fd37..cb67f33 100644 --- a/pydantic_tfl_api/models/disruption.py +++ b/pydantic_tfl_api/models/disruption.py @@ -11,10 +11,10 @@ class Disruption(BaseModel): disruption_type: str = Field(alias='type') category_description: str = Field(alias='categoryDescription') description: str = Field(alias='description') - summary: str = Field(alias='summary') - additional_info: str = Field(alias='additionalInfo') - created: datetime = Field(alias='created') - last_update: datetime = Field(alias='lastUpdate') + summary: Optional[str] = Field(None, alias='summary') + additional_info: Optional[str] = Field(None, alias='additionalInfo') + created: Optional[datetime] = Field(None, alias='created') + last_update: Optional[datetime] = Field(None, alias='lastUpdate') affected_routes: List[AffectedRoute] = Field(alias='affectedRoutes') affected_stops: List[StopPoint] = Field(alias='affectedStops') closure_text: str = Field(alias='closureText') diff --git a/pydantic_tfl_api/models/matched_stop.py b/pydantic_tfl_api/models/matched_stop.py index 6cdbbf4..54fcc8f 100644 --- a/pydantic_tfl_api/models/matched_stop.py +++ b/pydantic_tfl_api/models/matched_stop.py @@ -9,7 +9,7 @@ class MatchedStop(BaseModel): top_most_parent_id: Optional[str] = Field(None, alias='topMostParentId') modes: list[str] stop_type: str = Field(alias='stopType') - zone: str = Field(alias='zone') + zone: Optional[str] = Field(None, alias='zone') lines: Optional[list[Identifier]] = Field([], alias='lines') status: bool = Field(alias='status') id: str = Field(alias='id') diff --git a/tests/config_for_tests.py b/tests/config_for_tests.py index 682c866..8808b14 100644 --- a/tests/config_for_tests.py +++ b/tests/config_for_tests.py @@ -129,63 +129,63 @@ "endpoint": "routeByLineIdWithDirection", "endpoint_args": ["victoria", "inbound"], "endpoint_params": {}, - "model": "Line", + "model": "RouteSequence", "result_is_empty": False, }, "routeByLineIdWithDirection_14_outbound_None_Line": { "endpoint": "routeByLineIdWithDirection", "endpoint_args": ["14", "outbound"], "endpoint_params": {}, - "model": "Line", + "model": "RouteSequence", "result_is_empty": False, }, "routeByLineIdWithDirection_northern_all_None_Line": { "endpoint": "routeByLineIdWithDirection", "endpoint_args": ["northern", "all"], "endpoint_params": {}, - "model": "Line", + "model": "RouteSequence", "result_is_empty": False, }, "lineDisruptionsByLineId_victoria_None_Line": { "endpoint": "lineDisruptionsByLineId", "endpoint_args": ["victoria"], "endpoint_params": {}, - "model": "Line", + "model": "Disruption", "result_is_empty": True, }, "lineDisruptionsByLineId_victoria_northern_None_Line": { "endpoint": "lineDisruptionsByLineId", "endpoint_args": ["victoria,northern"], "endpoint_params": {}, - "model": "Line", + "model": "Disruption", "result_is_empty": True, }, "lineDisruptionsByLineId_piccadilly_None_Line": { "endpoint": "lineDisruptionsByLineId", "endpoint_args": ["piccadilly"], "endpoint_params": {}, - "model": "Line", + "model": "Disruption", "result_is_empty": False, }, "lineDisruptionsByLineId_14_None_Line": { "endpoint": "lineDisruptionsByLineId", "endpoint_args": ["14"], "endpoint_params": {}, - "model": "Line", + "model": "Disruption", "result_is_empty": True, }, "lineDisruptionsByMode_tube_None_Line": { "endpoint": "lineDisruptionsByMode", "endpoint_args": ["tube"], "endpoint_params": {}, - "model": "Line", + "model": "Disruption", "result_is_empty": False, }, "lineDisruptionsByMode_tube_overground_None_Line": { "endpoint": "lineDisruptionsByMode", "endpoint_args": ["tube,overground"], "endpoint_params": {}, - "model": "Line", + "model": "Disruption", "result_is_empty": False, }, "stopPointById_940GZZLUASL_None_StopPoint": {