Skip to content

Commit

Permalink
Execute check_altitudes when only alt_max or alt_min
Browse files Browse the repository at this point in the history
Signed-off-by: VincentCauchois <vincent.cauchois@mnhn.fr>
  • Loading branch information
VincentCauchois committed May 4, 2023
1 parent 9e1c717 commit 0d3ce2f
Showing 1 changed file with 36 additions and 24 deletions.
60 changes: 36 additions & 24 deletions backend/gn_module_import/checks/sql/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -447,30 +447,41 @@ def check_dates(imprt, fields):


def check_altitudes(imprt, fields):
if "altitude_min" not in fields or "altitude_max" not in fields:
return
alti_min_field = fields["altitude_min"]
alti_max_field = fields["altitude_max"]
alti_min_synthese_field = getattr(ImportSyntheseData, alti_min_field.synthese_field)
alti_max_synthese_field = getattr(ImportSyntheseData, alti_max_field.synthese_field)
report_erroneous_rows(
imprt,
error_type="ALTI_MIN_SUP_ALTI_MAX",
error_column=alti_min_field.name_field,
whereclause=(alti_min_synthese_field > alti_max_synthese_field),
)
report_erroneous_rows(
imprt,
error_type="INVALID_INTEGER",
error_column=alti_min_field.name_field,
whereclause=(alti_min_synthese_field < 0),
)
report_erroneous_rows(
imprt,
error_type="INVALID_INTEGER",
error_column=alti_max_field.name_field,
whereclause=(alti_max_synthese_field < 0),
)
if "altitude_min" in fields:
alti_min_field = fields["altitude_min"]
alti_min_field_name = alti_min_field.name_field
alti_min_synthese_field = getattr(ImportSyntheseData, alti_min_field.synthese_field)
report_erroneous_rows(
imprt,
error_type="INVALID_INTEGER",
error_column=alti_min_field_name,
whereclause=(alti_min_synthese_field < 0),
)
else:
alti_min_field_name = "altitude_min"
alti_min_synthese_field = getattr(ImportSyntheseData, "altitude_min")

if "altitude_max" in fields:
alti_max_field = fields["altitude_max"]
alti_max_field_name = alti_max_field.name_field
alti_max_synthese_field = getattr(ImportSyntheseData, alti_max_field.synthese_field)
report_erroneous_rows(
imprt,
error_type="INVALID_INTEGER",
error_column=alti_max_field_name,
whereclause=(alti_max_synthese_field < 0),
)
else:
alti_max_synthese_field = getattr(ImportSyntheseData, "altitude_max")

# No need to assert "altitude_min <= altitude_max" if both are not specified
if "altitude_min" in fields or "altitude_max" in fields:
report_erroneous_rows(
imprt,
error_type="ALTI_MIN_SUP_ALTI_MAX",
error_column=alti_min_field_name,
whereclause=(alti_min_synthese_field > alti_max_synthese_field),
)


def check_depths(imprt, fields):
Expand All @@ -480,6 +491,7 @@ def check_depths(imprt, fields):
depth_max_field = fields["depth_max"]
depth_min_synthese_field = getattr(ImportSyntheseData, depth_min_field.synthese_field)
depth_max_synthese_field = getattr(ImportSyntheseData, depth_max_field.synthese_field)

report_erroneous_rows(
imprt,
error_type="DEPTH_MIN_SUP_ALTI_MAX", # Yes, there is a typo in db...
Expand Down

0 comments on commit 0d3ce2f

Please # to comment.