Projet

Général

Profil

0003-lingo-remove-use-of-PaymentBackend.get_payment-49149.patch

Benjamin Dauvergne, 30 avril 2021 02:33

Télécharger (3,96 ko)

Voir les différences:

Subject: [PATCH 3/5] lingo: remove use of PaymentBackend.get_payment()
 (#49149)

 combo/apps/lingo/forms.py   | 8 ++++----
 combo/apps/lingo/models.py  | 7 ++-----
 tests/test_lingo_manager.py | 6 +++---
 3 files changed, 9 insertions(+), 12 deletions(-)
combo/apps/lingo/forms.py
100 100
    def __init__(self, *args, **kwargs):
101 101
        super(RegieForm, self).__init__(*args, **kwargs)
102 102
        fields, initial = create_form_fields(
103
            self.instance.payment_backend.get_payment().get_parameters(scope='transaction'),
103
            self.instance.payment_backend.backend.get_parameters(scope='transaction'),
104 104
            self.instance.transaction_options,
105 105
        )
106 106
        self.fields.update(fields)
......
109 109
    def save(self):
110 110
        instance = super(RegieForm, self).save()
111 111
        instance.transaction_options = compute_json_field(
112
            self.instance.payment_backend.get_payment().get_parameters(scope='transaction'), self.cleaned_data
112
            self.instance.payment_backend.backend.get_parameters(scope='transaction'), self.cleaned_data
113 113
        )
114 114
        instance.save()
115 115
        return instance
......
123 123
    def __init__(self, *args, **kwargs):
124 124
        super(PaymentBackendForm, self).__init__(*args, **kwargs)
125 125
        fields, initial = create_form_fields(
126
            self.instance.get_payment().get_parameters(scope='global'), self.instance.service_options
126
            self.instance.backend.get_parameters(scope='global'), self.instance.service_options
127 127
        )
128 128
        self.fields.update(fields)
129 129
        self.initial.update(initial)
......
133 133
    def save(self):
134 134
        instance = super(PaymentBackendForm, self).save()
135 135
        instance.service_options = compute_json_field(
136
            self.instance.get_payment().get_parameters(scope='global'), self.cleaned_data
136
            self.instance.backend.get_parameters(scope='global'), self.cleaned_data
137 137
        )
138 138
        instance.save()
139 139
        return instance
combo/apps/lingo/models.py
156 156
    def __str__(self):
157 157
        return self.label
158 158

  
159
    def get_payment(self):
159
    @property
160
    def backend(self):
160 161
        options = self.service_options or {}
161 162
        if isinstance(options, six.string_types):
162 163
            # backward compatibility when used againt postgresql < 9.4 and
......
231 232
        transaction.handle_backend_response(response, callback=callback)
232 233
        return transaction
233 234

  
234
    @property
235
    def backend(self):
236
        return self.get_payment()
237

  
238 235
    def can_poll_backend(self):
239 236
        return self.backend.has_payment_status
240 237

  
tests/test_lingo_manager.py
675 675

  
676 676

  
677 677
def test_use_old_service_options_safely(app, admin_user):
678
    PaymentBackend(service='dummy', service_options='xx').get_payment()
679
    PaymentBackend(service='dummy', service_options='"xx"').get_payment()
680
    PaymentBackend(service='dummy', service_options=None).get_payment()
678
    PaymentBackend(service='dummy', service_options='xx').backend
679
    PaymentBackend(service='dummy', service_options='"xx"').backend
680
    PaymentBackend(service='dummy', service_options=None).backend
681
-