Skip to content

Commit 81ac131

Browse files
committed
refactor codebase to resolve sonar issues
1 parent c984fe5 commit 81ac131

File tree

1 file changed

+78
-41
lines changed

1 file changed

+78
-41
lines changed

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

Lines changed: 78 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import re
44
import uuid
55
from enum import Enum
6+
from enum import StrEnum
67

78
import common.validator.enums.exception_messages as ExceptionMessages
89
from common.validator.lookup_expressions.key_data import KeyData
@@ -40,6 +41,12 @@ class ExpressionType(Enum):
4041
KEYCHECK = "KEYCHECK"
4142

4243

44+
class MessageLabel(StrEnum):
45+
EXPECTED_LABEL = "Expected- "
46+
FOUND_LABEL = "Found- "
47+
VALUE_MISMATCH_MSG = "Value does not equal expected value, "
48+
49+
4350
class ExpressionChecker:
4451
def __init__(self, data_parser, summarise, report_unexpected_exception):
4552
self.data_parser = data_parser # FHIR data parser for additional functions
@@ -167,7 +174,12 @@ def _validate_integer(self, expression_rule, field_name, field_value, row) -> Er
167174
raise RecordError(
168175
ExceptionMessages.RECORD_CHECK_FAILED,
169176
"Value integer check failed",
170-
"Value does not equal expected value, Expected- " + expression_rule + " found- " + field_value,
177+
"Value does not equal expected value, "
178+
+ MessageLabel.EXPECTED_LABEL
179+
+ expression_rule
180+
+ " "
181+
+ MessageLabel.FOUND_LABEL
182+
+ field_value,
171183
)
172184
except RecordError as e:
173185
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -259,7 +271,12 @@ def _validate_equal(self, expression_rule, field_name, field_value, row) -> Erro
259271
raise RecordError(
260272
ExceptionMessages.RECORD_CHECK_FAILED,
261273
"Value equals check failed",
262-
"Value does not equal expected value, Expected- " + expression_rule + " found- " + field_value,
274+
"Value does not equal expected value, "
275+
+ MessageLabel.EXPECTED_LABEL
276+
+ expression_rule
277+
+ " "
278+
+ MessageLabel.FOUND_LABEL
279+
+ field_value,
263280
)
264281
except RecordError as e:
265282
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -285,7 +302,7 @@ def _validate_not_equal(self, expression_rule, field_name, field_value, row) ->
285302
"Value not equals check failed",
286303
"Value equals expected value when it should not, Expected- "
287304
+ expression_rule
288-
+ " found- "
305+
+ MessageLabel.FOUND_LABEL
289306
+ field_value,
290307
)
291308
except RecordError as e:
@@ -443,7 +460,12 @@ def _validate_starts_with(self, expression_rule, field_name, field_value, row) -
443460
raise RecordError(
444461
ExceptionMessages.RECORD_CHECK_FAILED,
445462
"Value starts with failure",
446-
"Value does not start as expected, Expected- " + expression_rule + " found- " + field_value,
463+
"Value does not start as expected, "
464+
+ MessageLabel.EXPECTED_LABEL
465+
+ expression_rule
466+
+ " "
467+
+ MessageLabel.FOUND_LABEL
468+
+ field_value,
447469
)
448470
except RecordError as e:
449471
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -468,7 +490,12 @@ def _validate_ends_with(self, expression_rule, field_name, field_value, row) ->
468490
raise RecordError(
469491
ExceptionMessages.RECORD_CHECK_FAILED,
470492
"Value ends with failure",
471-
"Value does not end as expected, Expected- " + expression_rule + " found- " + field_value,
493+
"Value does not end as expected, "
494+
+ MessageLabel.EXPECTED_LABEL
495+
+ expression_rule
496+
+ " "
497+
+ MessageLabel.FOUND_LABEL
498+
+ field_value,
472499
)
473500
except RecordError as e:
474501
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -532,14 +559,14 @@ def _validate_not_empty(self, _expression_rule, field_name, field_value, row) ->
532559
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
533560

