def test_save_form_deprecated(self): existing_form, new_form = _simulate_form_edit() FormAccessorSQL.save_deprecated_form(existing_form) FormAccessorSQL.save_new_form(new_form) self._validate_deprecation(existing_form, new_form)
def save_processed_models(cls, processed_forms, cases=None, stock_updates=None): with transaction.atomic(): logging.debug('Beginning atomic commit\n') # Save deprecated form first to avoid ID conflicts if processed_forms.deprecated: FormAccessorSQL.save_deprecated_form(processed_forms.deprecated) FormAccessorSQL.save_new_form(processed_forms.submitted) if cases: for case in cases: CaseAccessorSQL.save_case(case) for stock_update in stock_updates or []: stock_update.commit() cls._publish_changes(processed_forms, cases)
def save_processed_models(cls, processed_forms, cases=None, stock_result=None): with transaction.atomic(): logging.debug('Beginning atomic commit\n') # Save deprecated form first to avoid ID conflicts if processed_forms.deprecated: FormAccessorSQL.save_deprecated_form(processed_forms.deprecated) FormAccessorSQL.save_new_form(processed_forms.submitted) if cases: for case in cases: CaseAccessorSQL.save_case(case) if stock_result: ledgers_to_save = stock_result.models_to_save LedgerAccessorSQL.save_ledger_values(ledgers_to_save, processed_forms.deprecated) cls._publish_changes(processed_forms, cases, stock_result)
def save_processed_models(cls, processed_forms, cases=None, stock_result=None, publish_to_kafka=True): db_names = {processed_forms.submitted.db} if processed_forms.deprecated: db_names |= {processed_forms.deprecated.db} if cases: db_names |= {case.db for case in cases} if stock_result: db_names |= { ledger_value.db for ledger_value in stock_result.models_to_save } with ExitStack() as stack: for db_name in db_names: stack.enter_context(transaction.atomic(db_name)) # Save deprecated form first to avoid ID conflicts if processed_forms.deprecated: FormAccessorSQL.save_deprecated_form( processed_forms.deprecated) FormAccessorSQL.save_new_form(processed_forms.submitted) if cases: for case in cases: CaseAccessorSQL.save_case(case) if stock_result: ledgers_to_save = stock_result.models_to_save LedgerAccessorSQL.save_ledger_values(ledgers_to_save, stock_result) if publish_to_kafka: cls._publish_changes(processed_forms, cases, stock_result)