Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions legal-api/poetry.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion legal-api/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "legal-api"
version = "3.1.15"
version = "3.1.16"
description = ""
authors = [
{name = "thor",email = "1042854+thorwolpert@users.noreply.github.com"}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ def _get_continuation_in_data(business: Business):
"incorporationDate": incorporation_date
}
if jurisdiction.expro_identifier or jurisdiction.expro_legal_name:
continuation_in["xpro"] = {
continuation_in["expro"] = {
"identifier": jurisdiction.expro_identifier,
"legalName": jurisdiction.expro_legal_name
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ def validate(filing_json: dict) -> Error | None: # pylint: disable=too-many-bra
return Error(HTTPStatus.FORBIDDEN,
[{"error": babel(f"{legal_type} does not support continuation in filing.")}])

msg.extend(validate_continuation_in_xpro_business_in_colin(
msg.extend(validate_continuation_in_expro_business_in_colin(
filing_json["filing"][filing_type].get("business"),
f"/filing/{filing_type}/business"
))
Expand Down Expand Up @@ -250,17 +250,17 @@ def validate_continuation_in_court_order(filing: dict, filing_type) -> list:
return []


def validate_continuation_in_xpro_business_in_colin(xpro: dict, path: str, skip_founding_date: bool = False) -> list:
def validate_continuation_in_expro_business_in_colin(expro: dict, path: str, skip_founding_date: bool = False) -> list:
"""Validate continuation EXPRO business by making a call to Colin API."""
msg = []
business_identifier_path = f"{path}/identifier"
business_legal_name_path = f"{path}/legalName"
business_founding_date_path = f"{path}/foundingDate"

if xpro:
identifier = xpro["identifier"]
legal_name = xpro.get("legalName")
founding_date = xpro.get("foundingDate")
if expro:
identifier = expro["identifier"]
legal_name = expro.get("legalName")
founding_date = expro.get("foundingDate")
response = colin.query_business(identifier)
response_json = response.json()
if response.status_code != HTTPStatus.OK:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,8 @@
validate_share_structure,
)
from legal_api.services.filings.validations.continuation_in import (
validate_continuation_in_expro_business_in_colin,
validate_continuation_in_foreign_jurisdiction,
validate_continuation_in_xpro_business_in_colin,
)
from legal_api.services.filings.validations.continuation_out import validate_continuation_out_date
from legal_api.services.filings.validations.incorporation_application import (
Expand Down Expand Up @@ -217,9 +217,9 @@ def _validate_continuation_in_correction(filing_dict, filing_type, legal_type):
f"/filing/{filing_type}/continuationIn",
skip_affidavit=True
))
msg.extend(validate_continuation_in_xpro_business_in_colin(
continuation_in.get("xpro"),
f"/filing/{filing_type}/continuationIn/xpro",
msg.extend(validate_continuation_in_expro_business_in_colin(
continuation_in.get("expro"),
f"/filing/{filing_type}/continuationIn/expro",
skip_founding_date=True
))
return msg
Expand Down
6 changes: 5 additions & 1 deletion legal-api/src/legal_api/utils/util.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,11 @@ def build_schema_error_response(errors):
"validator": context.validator,
"validatorValue": context.validator_value
})
formatted_errors.append({"path": "/".join(error.path), "error": error.message, "context": validation_errors})
formatted_errors.append({
"path": "/".join([str(path) for path in error.path]),
"error": error.message,
"context": validation_errors
})
return formatted_errors


Expand Down
6 changes: 3 additions & 3 deletions legal-api/tests/unit/resources/v2/test_business_extended.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ def _create_continuation_in_business(business):
'legalName': 'HAULER SERVICES',
'identifier': 'AB1234567',
'incorporationDate': '2020-01-01',
'xpro': {
'expro': {
'identifier': 'A0077779',
'legalName': 'Test Company Inc.'
}
Expand All @@ -194,8 +194,8 @@ def _create_continuation_in_business(business):
identifier=data['identifier'],
legal_name=data['legalName'],
incorporation_date=LegislationDatetime.as_utc_timezone_from_legislation_date_str(data['incorporationDate']),
expro_identifier=data['xpro']['identifier'],
expro_legal_name=data['xpro']['legalName']
expro_identifier=data['expro']['identifier'],
expro_legal_name=data['expro']['legalName']
)
business.jurisdictions.append(jurisdiction)
business.save()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1951,7 +1951,7 @@ def mockFlagsValue(flag, _user=None, _account_id=None):
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

if filing_status == Filing.Status.APPROVED.value:
Expand Down
2 changes: 1 addition & 1 deletion legal-api/tests/unit/services/filings/test_schemas.py
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,6 @@ def test_validate_schema_bad_cr(app):
err = schemas.validate_against_schema(cr)

assert {'error': "", 'path': 'filing', 'context': []}.keys() == err.msg[0].keys()
assert "is not valid under any of the given schemas" in err.msg[0]['error']
assert "'this_first_name_maximum_length_is_over' is too long" == err.msg[0]['error']

assert err.code == HTTPStatus.UNPROCESSABLE_ENTITY
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from business_model.models import Business
from legal_api.services import NameXService
from legal_api.services.filings.validations.validation import validate
from legal_api.services.filings.validations.continuation_in import validate_continuation_in_foreign_jurisdiction, validate_continuation_in_xpro_business_in_colin
from legal_api.services.filings.validations.continuation_in import validate_continuation_in_foreign_jurisdiction, validate_continuation_in_expro_business_in_colin
from registry_schemas.example_data import CONTINUATION_IN

from tests.unit.services.filings.validations import create_party, create_party_address, lists_are_equal
Expand Down Expand Up @@ -86,7 +86,7 @@ def test_invalid_nr_continuation_in(mocker, app, session, monkeypatch):
}]
}
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])
with patch.object(NameXService, 'query_nr_number', return_value=MockResponse(invalid_nr_response)):
err = validate(None, filing)
Expand Down Expand Up @@ -127,7 +127,7 @@ def test_continuation_in_parties_missing_role(mocker, app, session, legal_type,
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

err = validate(None, filing)
Expand Down Expand Up @@ -170,7 +170,7 @@ def test_continuation_in_parties_invalid_role(mocker, app, session, parties, exp

mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin', return_value=[])

err = validate(None, filing)

Expand Down Expand Up @@ -378,7 +378,7 @@ def test_validate_continuation_in_office(session, mocker, test_name, legal_type,
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

err = validate(None, filing)
Expand Down Expand Up @@ -684,7 +684,7 @@ def test_validate_continuation_in_share_classes(session, mocker, test_name, lega
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

# perform test
Expand Down Expand Up @@ -726,7 +726,7 @@ def test_continuation_in_court_orders(mocker, app, session,
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

err = validate(None, filing)
Expand Down Expand Up @@ -764,7 +764,7 @@ def test_continuation_in_foreign_jurisdiction(mocker, app, session, legal_type,
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

err = validate(None, filing)
Expand All @@ -776,7 +776,7 @@ def test_continuation_in_foreign_jurisdiction(mocker, app, session, legal_type,
assert not err


def test_validate_continuation_in_xpro_business_in_colin(mocker, app, session, monkeypatch):
def test_validate_continuation_in_expro_business_in_colin(mocker, app, session, monkeypatch):
"""Assert valid continuation EXPRO business"""
monkeypatch.setattr(
'legal_api.services.flags.value',
Expand All @@ -790,14 +790,14 @@ def test_validate_continuation_in_xpro_business_in_colin(mocker, app, session, m
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=(404, {}))

err = validate(None, filing)
assert err.code == HTTPStatus.BAD_REQUEST


def test_validate_continuation_in_xpro_business_in_colin_founding_date_mismatch(mocker, app, session):
def test_validate_continuation_in_expro_business_in_colin_founding_date_mismatch(mocker, app, session):
"""Assert continuation EXPRO business with founding date mismatch."""
filing = _get_continuation_in_template()

Expand All @@ -820,14 +820,14 @@ def test_validate_continuation_in_xpro_business_in_colin_founding_date_mismatch(
}
))

err = validate_continuation_in_xpro_business_in_colin(
err = validate_continuation_in_expro_business_in_colin(
filing["filing"]["continuationIn"].get("business"),
f"/filing/continuationIn/business")
assert err[0]['error'] == 'Founding date does not match with founding date from Colin.'
assert err[0]['path'] == '/filing/continuationIn/business/foundingDate'


def test_validate_continuation_in_xpro_business_in_colin_founding_date_match(mocker, app, session):
def test_validate_continuation_in_expro_business_in_colin_founding_date_match(mocker, app, session):
"""Assert continuation EXPRO business with matching founding date."""
filing = _get_continuation_in_template()

Expand All @@ -849,7 +849,7 @@ def test_validate_continuation_in_xpro_business_in_colin_founding_date_match(moc
}
))

err = validate_continuation_in_xpro_business_in_colin(
err = validate_continuation_in_expro_business_in_colin(
filing["filing"]["continuationIn"].get("business"),
f"/filing/continuationIn/business")
assert len(err) == 0
Expand Down Expand Up @@ -916,7 +916,7 @@ def test_validate_before_and_after_approval(mocker, app, session, test_status, i
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

err = validate(None, filing)
Expand Down Expand Up @@ -976,7 +976,7 @@ def test_continuation_in_share_class_series_validation(mocker, app, session, leg
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request',
return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin',
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin',
return_value=[])

err = validate(None, filing)
Expand Down Expand Up @@ -1018,7 +1018,7 @@ def test_continuation_in_parties_delivery_address_validation(mocker, app, sessio
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_roles', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin', return_value=[])

err = validate(None, filing)

Expand Down Expand Up @@ -1081,7 +1081,7 @@ def test_validate_continuation_in_effective_date(mocker, app, session, jwt, test
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_roles', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_pdf', return_value=None)
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_name_request', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_xpro_business_in_colin', return_value=[])
mocker.patch('legal_api.services.filings.validations.continuation_in.validate_continuation_in_expro_business_in_colin', return_value=[])

# perform test
with freeze_time(now):
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -777,7 +777,7 @@ def test_validate_continuation_in_field_lengths(mocker, app, session, jwt,
assert err is None


def test_validate_continuation_in_xpro_founding_date_match(mocker, app, session, jwt):
def test_validate_continuation_in_expro_founding_date_match(mocker, app, session, jwt):
"""Assert continuation EXPRO business with matching founding date."""
identifier = 'BC1234567'
business = factory_business(identifier, entity_type='C')
Expand All @@ -793,7 +793,7 @@ def test_validate_continuation_in_xpro_founding_date_match(mocker, app, session,
'legalName': 'HAULER SERVICES',
'identifier': 'AB1234567',
'incorporationDate': dt.now().date().isoformat(),
'xpro': {
'expro': {
'identifier': 'A0077779',
'legalName': 'Test Company Inc.'
}
Expand Down