def test_when_receive_older_application_should_reject( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") bank_information = create_bank_information( application_id=79, bic="QSDFGH8Z555", iban="NL36INGB2682297498", offerer=offerer, date_modified=datetime(2020, 2, 2), ) repository.save(offerer, bank_information) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8) # When with pytest.raises(CannotRegisterBankInformation) as error: self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 1 bank_information = BankInformation.query.one() assert bank_information.bic == "QSDFGH8Z555" assert bank_information.iban == "NL36INGB2682297498" assert bank_information.status == BankInformationStatus.ACCEPTED assert bank_information.applicationId == 79 assert error.value.args == ( "Received application details are older than saved one", )
def test_when_dms_state_is_without_continuation_should_create_the_correct_bank_information( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") repository.save(offerer) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="without_continuation", ) # When self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 1 bank_information = BankInformation.query.one() assert bank_information.bic is None assert bank_information.iban is None assert bank_information.status == BankInformationStatus.REJECTED
def test_when_receive_new_closed_application_should_override_previous_one( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") bank_information = create_bank_information( application_id=79, bic="QSDFGH8Z555", iban="NL36INGB2682297498", offerer=offerer, date_modified=datetime(2018, 1, 1), ) repository.save(offerer, bank_information) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8) # When self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 1 bank_information = BankInformation.query.one() assert bank_information.bic == "SOGEFRPP" assert bank_information.iban == "FR7630007000111234567890144" assert bank_information.applicationId == 8
def test_when_receive_new_application_with_draft_state_should_update_previously_rejected_bank_information( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") bank_information = create_bank_information( application_id=79, bic=None, iban=None, offerer=offerer, date_modified=datetime(2018, 1, 1), status=BankInformationStatus.REJECTED, ) repository.save(offerer, bank_information) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="initiated") # When self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 1 bank_information = BankInformation.query.one() assert bank_information.bic == None assert bank_information.iban == None assert bank_information.status == BankInformationStatus.DRAFT
def test_when_status_change_rib_should_be_correctly_updated( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") bank_information = create_bank_information( application_id=8, bic="QSDFGH8Z555", iban="NL36INGB2682297498", offerer=offerer, status=BankInformationStatus.ACCEPTED, date_modified=datetime(2018, 1, 1), ) repository.save(offerer, bank_information) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="QSDFGH8Z555", iban="NL36INGB2682297498", idx=8, state="initiated") # When self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 1 bank_information = BankInformation.query.one() assert bank_information.bic == None assert bank_information.iban == None assert bank_information.status == BankInformationStatus.DRAFT
def test_when_rib_and_offerer_change_everything_should_be_updated( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") new_offerer = create_offerer(siren="793875019") bank_information = create_bank_information( application_id=8, bic="QSDFGH8Z555", iban="NL36INGB2682297498", offerer=offerer, date_modified=datetime(2018, 1, 1), ) repository.save(offerer, new_offerer, bank_information) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875019", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8) # When self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 1 bank_information = BankInformation.query.one() assert bank_information.bic == "SOGEFRPP" assert bank_information.iban == "FR7630007000111234567890144" assert bank_information.offererId == new_offerer.id
def test_retrieve_and_format_all_fields(self, get_application_details): # Given updated_at = datetime(2020, 1, 3) get_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="123456789", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="closed", updated_at=updated_at.strftime(DATE_ISO_FORMAT), ) # When application_details = get_offerer_bank_information_application_details_by_application_id( 8) # Then assert isinstance(application_details, ApplicationDetail) assert application_details.siren == "123456789" assert application_details.status == BankInformationStatus.ACCEPTED assert application_details.application_id == 8 assert application_details.iban == "FR7630007000111234567890144" assert application_details.bic == "SOGEFRPP" assert application_details.siret == None assert application_details.venue_name == None assert application_details.modification_date == updated_at
def test_format_bic_and_iban(self, mock_format_raw_iban_and_bic, get_application_details): # Given updated_at = datetime(2020, 1, 3) get_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="123456789", bic="SOGeferp", iban="F R763000 700011123 45 67890144", idx=8, state="closed", updated_at=updated_at.strftime(DATE_ISO_FORMAT), ) # When get_offerer_bank_information_application_details_by_application_id(8) # Then mock_format_raw_iban_and_bic.assert_has_calls([call("F R763000 700011123 45 67890144"), call("SOGeferp")])
def test_when_no_offerer_is_found_and_state_is_not_closed_should_not_create_bank_information_and_not_raise( self, mock_application_details, app): # Given application_id = "8" mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="initiated") # When self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 0
def test_when_overriding_another_bank_information_should_raise( self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") other_offerer = create_offerer(siren="793875019") bank_information = create_bank_information( application_id=8, bic="QSDFGH8Z555", iban="NL36INGB2682297498", offerer=offerer, date_modified=datetime(2018, 1, 1), ) other_bank_information = create_bank_information( application_id=79, bic="QSDFGH8Z555", iban="NL36INGB2682297498", offerer=other_offerer, date_modified=datetime(2018, 1, 1), ) repository.save(offerer, other_offerer, bank_information, other_bank_information) mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875019", bic="QSDFGH8Z555", iban="NL36INGB2682297498", idx=8) # When with pytest.raises(ApiErrors) as errors: self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 2 assert errors.value.errors['"offererId"'] == [ "Une entrée avec cet identifiant existe déjà dans notre base de données" ]
def test_when_state_is_unknown(self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") repository.save(offerer) unknown_status = "unknown_status" mock_application_details.return_value = offerer_demarche_simplifiee_application_detail_response( siren="793875030", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state=unknown_status) # When with pytest.raises(CannotRegisterBankInformation) as error: self.save_offerer_bank_informations.execute( application_id=application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 0 assert error.value.args == ( f"Unknown Demarches Simplifiées state {unknown_status}", )