コード例 #1
0
        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",)
コード例 #2
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")
            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
コード例 #3
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")
                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
コード例 #4
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")
            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
コード例 #5
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")
            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
コード例 #6
0
            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",)
コード例 #7
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")
            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
コード例 #8
0
            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)
コード例 #9
0
    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
コード例 #10
0
    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")])
コード例 #11
0
        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}",)
コード例 #12
0
            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
コード例 #13
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"
            ]