Skip to content

Commit

Permalink
Merge pull request #56 from ParkenDD/stricter-validation
Browse files Browse the repository at this point in the history
Stricter validation
  • Loading branch information
the-infinity committed Jun 9, 2024
2 parents 914c550 + 3e1a036 commit 260aff3
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 16 deletions.
5 changes: 3 additions & 2 deletions src/parkapi_sources/converters/bfrk_bw/base_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,9 @@
class BfrkBaseRowInput:
uid: str = StringValidator()
name: str = StringValidator()
lat: Decimal = GermanDecimalValidator()
lon: Decimal = GermanDecimalValidator()
# min / max are bounding box of Baden-Württemberg
lat: Decimal = GermanDecimalValidator(min_value=Decimal('47.5'), max_value=Decimal('49.8'))
lon: Decimal = GermanDecimalValidator(min_value=Decimal('7.5'), max_value=Decimal('10.5'))
capacity: int = IntegerValidator(allow_strings=True)
identifier_dhid: str = StringValidator()
identifier_osm: str = StringValidator()
Expand Down
4 changes: 2 additions & 2 deletions src/parkapi_sources/converters/neckarsulm_bike/converter.py
Original file line number Diff line number Diff line change
Expand Up @@ -31,8 +31,8 @@ class NeckarsulmBikePushConverter(CsvConverter):
'anzahl': 'capacity',
'lage': 'additional_name',
'eigentuemer': 'operator_name',
'X': 'lat',
'y': 'lon',
'X': 'lon',
'y': 'lat',
}

def handle_csv_string(
Expand Down
7 changes: 4 additions & 3 deletions src/parkapi_sources/models/parking_site_inputs.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,10 +73,11 @@ class StaticParkingSiteInput(BaseParkingSiteInput):
DefaultUnset,
)

lat: Decimal = NumericValidator(min_value=-90, max_value=90)
lon: Decimal = NumericValidator(min_value=-180, max_value=180)
# Set min/max to Europe borders
lat: Decimal = NumericValidator(min_value=34, max_value=72)
lon: Decimal = NumericValidator(min_value=-27, max_value=43)

capacity: OptionalUnsetNone[int] = Noneable(IntegerValidator(min_value=0, allow_strings=True)), DefaultUnset
capacity: int = Noneable(IntegerValidator(min_value=0, allow_strings=True)), DefaultUnset
capacity_disabled: OptionalUnsetNone[int] = Noneable(IntegerValidator(min_value=0, allow_strings=True)), DefaultUnset
capacity_woman: OptionalUnsetNone[int] = Noneable(IntegerValidator(min_value=0, allow_strings=True)), DefaultUnset
capacity_family: OptionalUnsetNone[int] = Noneable(IntegerValidator(min_value=0, allow_strings=True)), DefaultUnset
Expand Down
10 changes: 4 additions & 6 deletions tests/converters/bfrk_bw_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,8 @@ def test_get_static_parking_sites(bfrk_car_push_converter: BfrkBwSpnvCarPushConv

static_parking_site_inputs, import_parking_site_exceptions = bfrk_car_push_converter.handle_csv_string(bfrk_car_data)

assert len(static_parking_site_inputs) > len(
import_parking_site_exceptions
), 'There should be more valid then invalid parking sites'
assert len(static_parking_site_inputs) == 1555
assert len(import_parking_site_exceptions) == 0

validate_static_parking_site_inputs(static_parking_site_inputs)

Expand All @@ -45,8 +44,7 @@ def test_get_static_parking_sites(bfrk_bike_push_converter: BfrkBwSpnvBikePushCo

static_parking_site_inputs, import_parking_site_exceptions = bfrk_bike_push_converter.handle_csv_string(bfrk_bike_data)

assert len(static_parking_site_inputs) > len(
import_parking_site_exceptions
), 'There should be more valid then invalid parking sites'
assert len(static_parking_site_inputs) == 2000
assert len(import_parking_site_exceptions) == 1 # One failure due invalid coordinate

validate_static_parking_site_inputs(static_parking_site_inputs)
5 changes: 2 additions & 3 deletions tests/converters/neckarsulm_bike_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,7 @@ def test_get_static_parking_sites(neckarsulm_bike_push_converter: NeckarsulmBike

static_parking_site_inputs, import_parking_site_exceptions = neckarsulm_bike_push_converter.handle_csv_string(neckarsulm_data)

assert len(static_parking_site_inputs) > len(
import_parking_site_exceptions
), 'There should be more valid then invalid parking sites'
assert len(static_parking_site_inputs) == 235
assert len(import_parking_site_exceptions) == 1

validate_static_parking_site_inputs(static_parking_site_inputs)

0 comments on commit 260aff3

Please sign in to comment.