534561
# Positive Validate
535-
def _validate_positive(self, _expression_rule, fieldName, fieldValue, row) -> ErrorReport:
562+
def _validate_positive(self, _expression_rule, field_name, field_value, row) -> ErrorReport:
536563
try:
537-
value = float(fieldValue)
564+
value = float(field_value)
538565
if value < 0:
539566
raise RecordError(
540567
ExceptionMessages.RECORD_CHECK_FAILED,
541568
"Value is not positive failure",
542-
"Value is not positive as expected, data- " + fieldValue,
569+
"Value is not positive as expected, data- " + field_value,
543570
)
544571
except RecordError as e:
545572
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -550,22 +577,22 @@ def _validate_positive(self, _expression_rule, fieldName, fieldValue, row) -> Er
550577
)
551578
if e.details is not None:
552579
details = e.details
553-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
580+
return ErrorReport(code, message, row, field_name, details, self.summarise)
554581
except Exception as e:
555582
if self.report_unexpected_exception:
556583
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
557-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
584+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
558585

559586
# NHSNumber Validate
560-
def _validate_nhs_number(self, _expression_rule, fieldName, fieldValue, row) -> ErrorReport:
587+
def _validate_nhs_number(self, _expression_rule, field_name, field_value, row) -> ErrorReport:
561588
try:
562589
regexRule = "^6[0-9]{10}$"
563-
result = re.search(regexRule, fieldValue)
590+
result = re.search(regexRule, field_value)
564591
if not result:
565592
raise RecordError(
566593
ExceptionMessages.RECORD_CHECK_FAILED,
567594
"NHS Number check failed",
568-
"NHS Number does not meet regex rules, data- " + fieldValue,
595+
"NHS Number does not meet regex rules, data- " + field_value,
569596
)
570597
except RecordError as e:
571598
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -576,22 +603,22 @@ def _validate_nhs_number(self, _expression_rule, fieldName, fieldValue, row) ->
576603
)
577604
if e.details is not None:
578605
details = e.details
579-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
606+
return ErrorReport(code, message, row, field_name, details, self.summarise)
580607
except Exception as e:
581608
if self.report_unexpected_exception:
582609
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
583-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
610+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
584611

585612
# Gender Validate
586-
def _validate_gender(self, _expression_rule, fieldName, fieldValue, row) -> ErrorReport:
613+
def _validate_gender(self, _expression_rule, field_name, field_value, row) -> ErrorReport:
587614
try:
588615
ruleList = ["0", "1", "2", "9"]
589616

590-
if fieldValue not in ruleList:
617+
if field_value not in ruleList:
591618
raise RecordError(
592619
ExceptionMessages.RECORD_CHECK_FAILED,
593620
"Gender check failed",
594-
"Gender value not found in array, data- " + fieldValue,
621+
"Gender value not found in array, data- " + field_value,
595622
)
596623
except RecordError as e:
597624
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -602,18 +629,18 @@ def _validate_gender(self, _expression_rule, fieldName, fieldValue, row) -> Erro
602629
)
603630
if e.details is not None:
604631
details = e.details
605-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
632+
return ErrorReport(code, message, row, field_name, details, self.summarise)
606633
except Exception as e:
607634
if self.report_unexpected_exception:
608635
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
609-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
636+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
610637

611638
# PostCode Validate
612-
def _validate_post_code(self, _expression_rule, fieldName, fieldValue, row) -> ErrorReport:
639+
def _validate_post_code(self, _expression_rule, field_name, field_value, row) -> ErrorReport:
613640
try:
614641
# UK postcode regex (allows optional space)
615642
regexRule = r"^(GIR\s?0AA|(?:(?:[A-PR-UWYZ][0-9]{1,2})|(?:[A-PR-UWYZ][A-HK-Y][0-9]{1,2})|(?:[A-PR-UWYZ][0-9][A-HJKS-UW])|(?:[A-PR-UWYZ][A-HK-Y][0-9][ABEHMNPRV-Y]))\s?[0-9][ABD-HJLNP-UW-Z]{2})$"
616-
result = re.search(regexRule, fieldValue)
643+
result = re.search(regexRule, field_value)
617644
if not result:
618645
raise RecordError(
619646
ExceptionMessages.RECORD_CHECK_FAILED, "Postcode check failed", "Postcode does not meet regex rules"
@@ -627,16 +654,16 @@ def _validate_post_code(self, _expression_rule, fieldName, fieldValue, row) -> E
627654
)
628655
if e.details is not None:
629656
details = e.details
630-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
657+
return ErrorReport(code, message, row, field_name, details, self.summarise)
631658
except Exception as e:
632659
if self.report_unexpected_exception:
633660
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
634-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
661+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
635662

