def test_save_filing_with_colin_id(session): """Assert that saving a filing with a colin event id is set to pending.""" from legal_api.models import Filing # setup filing = Filing() filing.filing_json = ANNUAL_REPORT filing.save() assert filing.status == Filing.Status.DRAFT.value filing.colin_event_id = 1234 filing.save() assert filing.status == Filing.Status.PENDING.value
def test_save_filing_with_colin_id(session): """Assert that saving a filing with a colin event id is set to paid.""" from legal_api.models import Filing # setup filing = Filing() filing.filing_json = ANNUAL_REPORT user = User.create_from_jwt_token({ 'username': '******', 'iss': 'test', 'sub': 'test' }) filing.submitter_id = user.id filing.save() # test assert filing.status == Filing.Status.DRAFT.value assert filing.source == Filing.Source.COLIN.value filing.colin_event_id = 1234 filing.save() assert filing.status == Filing.Status.PAID.value
) for historic_filing in r.json(): uow = versioning_manager.unit_of_work(db.session) transaction = uow.create_transaction(db.session) filing = Filing() filing_date = historic_filing['filing']['header'][ 'date'] filing.filing_date = datetime.datetime.strptime( filing_date, '%Y-%m-%d') filing.business_id = business.id filing.filing_json = historic_filing filing.transaction_id = transaction.id filing_type = historic_filing['filing']['header'][ 'name'] filing.colin_event_id = historic_filing['filing'][ filing_type]['eventId'] filing.paper_only = True db.session.add(filing) db.session.commit() except requests.exceptions.Timeout as timeout: print( 'colin_api request timed out getting historic filings.' ) else: print( '->historic filings already exist - skipping history load' ) except Exception as err: # db.session.rollback() print(err)
def _save_filing(client_request: LocalProxy, business_identifier: str, user: User, filing_id: int) -> Tuple[Business, Filing, dict, int]: """Save the filing to the ledger. If not successful, a dict of errors is returned. Returns: { Business: business model object found for the identifier provided Filing: filing model object for the submitted filing dict: a dict of errors int: the HTTPStatus error code } """ json_input = client_request.get_json() if not json_input: return None, None, {'message': f'No filing json data in body of post for {business_identifier}.'}, \ HTTPStatus.BAD_REQUEST business = Business.find_by_identifier(business_identifier) if not business: return None, None, { 'message': f'{business_identifier} not found' }, HTTPStatus.NOT_FOUND if client_request.method == 'PUT': rv = db.session.query(Business, Filing). \ filter(Business.id == Filing.business_id). \ filter(Business.identifier == business_identifier). \ filter(Filing.id == filing_id). \ one_or_none() if not rv: return None, None, { 'message': f'{business_identifier} no filings found' }, HTTPStatus.NOT_FOUND filing = rv[1] else: filing = Filing() filing.business_id = business.id try: filing.submitter_id = user.id filing.filing_json = json_input if user.username == 'coops-updater-job': try: filing.filing_date = datetime.datetime.fromisoformat( filing.filing_json['filing']['header']['date']) filing.colin_event_id = filing.filing_json['filing'][ 'header']['colinId'] except KeyError: current_app.logger.error( 'Business:%s missing filing/header values, unable to save', business.identifier) return None, None, { 'message': 'missing filing/header values' }, HTTPStatus.BAD_REQUEST else: filing.filing_date = datetime.datetime.utcnow() filing.save() except BusinessException as err: return None, None, {'error': err.error}, err.status_code return business, filing, None, None