def test_get_internal_filings(session, client, jwt): """Assert that the internal filings get endpoint returns all completed filings without colin ids.""" from legal_api.models import Filing from tests.unit.models import factory_error_filing, factory_pending_filing # setup identifier = 'CP7654321' b = factory_business(identifier) factory_business_mailing_address(b) filing1 = factory_completed_filing(b, ANNUAL_REPORT) filing2 = factory_completed_filing(b, ANNUAL_REPORT) filing3 = factory_pending_filing(b, ANNUAL_REPORT) filing4 = factory_filing(b, ANNUAL_REPORT) filing5 = factory_error_filing(b, ANNUAL_REPORT) assert filing1.status == Filing.Status.COMPLETED.value # completed with colin_event_id filing2.colin_event_id = 1234 filing2.save() assert filing2.status == Filing.Status.COMPLETED.value assert filing2.colin_event_id is not None # pending with no colin_event_id assert filing3.status == Filing.Status.PENDING.value # draft with no colin_event_id assert filing4.status == Filing.Status.DRAFT.value # error with no colin_event_id assert filing5.status == Filing.Status.ERROR.value # test endpoint returned filing1 only (completed with no colin id set) rv = client.get(f'/api/v1/businesses/internal/filings') assert rv.status_code == HTTPStatus.OK assert len(rv.json) == 1 assert rv.json[0]['filing']['header']['filingId'] == filing1.id
def test_future_filing_coa(session, client, jwt): """Assert that future effective filings are saved and have the correct status changes.""" import pytz from legal_api.models import Filing from tests.unit.models import factory_pending_filing # setup identifier = 'CP7654321' b = factory_business(identifier, (datetime.utcnow() - datedelta.YEAR), None, 'BC') factory_business_mailing_address(b) coa = copy.deepcopy(FILING_HEADER) coa['filing']['header']['name'] = 'changeOfAddress' coa['filing']['changeOfAddress'] = CHANGE_OF_ADDRESS coa['filing']['changeOfAddress']['offices']['registeredOffice']['deliveryAddress']['addressCountry'] = 'CA' coa['filing']['changeOfAddress']['offices']['registeredOffice']['mailingAddress']['addressCountry'] = 'CA' coa['filing']['business']['identifier'] = identifier filing = factory_pending_filing(b, coa) filing.effective_date = datetime.utcnow() + datedelta.DAY filing.save() assert filing.status == Filing.Status.PENDING.value filing.payment_completion_date = pytz.utc.localize(datetime.utcnow()) filing.save() assert filing.status == Filing.Status.PAID.value
def test_future_filing_coa(session, client, jwt): """Assert that future effective filings are saved and have the correct status changes.""" import pytz from tests.unit.models import factory_pending_filing # setup identifier = 'CP7654321' b = factory_business(identifier, (datetime.utcnow() - datedelta.YEAR), None, Business.LegalTypes.BCOMP.value) factory_business_mailing_address(b) coa = copy.deepcopy(FILING_HEADER) coa['filing']['header']['name'] = 'changeOfAddress' coa['filing']['changeOfAddress'] = CHANGE_OF_ADDRESS coa['filing']['changeOfAddress']['offices']['registeredOffice']['deliveryAddress']['addressCountry'] = 'CA' coa['filing']['changeOfAddress']['offices']['registeredOffice']['mailingAddress']['addressCountry'] = 'CA' coa['filing']['business']['identifier'] = identifier filing = factory_pending_filing(b, coa) filing.effective_date = datetime.utcnow() + datedelta.DAY filing.save() assert filing.status == Filing.Status.PENDING.value filing.payment_completion_date = pytz.utc.localize(datetime.utcnow()) filing.save() assert filing.status == Filing.Status.PAID.value rv = client.get('/api/v1/businesses/internal/filings/PAID', headers=create_header(jwt, [COLIN_SVC_ROLE])) paid_filings = rv.json assert paid_filings[0] # check values that future effective filings job depends on are there assert paid_filings[0]['filing']['header']['filingId'] == filing.id assert paid_filings[0]['filing']['header']['paymentToken'] assert paid_filings[0]['filing']['header']['effectiveDate']
def test_get_tasks_pending_correction_filings(session, client, jwt): """Assert that to-do list returns the error filings.""" from freezegun import freeze_time from legal_api.models import Filing from tests import FROZEN_2018_DATETIME from registry_schemas.example_data import CORRECTION_AR # setup identifier = 'CP7654321' b = factory_business(identifier, last_ar_date=datetime(2016, 8, 13)) filing = factory_pending_filing(b, CORRECTION_AR) filing.save() filing._status = Filing.Status.PENDING_CORRECTION.value setattr(filing, 'skip_status_listener', True) filing.save() assert filing.status == Filing.Status.PENDING_CORRECTION.value # freeze time so we get the same number of tasks in the to-do list regardless of when this test is run with freeze_time(FROZEN_2018_DATETIME): # test endpoint returned filing in tasks call rv = client.get(f'/api/v2/businesses/{identifier}/tasks', headers=create_header(jwt, [STAFF_ROLE], identifier)) assert rv.status_code == HTTPStatus.OK assert len(rv.json['tasks']) == 3 assert rv.json['tasks'][0]['task']['filing']['header'][ 'filingId'] == filing.id
def test_get_temp_business_filing(session, client, jwt): """Assert that the business info cannot be received in a valid JSONSchema format.""" # # setup identifier = 'Tb31yQIuBw' filing_name = 'incorporationApplication' temp_reg = RegistrationBootstrap() temp_reg._identifier = identifier temp_reg.save() json_data = copy.deepcopy(FILING_HEADER) json_data['filing']['header']['name'] = filing_name json_data['filing'][filing_name] = copy.deepcopy(INCORPORATION) filings = factory_pending_filing(None, json_data) filings.temp_reg = identifier filings.save() # # test rv = client.get(f'/api/v2/businesses/{identifier}/filings', headers=create_header(jwt, [STAFF_ROLE], identifier)) # # validate assert rv.status_code == HTTPStatus.OK assert rv.json['filing']['header']['name'] == filing_name assert rv.json['filing'][filing_name] == INCORPORATION
def test_get_tasks_error_filings(session, client, jwt): """Assert that to-do list returns the error filings.""" from legal_api.models import Filing from tests.unit.models import AR_FILING, factory_business_mailing_address # setup identifier = 'CP7654321' b = factory_business(identifier, last_ar_date='2019-08-13') factory_business_mailing_address(b) filing = factory_pending_filing(b, AR_FILING, datetime(2019, 8, 5, 7, 7, 58, 272362)) filing.save() assert filing.status == Filing.Status.PENDING.value # test endpoint returned filing in tasks call rv = client.get(f'/api/v1/businesses/{identifier}/tasks') assert rv.status_code == HTTPStatus.OK assert len(rv.json['tasks']) == 2 assert rv.json['tasks'][0]['task']['filing']['header']['filingId'] == filing.id
def test_get_internal_filings(session, client, jwt): """Assert that the internal filings get endpoint returns all completed filings without colin ids.""" from legal_api.models import Filing from legal_api.models.colin_event_id import ColinEventId from tests.unit.models import factory_error_filing, factory_pending_filing # setup identifier = 'CP7654321' b = factory_business(identifier) factory_business_mailing_address(b) filing1 = factory_completed_filing(b, ANNUAL_REPORT) filing2 = factory_completed_filing(b, ANNUAL_REPORT) filing3 = factory_pending_filing(b, ANNUAL_REPORT) filing4 = factory_filing(b, ANNUAL_REPORT) filing5 = factory_error_filing(b, ANNUAL_REPORT) filing6 = factory_completed_filing(b, CORRECTION_AR) assert filing1.status == Filing.Status.COMPLETED.value # completed with colin_event_id print(filing2.colin_event_ids) assert len(filing2.colin_event_ids) == 0 colin_event_id = ColinEventId() colin_event_id.colin_event_id = 12345 filing2.colin_event_ids.append(colin_event_id) filing2.save() assert filing2.status == Filing.Status.COMPLETED.value assert filing2.colin_event_ids # pending with no colin_event_ids assert filing3.status == Filing.Status.PENDING.value # draft with no colin_event_ids assert filing4.status == Filing.Status.DRAFT.value # error with no colin_event_ids assert filing5.status == Filing.Status.PAID.value # completed correction with no colin_event_ids assert filing6.status == Filing.Status.COMPLETED.value # test endpoint returned filing1 only (completed, no corrections, with no colin id set) rv = client.get(f'/api/v1/businesses/internal/filings') assert rv.status_code == HTTPStatus.OK assert len(rv.json) == 1 assert rv.json[0]['filingId'] == filing1.id