Beispiel #1
0
        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", )
Beispiel #2
0
        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
Beispiel #3
0
        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
Beispiel #4
0
        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
Beispiel #5
0
        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
Beispiel #6
0
        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
Beispiel #7
0
    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")])
Beispiel #9
0
        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
Beispiel #10
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"
            ]
Beispiel #11
0
        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}", )