def test_post_valid_ar(session, client, jwt): """Assert that a unpaid filing can be posted.""" from legal_api.models import Filing identifier = 'CP7654321' business = factory_business(identifier, founding_date=(datetime.utcnow() - datedelta.YEAR) ) factory_business_mailing_address(business) ar = copy.deepcopy(ANNUAL_REPORT) ar['filing']['annualReport']['annualReportDate'] = datetime.utcnow().date().isoformat() ar['filing']['annualReport']['annualGeneralMeetingDate'] = datetime.utcnow().date().isoformat() rv = client.post(f'/api/v1/businesses/{identifier}/filings', json=ar, headers=create_header(jwt, [STAFF_ROLE], identifier) ) # check return assert rv.status_code == HTTPStatus.CREATED assert not rv.json.get('errors') assert rv.json['filing']['header']['filingId'] assert rv.json['filing']['header']['paymentToken'] assert rv.json['filing']['header']['paymentToken'] == '153' # check stored filing filing = Filing.get_filing_by_payment_token(rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value
def test_post_valid_ar(session, client, jwt): """Assert that a unpaid filing can be posted.""" from legal_api.models import Address, Filing identifier = 'CP7654321' business = factory_business(identifier) mailing_address = Address(city='Test Mailing City', address_type=Address.MAILING) business.mailing_address.append(mailing_address) business.save() rv = client.post(f'/api/v1/businesses/{identifier}/filings', json=AR_FILING, headers=create_header(jwt, [STAFF_ROLE], identifier)) # check return assert rv.status_code == HTTPStatus.CREATED assert not rv.json.get('errors') assert rv.json['filing']['header']['filingId'] assert rv.json['filing']['header']['paymentToken'] assert rv.json['filing']['header']['paymentToken'] == '153' # check stored filing filing = Filing.get_filing_by_payment_token( rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value
def test_create_incorporation_success_filing(client, jwt, session): """Assert that a valid IA can be posted.""" account_id = 26 identifier, filing_id = setup_bootstrap_ia_minimal(jwt, session, client, account_id) filing = copy.deepcopy(FILING_TEMPLATE) filing['filing'].pop('business') filing['filing']['business'] = {} filing['filing']['business']['identifier'] = identifier filing['filing']['incorporationApplication'] = copy.deepcopy(INCORPORATION) filing['filing']['header']['name'] = 'incorporationApplication' filing['filing']['header']['accountId'] = account_id filing['filing']['header']['routingSlipNumber'] = '111111111' # remove fed filing['filing']['header'].pop('effectiveDate') rv = client.put(f'/api/v1/businesses/{identifier}/filings/{filing_id}', json=filing, headers=create_header(jwt, [STAFF_ROLE], None)) assert rv.status_code == HTTPStatus.ACCEPTED assert rv.json['filing']['header']['accountId'] == account_id assert rv.json['filing']['header']['name'] == 'incorporationApplication' filing = Filing.get_filing_by_payment_token( rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value
def test_filing_registrars_order(client, jwt, session): """Assert that a valid registrars order filing can be posted.""" identifier = 'BC1156638' b = factory_business(identifier, datetime.datetime.utcnow(), None, Business.LegalTypes.COMP.value) factory_business_mailing_address(b) filing = copy.deepcopy(REGISTRARS_ORDER_FILING_TEMPLATE) filing['filing']['business']['identifier'] = identifier rv = client.post(f'/api/v1/businesses/{identifier}/filings', json=filing, headers=create_header(jwt, [STAFF_ROLE], None)) assert rv.status_code == HTTPStatus.CREATED assert rv.json['filing']['header']['name'] == 'registrarsOrder' filing = Filing.get_filing_by_payment_token( rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value filing = copy.deepcopy(REGISTRARS_ORDER_FILING_TEMPLATE) filing['filing']['business']['identifier'] = identifier filing['filing']['registrarsOrder']['effectOfOrder'] = '' filing['filing']['registrarsOrder']['fileNumber'] = '' rv = client.post(f'/api/v1/businesses/{identifier}/filings', json=filing, headers=create_header(jwt, [STAFF_ROLE], None)) assert rv.status_code == HTTPStatus.CREATED
def test_get_filing_by_payment_token(session): """Assert that a filing can be retrieved by a unique payment token.""" payment_token = '1000' filing = Filing() filing.filing_json = ANNUAL_REPORT filing.payment_token = payment_token filing.save() rv = Filing.get_filing_by_payment_token(payment_token) assert rv assert rv.payment_token == payment_token
def test_alteration_success_ben_to_bc(client, jwt, session): """Assert that a valid BEN to BC alteration can be posted.""" identifier = 'BC1156638' b = factory_business(identifier, datetime.datetime.utcnow(), None, Business.LegalTypes.BCOMP.value) factory_business_mailing_address(b) filing = copy.deepcopy(ALTERATION_FILING_TEMPLATE) filing['filing']['business']['identifier'] = identifier filing['filing']['business']['legalType'] = Business.LegalTypes.BCOMP.value filing['filing']['alteration']['business']['legalType'] = Business.LegalTypes.COMP.value rv = client.post(f'/api/v1/businesses/{identifier}/filings', json=filing, headers=create_header(jwt, [STAFF_ROLE], None)) assert rv.status_code == HTTPStatus.CREATED assert rv.json['filing']['header']['name'] == 'alteration' filing = Filing.get_filing_by_payment_token(rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value
def test_cancel_payment_for_pending_filing(session, client, jwt): """Assert that a filing can be completed up to payment.""" from legal_api.models import Filing identifier = 'CP7654321' business = factory_business(identifier, founding_date=(datetime.utcnow() - datedelta.YEAR)) factory_business_mailing_address(business) ar = copy.deepcopy(ANNUAL_REPORT) ar['filing']['annualReport']['annualReportDate'] = datetime.utcnow().date( ).isoformat() ar['filing']['annualReport']['annualGeneralMeetingDate'] = datetime.utcnow( ).date().isoformat() rv = client.post(f'/api/v2/businesses/{identifier}/filings', json=ar, headers=create_header(jwt, [STAFF_ROLE], identifier)) # check return assert rv.status_code == HTTPStatus.CREATED assert not rv.json.get('errors') assert rv.json['filing']['header']['filingId'] assert rv.json['filing']['header']['paymentToken'] # check stored filing filing = Filing.get_filing_by_payment_token( rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value filing_id = rv.json['filing']['header']['filingId'] rv = client.patch(f'/api/v2/businesses/{identifier}/filings/{filing_id}', json={}, headers=create_header(jwt, [STAFF_ROLE], identifier)) assert rv.status_code == HTTPStatus.ACCEPTED assert not rv.json.get('errors') assert rv.json['filing']['header'].get('paymentToken', None) is None assert rv.json['filing']['header']['status'] == 'DRAFT'
def test_create_incorporation_success_filing(client, jwt, session): """Assert that a valid IA can be posted.""" filing = copy.deepcopy(FILING_TEMPLATE) filing['filing'].pop('business') filing['filing']['incorporationApplication'] = copy.deepcopy(INCORPORATION) filing['filing']['header']['name'] = 'incorporationApplication' filing['filing']['header']['accountId'] = 28 filing['filing']['header']['routingSlipNumber'] = '111111111' # remove fed filing['filing']['header'].pop('effectiveDate') rv = client.post('/api/v2/businesses', json=filing, headers=create_header(jwt, [STAFF_ROLE], None)) assert rv.status_code == HTTPStatus.CREATED assert rv.json['filing']['header']['accountId'] == 28 assert rv.json['filing']['header']['name'] == 'incorporationApplication' filing = Filing.get_filing_by_payment_token( rv.json['filing']['header']['paymentToken']) assert filing assert filing.status == Filing.Status.PENDING.value
def get_filing_by_payment_id(payment_id: int) -> Filing: """Return the outcome of Filing.get_filing_by_payment_token.""" return Filing.get_filing_by_payment_token(str(payment_id))