Use inspect instead of TypeError for backwards-compatible APIs

This commit is contained in:
Raphael Michel
2019-07-09 10:06:33 +02:00
parent 55d423af18
commit 0ac98f5127
3 changed files with 11 additions and 8 deletions

View File

@@ -1,3 +1,4 @@
import inspect
from decimal import Decimal
from django.conf import settings
@@ -513,9 +514,9 @@ class PaymentStep(QuestionsViewMixin, CartMixin, TemplateFlowStep):
if not provider.is_enabled or not self._is_allowed(provider, self.request):
continue
fee = provider.calculate_fee(self._total_order_value)
try:
if 'total' in inspect.signature(provider.payment_form_render).parameters:
form = provider.payment_form_render(self.request, self._total_order_value + fee)
except TypeError:
else:
form = provider.payment_form_render(self.request)
providers.append({
'provider': provider,

View File

@@ -1,3 +1,4 @@
import inspect
import mimetypes
import os
from decimal import Decimal
@@ -306,9 +307,9 @@ class OrderPaymentStart(EventViewMixin, OrderDetailMixin, TemplateView):
@cached_property
def form(self):
try:
if 'total' in inspect.signature(self.payment.payment_provider.payment_form_render).parameters:
return self.payment.payment_provider.payment_form_render(self.request, self.payment.amount)
except TypeError:
else:
return self.payment.payment_provider.payment_form_render(self.request)
@cached_property
@@ -521,9 +522,9 @@ class OrderPayChangeMethod(EventViewMixin, OrderDetailMixin, TemplateView):
continue
current_fee = sum(f.value for f in self.open_fees) or Decimal('0.00')
fee = provider.calculate_fee(pending_sum - current_fee)
try:
if 'total' in inspect.signature(provider.payment_form_render).parameters:
form = provider.payment_form_render(self.request, abs(pending_sum + fee - current_fee))
except TypeError:
else:
form = provider.payment_form_render(self.request)
providers.append({
'provider': provider,