636663
# Max Objects Validate
637-
def _validate_max_objects(self, expressionRule, fieldName, fieldValue, row) -> ErrorReport:
664+
def _validate_max_objects(self, expressionRule, field_name, field_value, row) -> ErrorReport:
638665
try:
639-
value = len(fieldValue)
666+
value = len(field_value)
640667
if value > int(expressionRule):
641668
raise RecordError(
642669
ExceptionMessages.RECORD_CHECK_FAILED,
@@ -652,14 +679,14 @@ def _validate_max_objects(self, expressionRule, fieldName, fieldValue, row) -> E
652679
)
653680
if e.details is not None:
654681
details = e.details
655-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
682+
return ErrorReport(code, message, row, field_name, details, self.summarise)
656683
except Exception as e:
657684
if self.report_unexpected_exception:
658685
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
659-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
686+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
660687

661688
# Default to Validate
662-
def _validate_only_if(self, expressionRule, fieldName, fieldValue, row) -> ErrorReport:
689+
def _validate_only_if(self, expressionRule, field_name, field_value, row) -> ErrorReport:
663690
try:
664691
conversionList = expressionRule.split("|")
665692
location = conversionList[0]
@@ -681,21 +708,26 @@ def _validate_only_if(self, expressionRule, fieldName, fieldValue, row) -> Error
681708
)
682709
if e.details is not None:
683710
details = e.details
684-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
711+
return ErrorReport(code, message, row, field_name, details, self.summarise)
685712
except Exception as e:
686713
if self.report_unexpected_exception:
687714
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
688-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
715+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
689716

690717
# Check with Lookup
691-
def _validate_against_lookup(self, _expression_rule, fieldName, fieldValue, row) -> ErrorReport:
718+
def _validate_against_lookup(self, _expression_rule, field_name, field_value, row) -> ErrorReport:
692719
try:
693-
result = self.data_look_up.find_lookup(fieldValue)
720+
result = self.data_look_up.find_lookup(field_value)
694721
if not result:
695722
raise RecordError(
696723
ExceptionMessages.RECORD_CHECK_FAILED,
697724
"Value lookup failure",
698-
"Value was not found in Lookup List, Expected- " + fieldValue + " found- nothing",
725+
"Value was not found in Lookup List, "
726+
+ MessageLabel.EXPECTED_LABEL
727+
+ field_value
728+
+ " "
729+
+ MessageLabel.FOUND_LABEL
730+
+ "nothing",
699731
)
700732
except RecordError as e:
701733
code = e.code if e.code is not None else ExceptionMessages.RECORD_CHECK_FAILED
@@ -706,21 +738,26 @@ def _validate_against_lookup(self, _expression_rule, fieldName, fieldValue, row)
706738
)
707739
if e.details is not None:
708740
details = e.details
709-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
741+
return ErrorReport(code, message, row, field_name, details, self.summarise)
710742
except Exception as e:
711743
if self.report_unexpected_exception:
712744
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
713-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
745+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)
714746

715747
# Check with Key Lookup
716-
def _validate_against_key(self, expressionRule, fieldName, fieldValue, row) -> ErrorReport:
748+
def _validate_against_key(self, expressionRule, field_name, field_value, row) -> ErrorReport:
717749
try:
718-
result = self.key_data.findKey(expressionRule, fieldValue)
750+
result = self.key_data.findKey(expressionRule, field_value)
719751
if not result:
720752
raise RecordError(
721753
ExceptionMessages.KEY_CHECK_FAILED,
722754
"Key lookup failure",
723-
"Value was not found in Key List, Expected- " + fieldValue + " found- nothing",
755+
"Value was not found in Key List, "
756+
+ MessageLabel.EXPECTED_LABEL
757+
+ field_value
758+
+ " "
759+
+ MessageLabel.FOUND_LABEL
760+
+ "nothing",
724761
)
725762
except RecordError as e:
726763
code = e.code if e.code is not None else ExceptionMessages.KEY_CHECK_FAILED
@@ -729,8 +766,8 @@ def _validate_against_key(self, expressionRule, fieldName, fieldValue, row) -> E
729766
)
730767
if e.details is not None:
731768
details = e.details
732-
return ErrorReport(code, message, row, fieldName, details, self.summarise)
769+
return ErrorReport(code, message, row, field_name, details, self.summarise)
733770
except Exception as e:
734771
if self.report_unexpected_exception:
735772
message = ExceptionMessages.MESSAGES[ExceptionMessages.UNEXPECTED_EXCEPTION] % (e.__class__.__name__, e)
736-
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, fieldName, "", self.summarise)
773+
return ErrorReport(ExceptionMessages.UNEXPECTED_EXCEPTION, message, row, field_name, "", self.summarise)

0 commit comments

Comments
 (0)