diff --git a/ppr-api/report-templates/template-parts/registration/securitiesActNotice.html b/ppr-api/report-templates/template-parts/registration/securitiesActNotice.html index c9b51d379..d4c569ff3 100644 --- a/ppr-api/report-templates/template-parts/registration/securitiesActNotice.html +++ b/ppr-api/report-templates/template-parts/registration/securitiesActNotice.html @@ -1,132 +1,102 @@ -
- {% if securitiesActNotices is defined and change is not defined %} -
- {% endif %} -
Securities Act Notices
+{% if securitiesActNotices is defined and change is not defined %} +
+{% endif %} +
+
Securities Act Notice
{% if securitiesActNotices is defined and change is not defined %} {% for notice in securitiesActNotices %} +
{{ notice.registrationDescription|title }}
- - - - - - - - {% if notice.securitiesActOrders %} -
Notice Court/Commission Order(s)
{% for order in notice.securitiesActOrders %} - - - - - - - - - +
{% if order.courtOrder %}Court Order {% else %}Security Commission Order{% endif %}
+ + {% if order.courtName is defined %} + + + + + {% endif %} + {% if order.courtRegistry is defined %} + + + + + {% endif %} - - + + - - - - - + - + {% endfor %} {% endif %} {% if not loop.last %} -
+
{% endif %} {% endfor %} {% elif change is defined and change.securitiesActNotices is defined %} {% for notice in change.securitiesActNotices %} +
{{ notice.registrationDescription|title }}
- - - - - + - - - - {% if notice.securitiesActOrders %} -
Notice Court/Commission Order(s)
{% for order in notice.securitiesActOrders %} - - - - - - - - - +
{% if order.courtOrder %}Court Order {% else %}Security Commission Order{% endif %}
+ + {% if order.courtName is defined %} + + + + + {% endif %} + {% if order.courtRegistry is defined %} + + + + + {% endif %} - - + + - - - - - + - + {% endfor %} {% endif %} {% if not loop.last %} -
+
{% endif %} {% endfor %} {% endif %} diff --git a/ppr-api/report-templates/template-parts/search-result/financingStatement.html b/ppr-api/report-templates/template-parts/search-result/financingStatement.html index 7395e9400..f958c127a 100644 --- a/ppr-api/report-templates/template-parts/search-result/financingStatement.html +++ b/ppr-api/report-templates/template-parts/search-result/financingStatement.html @@ -106,5 +106,8 @@ {% if detail.financingStatement.courtOrderInformation is defined %} [[search-result/courtOrderInformation.html]] {% endif %} + {% if detail.financingStatement.type == 'SE' %} + [[search-result/securitiesActNotice.html]] + {% endif %} [[search-result/registeringParty.html]]
diff --git a/ppr-api/report-templates/template-parts/search-result/securitiesActNotice.html b/ppr-api/report-templates/template-parts/search-result/securitiesActNotice.html new file mode 100644 index 000000000..98049ace4 --- /dev/null +++ b/ppr-api/report-templates/template-parts/search-result/securitiesActNotice.html @@ -0,0 +1,103 @@ +{% if detail.financingStatement.securitiesActNotices is defined and change is not defined %} +
+{% endif %} +
+
Securities Act Notice
+ {% if detail.financingStatement.securitiesActNotices is defined and change is not defined %} + {% for notice in detail.financingStatement.securitiesActNotices %} +
{{ notice.registrationDescription|title }}
+ + + + + + + {% if notice.securitiesActOrders %} + {% for order in notice.securitiesActOrders %} +
{% if order.courtOrder %}Court Order {% else %}Security Commission Order{% endif %}
+ + {% if order.courtName is defined %} + + + + + {% endif %} + {% if order.courtRegistry is defined %} + + + + + {% endif %} + + + + + + + + + + + + + + {% endfor %} + {% endif %} + {% if not loop.last %} +
+ {% endif %} + {% endfor %} + {% elif change is defined and change.securitiesActNotices is defined %} + {% for notice in change.securitiesActNotices %} +
{{ notice.registrationDescription|title }}
+ + + + + + + {% if notice.securitiesActOrders %} + {% for order in notice.securitiesActOrders %} +
{% if order.courtOrder %}Court Order {% else %}Security Commission Order{% endif %}
+ + {% if order.courtName is defined %} + + + + + {% endif %} + {% if order.courtRegistry is defined %} + + + + + {% endif %} + + + + + + + + + + + + + + {% endfor %} + {% endif %} + {% if not loop.last %} +
+ {% endif %} + {% endfor %} + {% endif %} +
diff --git a/ppr-api/report-templates/template-parts/v2/style.html b/ppr-api/report-templates/template-parts/v2/style.html index 778641601..5925b9e33 100644 --- a/ppr-api/report-templates/template-parts/v2/style.html +++ b/ppr-api/report-templates/template-parts/v2/style.html @@ -412,6 +412,16 @@ font-weight: bold; } + .section-sub-title-blue { + font-family: 'BC Sans', sans-serif !important; + color: #234075; + font-size: 11pt; + font-weight: bold; + text-align: left; + line-height: 15px; + font-weight: bold; + } + .section-statement { font-family: 'BC Sans', sans-serif !important; color: #234075; diff --git a/ppr-api/src/ppr_api/models/financing_statement.py b/ppr-api/src/ppr_api/models/financing_statement.py index 3059f7a4d..1bf0dd74c 100644 --- a/ppr-api/src/ppr_api/models/financing_statement.py +++ b/ppr-api/src/ppr_api/models/financing_statement.py @@ -481,7 +481,7 @@ def find_by_registration_number(cls, registration_num: str, if not statement: raise BusinessException( - error=model_utils.ERR_FINANCING_NOT_FOUND.format(code=ResourceErrorCodes.NOT_FOUND_ERR, + error=model_utils.ERR_FINANCING_NOT_FOUND.format(code=ResourceErrorCodes.NOT_FOUND_ERR.value, registration_num=registration_num), status_code=HTTPStatus.NOT_FOUND ) @@ -492,7 +492,7 @@ def find_by_registration_number(cls, registration_num: str, account_id) if not extra_reg: raise BusinessException( - error=model_utils.ERR_REGISTRATION_ACCOUNT.format(code=ResourceErrorCodes.UNAUTHORIZED_ERR, + error=model_utils.ERR_REGISTRATION_ACCOUNT.format(code=ResourceErrorCodes.UNAUTHORIZED_ERR.value, account_id=account_id, registration_num=registration_num), status_code=HTTPStatus.UNAUTHORIZED @@ -502,7 +502,7 @@ def find_by_registration_number(cls, registration_num: str, return statement if model_utils.is_historical(statement, create): # and (not staff or create): raise BusinessException( - error=model_utils.ERR_FINANCING_HISTORICAL.format(code=ResourceErrorCodes.HISTORICAL_ERR, + error=model_utils.ERR_FINANCING_HISTORICAL.format(code=ResourceErrorCodes.HISTORICAL_ERR.value, registration_num=registration_num), status_code=HTTPStatus.BAD_REQUEST ) diff --git a/ppr-api/src/ppr_api/models/registration_utils.py b/ppr-api/src/ppr_api/models/registration_utils.py index 0186b5898..2c991e433 100644 --- a/ppr-api/src/ppr_api/models/registration_utils.py +++ b/ppr-api/src/ppr_api/models/registration_utils.py @@ -427,8 +427,6 @@ def create_securities_act_notices(registration, json_data: dict): json_data.get('securitiesActNotices'): notices = [] for notice_json in json_data.get('securitiesActNotices'): - notices.append(SecuritiesActNotice.create_from_json(notice_json, - registration.registration_ts, - registration.id)) + notices.append(SecuritiesActNotice.create_from_json(notice_json, registration.id)) registration.securities_act_notices = notices return registration diff --git a/ppr-api/src/ppr_api/models/securities_act_notice.py b/ppr-api/src/ppr_api/models/securities_act_notice.py index fb2438ddb..cf0dc545b 100644 --- a/ppr-api/src/ppr_api/models/securities_act_notice.py +++ b/ppr-api/src/ppr_api/models/securities_act_notice.py @@ -51,9 +51,10 @@ class SecuritiesActNotice(db.Model): def json(self) -> dict: """Return the securities act as a json object.""" securities_act = { - 'securitiesActNoticeType': self.securities_act_type, - 'effectiveDateTime': format_ts(self.effective_ts) + 'securitiesActNoticeType': self.securities_act_type } + if self.effective_ts: + securities_act['effectiveDateTime'] = format_ts(self.effective_ts) if self.detail_description: securities_act['description'] = self.detail_description if self.sec_act_type: @@ -86,16 +87,14 @@ def find_by_registration_id(cls, reg_id: int): return securities_acts @staticmethod - def create_from_json(json_data, registration_ts, registration_id: int): + def create_from_json(json_data, registration_id: int): """Create a securities act object from a registration json schema object: map json to db.""" securities_act = SecuritiesActNotice(securities_act_type=json_data.get('securitiesActNoticeType'), registration_id=registration_id) if json_data.get('effectiveDateTime'): securities_act.effective_ts = ts_from_iso_format(json_data.get('effectiveDateTime')) - else: - securities_act.effective_ts = registration_ts - if json_data.get('description'): - securities_act.detail_description = str(json_data.get('description')).strip() + # if json_data.get('description'): + # securities_act.detail_description = str(json_data.get('description')).strip() if json_data.get('securitiesActOrders'): orders = [] for order_json in json_data.get('securitiesActOrders'): diff --git a/ppr-api/src/ppr_api/reports/v2/report.py b/ppr-api/src/ppr_api/reports/v2/report.py index 55485aa43..11c1c7beb 100755 --- a/ppr-api/src/ppr_api/reports/v2/report.py +++ b/ppr-api/src/ppr_api/reports/v2/report.py @@ -346,7 +346,8 @@ def _substitute_template_parts(template_code): 'search-result/debtors', 'search-result/registeringParty', 'search-result/vehicleCollateral', - 'search-result/generalCollateral' + 'search-result/generalCollateral', + 'search-result/securitiesActNotice', ] # substitute template parts - marked up by [[filename]] diff --git a/ppr-api/src/ppr_api/resources/utils.py b/ppr-api/src/ppr_api/resources/utils.py index db52d5464..45e0e594a 100644 --- a/ppr-api/src/ppr_api/resources/utils.py +++ b/ppr-api/src/ppr_api/resources/utils.py @@ -266,10 +266,10 @@ def validate_financing(json_data: dict, account_id: str) -> str: return error_msg -def validate_registration(json_data): +def validate_registration(json_data: dict, account_id: str, financing_statement=None) -> str: """Perform non-schema extra validation on a non-financing registrations.""" error_msg = party_validator.validate_registration_parties(json_data) - error_msg += registration_validator.validate_registration(json_data) + error_msg += registration_validator.validate_registration(json_data, account_id, financing_statement) return error_msg diff --git a/ppr-api/src/ppr_api/resources/v1/financing_statements.py b/ppr-api/src/ppr_api/resources/v1/financing_statements.py index b020c28e0..2d1dc23cf 100644 --- a/ppr-api/src/ppr_api/resources/v1/financing_statements.py +++ b/ppr-api/src/ppr_api/resources/v1/financing_statements.py @@ -173,11 +173,6 @@ def post_amendments(registration_num: str): if not authorized(account_id, jwt) or is_bcol_help(account_id): return resource_utils.unauthorized_error_response(account_id) request_json = request.get_json(silent=True) - # Validate request data against the schema. - valid_format, errors = schema_utils.validate(request_json, 'amendmentStatement', 'ppr') - extra_validation_msg = resource_utils.validate_registration(request_json) - if not valid_format or extra_validation_msg != '': - return resource_utils.validation_error_response(errors, fs_utils.VAL_ERROR, extra_validation_msg) # payload base registration number must match path registration number if registration_num != request_json['baseRegistrationNumber']: return resource_utils.path_data_mismatch_error_response(registration_num, @@ -187,6 +182,11 @@ def post_amendments(registration_num: str): # found or historical. statement = FinancingStatement.find_by_registration_number(registration_num, account_id, is_staff_account(account_id), True) + # Validate request data against the schema. + valid_format, errors = schema_utils.validate(request_json, 'amendmentStatement', 'ppr') + extra_validation_msg = resource_utils.validate_registration(request_json, account_id, statement) + if not valid_format or extra_validation_msg != '': + return resource_utils.validation_error_response(errors, fs_utils.VAL_ERROR, extra_validation_msg) # Verify base debtor (bypassed for staff) if not statement.validate_debtor_name(request_json['debtorName'], is_staff_account(account_id)): return resource_utils.base_debtor_invalid_response() @@ -425,11 +425,6 @@ def post_discharges(registration_num: str): if not authorized(account_id, jwt) or is_bcol_help(account_id): return resource_utils.unauthorized_error_response(account_id) request_json = request.get_json(silent=True) - # Validate request data against the schema. - valid_format, errors = schema_utils.validate(request_json, 'dischargeStatement', 'ppr') - extra_validation_msg = resource_utils.validate_registration(request_json) - if not valid_format or extra_validation_msg != '': - return resource_utils.validation_error_response(errors, fs_utils.VAL_ERROR, extra_validation_msg) # payload base registration number must match path registration number if registration_num != request_json['baseRegistrationNumber']: return resource_utils.path_data_mismatch_error_response(registration_num, @@ -439,6 +434,11 @@ def post_discharges(registration_num: str): # found or historical. statement = FinancingStatement.find_by_registration_number(registration_num, account_id, is_staff_account(account_id), True) + # Validate request data against the schema. + valid_format, errors = schema_utils.validate(request_json, 'dischargeStatement', 'ppr') + extra_validation_msg = resource_utils.validate_registration(request_json, account_id, statement) + if not valid_format or extra_validation_msg != '': + return resource_utils.validation_error_response(errors, fs_utils.VAL_ERROR, extra_validation_msg) # Verify base debtor (bypassed for staff) if not statement.validate_debtor_name(request_json['debtorName'], is_staff_account(account_id)): return resource_utils.base_debtor_invalid_response() diff --git a/ppr-api/src/ppr_api/resources/v1/user_profile.py b/ppr-api/src/ppr_api/resources/v1/user_profile.py index 71529eba6..fc889ec9d 100644 --- a/ppr-api/src/ppr_api/resources/v1/user_profile.py +++ b/ppr-api/src/ppr_api/resources/v1/user_profile.py @@ -18,7 +18,7 @@ from flask import Blueprint, current_app, g, request from flask_cors import cross_origin from ppr_api.exceptions import BusinessException -from ppr_api.models import User, UserProfile +from ppr_api.models import ClientCode, User, UserProfile from ppr_api.resources import utils as resource_utils from ppr_api.services.authz import ( GENERAL_USER_GROUP, @@ -64,6 +64,8 @@ def get_user_profile(): user.user_profile = UserProfile.create_from_json(None, user.id) user.user_profile.save() profile_json = set_service_agreements(jwt, user.user_profile) + parties = ClientCode.find_by_account_id(account_id, False, True) + profile_json['hasSecuritiesActAccess'] = parties is not None and len(parties) > 0 return profile_json, HTTPStatus.OK except BusinessException as exception: diff --git a/ppr-api/src/ppr_api/utils/validators/financing_validator.py b/ppr-api/src/ppr_api/utils/validators/financing_validator.py index dc6d193f1..b7379c781 100644 --- a/ppr-api/src/ppr_api/utils/validators/financing_validator.py +++ b/ppr-api/src/ppr_api/utils/validators/financing_validator.py @@ -63,8 +63,7 @@ PPSATypes.FORESTRY_LIEN.value, PPSATypes.FORESTRY_SUB_CHARGE.value, MiscellaneousTypes.HC_NOTICE.value, - MiscellaneousTypes.WAGES_UNPAID.value, - MiscellaneousTypes.SECURITIES_NOTICE] + MiscellaneousTypes.WAGES_UNPAID.value] VC_REQUIRED_LIST = [MiscellaneousTypes.MH_NOTICE.value, PPSATypes.MARRIAGE_SEPARATION.value, PPSATypes.REPAIRER_LIEN.value, diff --git a/ppr-api/src/ppr_api/utils/validators/registration_validator.py b/ppr-api/src/ppr_api/utils/validators/registration_validator.py index baa343355..7e9f98e07 100644 --- a/ppr-api/src/ppr_api/utils/validators/registration_validator.py +++ b/ppr-api/src/ppr_api/utils/validators/registration_validator.py @@ -15,7 +15,8 @@ Validation includes verifying delete collateral ID's and timestamps. """ -from ppr_api.models import utils as model_utils, VehicleCollateral +from ppr_api.models import ClientCode, FinancingStatement, utils as model_utils, VehicleCollateral +from ppr_api.models.registration import MiscellaneousTypes COURT_ORDER_INVALID = 'CourtOrderInformation is not allowed with a base registration type of {}. ' @@ -32,14 +33,16 @@ LIFE_MISSING = 'Either Life Years or Life Infinite is required with this registration type. ' LIFE_INVALID = 'Only one of Life Years or Life Infinite is allowed. ' VC_AP_NOT_ALLOWED = 'Vehicle Collateral type AP is not allowed. ' +SE_ACCESS_INVALID = 'Not authorized: the Securities Act Notice SE type is restricted by account ID. ' -def validate_registration(json_data, financing_statement=None): +def validate_registration(json_data: dict, account_id: str, financing_statement=None): """Perform all registration data validation checks not covered by schema validation.""" error_msg = '' if 'authorizationReceived' not in json_data or not json_data['authorizationReceived']: error_msg += AUTHORIZATION_INVALID error_msg += validate_collateral(json_data, financing_statement) + error_msg += validate_securities_act_access(account_id, financing_statement) return error_msg @@ -139,3 +142,13 @@ def validate_life(json_data, financing_statement): error_msg += LIFE_INVALID return error_msg + + +def validate_securities_act_access(account_id: str, statement: FinancingStatement) -> str: + """Validate securities act registration type restricted access by account id.""" + error_msg = '' + if account_id and statement and statement.registration[0].registration_type == MiscellaneousTypes.SECURITIES_NOTICE: + parties = ClientCode.find_by_account_id(account_id, False, True) + if not parties: + error_msg += SE_ACCESS_INVALID + return error_msg diff --git a/ppr-api/tests/unit/api/test_user_profile.py b/ppr-api/tests/unit/api/test_user_profile.py index d5fb87edb..35ddbfafe 100644 --- a/ppr-api/tests/unit/api/test_user_profile.py +++ b/ppr-api/tests/unit/api/test_user_profile.py @@ -141,6 +141,7 @@ def test_get_user_profile(session, client, jwt, desc, staff, include_account, st assert 'selectConfirmationDialog' in response_data assert 'defaultDropDowns' in response_data assert 'defaultTableFilters' in response_data + assert 'hasSecuritiesActAccess' in response_data @pytest.mark.parametrize('desc,staff,include_account,status,role,data', TEST_DATA_UPDATE) diff --git a/ppr-api/tests/unit/api/test_utils.py b/ppr-api/tests/unit/api/test_utils.py index 78085cde4..b66ea635c 100644 --- a/ppr-api/tests/unit/api/test_utils.py +++ b/ppr-api/tests/unit/api/test_utils.py @@ -205,7 +205,7 @@ def test_validate_registration(session, client, jwt, desc, valid): del json_data['authorizationReceived'] # test - error_msg = resource_utils.validate_registration(json_data) + error_msg = resource_utils.validate_registration(json_data, 'PS12345') if valid: assert error_msg == '' else: diff --git a/ppr-api/tests/unit/models/test_securities_act_notice.py b/ppr-api/tests/unit/models/test_securities_act_notice.py index f9360d0e6..20a0854ab 100644 --- a/ppr-api/tests/unit/models/test_securities_act_notice.py +++ b/ppr-api/tests/unit/models/test_securities_act_notice.py @@ -23,12 +23,12 @@ # testdata pattern is ({description}, {exists}, {sec_act_id}, {sec_act_type}, {type_desc}) TEST_DATA_ID = [ - ('Exists', True, 200000000, 'PRESERVATION', 'SECURITIES ACT NOTICE OF PRESERVATION ORDER'), + ('Exists', True, 200000000, 'PRESERVATION', 'PRESERVATION ORDER'), ('Does not exist', False, 300000000, None, None) ] # testdata pattern is ({description}, {exists}, {id}, {sec_act_type}, {type_desc}) TEST_DATA_REG_ID = [ - ('Exists', True, 200000038, 'PRESERVATION', 'SECURITIES ACT NOTICE OF PRESERVATION ORDER'), + ('Exists', True, 200000038, 'PRESERVATION', 'PRESERVATION ORDER'), ('Does not exist', False, 300000000, None, None) ] @@ -65,14 +65,12 @@ def test_find_by_registration_id(session, desc, exists, reg_id, sec_act_type, ty assert sec_acts[0].registration_id == reg_id assert sec_acts[0].id assert sec_acts[0].effective_ts - assert sec_acts[0].detail_description assert sec_acts[0].securities_act_type == sec_act_type assert sec_acts[0].sec_act_type assert sec_acts[0].securities_act_orders sec_act_json = sec_acts[0].json assert sec_act_json.get('securitiesActNoticeType') == sec_act_type assert sec_act_json.get('effectiveDateTime') - assert sec_act_json.get('description') assert sec_act_json.get('registrationDescription') == type_desc assert sec_act_json.get('securitiesActOrders') else: @@ -83,17 +81,14 @@ def test_securities_act_json(session): """Assert that the securities act model renders to a json format correctly.""" now = model_utils.now_ts() sec_act_type = 'LIEN' - description = 'DETAIL DESC' sec_act = SecuritiesActNotice( id=10001, securities_act_type=sec_act_type, - effective_ts = now, - detail_description = description + effective_ts = now ) sec_act_json = { 'securitiesActNoticeType': sec_act_type, - 'effectiveDateTime': model_utils.format_ts(now), - 'description': description + 'effectiveDateTime': model_utils.format_ts(now) } assert sec_act.json == sec_act_json diff --git a/ppr-api/tests/unit/utils/test_financing_validator.py b/ppr-api/tests/unit/utils/test_financing_validator.py index 37683b0fd..f72a1ae4c 100644 --- a/ppr-api/tests/unit/utils/test_financing_validator.py +++ b/ppr-api/tests/unit/utils/test_financing_validator.py @@ -116,6 +116,16 @@ 'description': 'Fridges and stoves. Proceeds: Accts Receivable.' } ], + 'vehicleCollateral': [ + { + 'type': 'MV', + 'serialNumber': 'KNADM5A39E6904135', + 'year': 2014, + 'make': 'KIA', + 'model': 'RIO', + 'vehicleId': 974124 + } + ], 'lifeInfinite': True } SE_SP_INVALID = [ @@ -167,7 +177,6 @@ { 'securitiesActNoticeType': 'LIEN', 'effectiveDateTime': '2024-04-22T06:59:59+00:00', - 'description': 'DETAIL DESC', 'securitiesActOrders': [ { 'courtOrder': True, @@ -202,6 +211,8 @@ # testdata pattern is ({description}, {valid}, {account_id}, {registering}, {secured}, {notices}, {message content}) TEST_SE_DATA = [ (DESC_VALID, True, 'PS00002', None, None, SECURITIES_ACT_NOTICES, None), + ('Valid no general collateral', True, 'PS00002', None, None, SECURITIES_ACT_NOTICES, None), + ('Valid no vehicle collateral', True, 'PS00002', None, None, SECURITIES_ACT_NOTICES, None), ('Invalid account', False, 'PS12345', None, None, SECURITIES_ACT_NOTICES, validator.SE_ACCESS_INVALID), ('Invalid notices', False, 'PS00002', None, None, None, validator.SE_NOTICES_MISSING), ('Invalid 2 secured parties', False, 'PS00002', None, SE_SP_INVALID, SECURITIES_ACT_NOTICES, @@ -319,12 +330,10 @@ (DESC_MISSING_GC, False, 'FS', validator.GC_REQUIRED), (DESC_MISSING_GC, False, 'HN', validator.GC_REQUIRED), (DESC_MISSING_GC, False, 'WL', validator.GC_REQUIRED), - (DESC_MISSING_GC, False, 'SE', validator.GC_REQUIRED), (DESC_INCLUDES_VC, False, 'FL', validator.VC_NOT_ALLOWED), (DESC_INCLUDES_VC, False, 'FA', validator.VC_NOT_ALLOWED), (DESC_INCLUDES_VC, False, 'FS', validator.VC_NOT_ALLOWED), (DESC_INCLUDES_VC, False, 'HN', validator.VC_NOT_ALLOWED), - (DESC_INCLUDES_VC, False, 'SE', validator.VC_NOT_ALLOWED), (DESC_INCLUDES_VC, True, 'WL', None) ] # testdata pattern is ({description}, {valid}, {reg_type}, {message content}) @@ -354,6 +363,10 @@ def test_validate_se(session, desc, valid, account_id, registering, secured, not """Assert that financing statement SE registration type validation works as expected.""" # setup json_data = copy.deepcopy(FINANCING_SE) + if desc == 'Valid no general collateral': + del json_data['generalCollateral'] + elif desc == 'Valid no vehicle collateral': + del json_data['vehicleCollateral'] if notices: json_data['securitiesActNotices'] = notices if registering: @@ -568,7 +581,6 @@ def test_validate_fl_fa_fs_hn_wl(session, desc, valid, reg_type, message_content del json_data['generalCollateral'] if desc != DESC_INCLUDES_VC: del json_data['vehicleCollateral'] - error_msg = validator.validate(json_data, 'PS12345') if valid: assert error_msg == '' diff --git a/ppr-api/tests/unit/utils/test_registration_validator.py b/ppr-api/tests/unit/utils/test_registration_validator.py index d1336ad8c..823f0ad9e 100644 --- a/ppr-api/tests/unit/utils/test_registration_validator.py +++ b/ppr-api/tests/unit/utils/test_registration_validator.py @@ -492,7 +492,7 @@ def test_validate_authorization(session, desc, valid, message_content): json_data['authorizationReceived'] = False # test - error_msg = validator.validate_registration(json_data) + error_msg = validator.validate_registration(json_data, 'PS12345') if valid: assert error_msg == '' elif message_content: @@ -525,7 +525,7 @@ def test_validate_sc_ap(session): # setup json_data = copy.deepcopy(AMENDMENT_VALID) json_data['addVehicleCollateral'][0]['type'] = 'AP' - error_msg = validator.validate_registration(json_data) + error_msg = validator.validate_registration(json_data, 'PS12345') # print(error_msg) assert error_msg != '' assert error_msg.find(validator.VC_AP_NOT_ALLOWED) != -1