def test_when_receive_older_application_should_reject(self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") venue = create_venue(offerer, siret="79387503012345") bank_information = create_bank_information( application_id=79, bic="QSDFGH8Z555", iban="NL36INGB2682297498", venue=venue, date_modified=datetime(2021, 1, 1), ) repository.save(bank_information) mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8 ) # When with pytest.raises(CannotRegisterBankInformation) as error: self.save_venue_bank_informations.execute(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_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") venue = create_venue(offerer, siret="79387503012345") bank_information = create_bank_information( application_id=79, bic=None, iban=None, venue=venue, date_modified=datetime(2018, 1, 1), status=BankInformationStatus.REJECTED, ) repository.save(bank_information) mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="initiated" ) # When self.save_venue_bank_informations.execute(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_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") venue = create_venue(offerer, siret="79387503012345") repository.save(venue) mock_application_details.return_value = ( venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="without_continuation", ) ) # When self.save_venue_bank_informations.execute(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_status_change_rib_should_be_correctly_updated(self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") venue = create_venue(offerer, siret="79387503012345") bank_information = create_bank_information( application_id=8, bic="QSDFGH8Z555", iban="NL36INGB2682297498", venue=venue, status=BankInformationStatus.ACCEPTED, date_modified=datetime(2012, 1, 1), ) repository.save(offerer, bank_information) mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="QSDFGH8Z555", iban="NL36INGB2682297498", idx=8, state="initiated" ) # When self.save_venue_bank_informations.execute(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_receive_new_closed_application_should_override_previous_one(self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") venue = create_venue(offerer, siret="79387503012345") bank_information = create_bank_information( application_id=79, bic="QSDFGH8Z555", iban="NL36INGB2682297498", venue=venue, date_modified=datetime(2018, 1, 1), ) repository.save(bank_information) mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8 ) # When self.save_venue_bank_informations.execute(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_no_venue_is_found_and_status_is_closed_should_raise_and_not_create_bank_information( self, mock_application_details, app ): # Given application_id = "8" offerer = create_offerer(siren="793875030") repository.save(offerer) mock_application_details.return_value = ( venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="closed", ) ) # When with pytest.raises(CannotRegisterBankInformation) as error: self.save_venue_bank_informations.execute(application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 0 assert error.value.args == ("Venue not found",)
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") venue = create_venue(offerer, siret="79387503012345") new_offerer = create_offerer(siren="123456789") new_venue = create_venue(new_offerer, siret="12345678912345") bank_information = create_bank_information( application_id=8, bic="QSDFGH8Z555", iban="NL36INGB2682297498", venue=venue, date_modified=datetime(2012, 1, 1), ) repository.save(new_venue, bank_information) mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="12345678912345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8 ) # When self.save_venue_bank_informations.execute(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 == None assert bank_information.venueId == new_venue.id
def test_when_dms_state_is_closed_should_create_the_correct_bank_information( self, mock_application_details, app ): # Given application_id = "8" offerer = create_offerer(siren="793875030") venue = create_venue(offerer, siret="79387503012345") repository.save(venue) mock_application_details.return_value = ( venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="closed", updated_at="2020-01-01T10:10:10.10Z", ) ) # When self.save_venue_bank_informations.execute(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.status == BankInformationStatus.ACCEPTED assert bank_information.dateModified == datetime(2020, 1, 1, 10, 10, 10, 100000)
def test_retrieve_and_format_all_fields_when_with_siret( self, get_application_details): # Given updated_at = datetime(2020, 1, 3) get_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="12345678900012", siren="123456789", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="closed", updated_at=updated_at.strftime(DATE_ISO_FORMAT), ) # When application_details = get_venue_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 == "12345678900012" assert application_details.venue_name == None assert application_details.modification_date == updated_at
def test_format_bic_and_iban_when_with_siret(self, mock_format_raw_iban_and_bic, get_application_details): # Given updated_at = datetime(2020, 1, 3) get_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="12345678912345", 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_state_is_unknown(self, mock_application_details, app): # Given application_id = "8" offerer = create_offerer(siren="793875030") venue = create_venue(offerer, siret="79387503012345") repository.save(venue) unknown_status = "unknown_status" mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state=unknown_status ) # When with pytest.raises(CannotRegisterBankInformation) as error: self.save_venue_bank_informations.execute(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}",)
def test_when_no_offerer_is_found_but_status_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 = ( venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387503012345", bic="SOGEFRPP", iban="FR7630007000111234567890144", idx=8, state="without_continuation", )) # When self.save_venue_bank_informations.execute(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") venue = create_venue(offerer, siret="79387503012345") other_offerer = create_offerer(siren="793875019") other_venue = create_venue(other_offerer, siret="79387501912345") bank_information = create_bank_information( application_id=8, bic="QSDFGH8Z555", iban="NL36INGB2682297498", venue=venue, date_modified=datetime(2012, 1, 1), ) other_bank_information = create_bank_information( application_id=79, bic="QSDFGH8Z555", iban="NL36INGB2682297498", venue=other_venue, date_modified=datetime(2012, 1, 1), ) repository.save(bank_information, other_bank_information) mock_application_details.return_value = venue_demarche_simplifiee_application_detail_response_with_siret( siret="79387501912345", bic="QSDFGH8Z555", iban="NL36INGB2682297498", idx=8) # When with pytest.raises(ApiErrors) as errors: self.save_venue_bank_informations.execute(application_id) # Then bank_information_count = BankInformation.query.count() assert bank_information_count == 2 assert errors.value.errors['"venueId"'] == [ "Une entrée avec cet identifiant existe déjà dans notre base de données" ]