Skip to content

Commit 0341f6e

Browse files
committed
add test for validation and resolve reviews
1 parent 84f1df6 commit 0341f6e

File tree

8 files changed

+269
-120
lines changed

8 files changed

+269
-120
lines changed

lambdas/shared/src/common/validator/error_report/dq_reporter.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
from dateutil import parser
55

66
from common.validator.constants.enums import ErrorLevels
7-
from src.common.validator.constants.error_schema import error_report
8-
from src.common.validator.error_report.record_error import ErrorReport
7+
from common.validator.constants.error_schema import error_report
8+
from common.validator.error_report.record_error import ErrorReport
99

1010

1111
class DQReporter:

lambdas/shared/src/common/validator/error_report/error_reporter.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
from common.validator.constants.enums import ErrorLevels
12
from common.validator.error_report.dq_reporter import DQReporter
2-
from src.common.validator.constants.enums import ErrorLevels
3-
from src.common.validator.error_report.record_error import ErrorReport
4-
from src.common.validator.parsers.paser_interface import PaserInterface
3+
from common.validator.error_report.record_error import ErrorReport
4+
from src.common.validator.parsers.base_parser import BaseParser
55

66

77
# Collect and add error record to the list
@@ -29,7 +29,7 @@ def check_error_record_for_fail(expression_identifier: str, error_records: list[
2929
return False
3030

3131

32-
def build_error_report(event_id: str, data_parser: PaserInterface, error_records: list[ErrorReport]) -> dict:
32+
def build_error_report(event_id: str, data_parser: BaseParser, error_records: list[ErrorReport]) -> dict:
3333
if data_parser.get_data_format() == "fhir":
3434
occurrence_date_time = data_parser.extract_field_value("occurrenceDateTime")
3535
else:

lambdas/shared/src/common/validator/expression_checker.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# Root and base type expression checker functions
21
import datetime
32
import re
43
import uuid

lambdas/shared/src/common/validator/parsers/paser_interface.py renamed to lambdas/shared/src/common/validator/parsers/base_parser.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
# validation_engine/sources/source_definitions.py
2-
31
from abc import ABC, abstractmethod
2+
from typing import Any
43

54
from common.validator.parsers.csv_line_parser import CSVLineParser
65
from common.validator.parsers.fhir_parser import FHIRParser
76

87

9-
class PaserInterface(ABC):
8+
class BaseParser(ABC):
109
"""Defines a common interface for all data extractors."""
1110

1211
@abstractmethod
@@ -18,20 +17,20 @@ def get_data_format(self) -> str:
1817
pass
1918

2019

21-
class FHIRInterface(PaserInterface):
20+
class FHIRInterface(BaseParser):
2221
def __init__(self, fhir_data: dict):
2322
self.fhir_parser = FHIRParser()
2423
self.fhir_parser.parse_fhir_data(fhir_data)
2524

2625
def get_data_format(self) -> str:
2726
return "fhir"
2827

29-
def extract_field_values(self, field_path) -> list[str]:
28+
def extract_field_values(self, field_path) -> list[Any]:
3029
fhir_value = self.fhir_parser.get_fhir_value_list(field_path)
3130
return fhir_value
3231

3332

34-
class BatchInterface(PaserInterface):
33+
class BatchInterface(BaseParser):
3534
def __init__(self, csv_row: dict[str, str]):
3635
self.csv_line_parser = CSVLineParser()
3736
self.csv_line_parser.parse_csv_line(csv_row)

lambdas/shared/src/common/validator/parsers/schema_parser.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ def __init__(self) -> None:
2525
self.schema_file = {}
2626
self.expressions = {}
2727

28-
def parse_schema(self, schema_file: dict) -> None:
28+
def parse_schema(self, schema_file: dict) -> dict:
2929
"""
3030
Loads a schema definition (JSON/dict) and extracts expressions.
3131
"""

lambdas/shared/src/common/validator/validator.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from common.validator.error_report.record_error import ErrorReport
1111
from common.validator.expression_checker import ExpressionChecker
1212
from common.validator.parsers.schema_parser import SchemaParser
13-
from src.common.validator.parsers.paser_interface import BatchInterface, FHIRInterface, PaserInterface
13+
from src.common.validator.parsers.base_parser import BaseParser, BatchInterface, FHIRInterface
1414

1515

1616
class Validator:
@@ -23,7 +23,7 @@ def _validate_expression(
2323
self,
2424
expression_validator: ExpressionChecker,
2525
expression: dict,
26-
data_parser: PaserInterface,
26+
data_parser: BaseParser,
2727
error_records: list[ErrorReport],
2828
inc_header_in_row_count: bool,
2929
) -> ErrorReport | int:
@@ -54,11 +54,9 @@ def _validate_expression(
5454

5555
try:
5656
expression_values = data_parser.extract_field_values(expression_fieldname)
57-
print(f"Extracted values for field {expression_fieldname}: {expression_values}")
5857
except Exception as e:
5958
message = f"Data get values Unexpected exception [{e.__class__.__name__}]: {e}"
6059
error_record = ErrorReport(code=ExceptionLevels.PARSING_ERROR, message=message)
61-
# original code had self.CriticalErrorLevel. Replaced with error_level
6260
add_error_record(
6361
error_records, error_record, expression_error_group, expression_name, expression_id, error_level
6462
)

lambdas/shared/tests/test_common/validator/test_application_fhir.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def setUp(self):
1515
self.FHIRFilePath = validation_folder / "sample_data/vaccination.json"
1616
self.schemaFilePath = validation_folder / "test_schemas/test_schema.json"
1717

18-
def test_validation(self):
18+
def test_fhir_validation(self):
1919
start = time.time()
2020

2121
SchemaFile = parse_test_file(self.schemaFilePath)

0 commit comments

Comments
 (0)