python3: force_text on exceptions

This commit is contained in:
Frédéric Péters 2018-07-25 15:14:01 +02:00
parent 42cf2a71d9
commit 0f308ce429
7 changed files with 19 additions and 17 deletions

View File

@ -16,12 +16,11 @@
import datetime
import math
import urllib
from django.conf import settings
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.utils.dateparse import parse_datetime
from django.utils.http import urlencode
from django.utils.timezone import localtime, make_aware
from django.utils.translation import ugettext_lazy as _
@ -128,7 +127,7 @@ def get_form_url_with_params(cell, data):
}
wcs_key, wcs_slug = cell.formdef_reference.split(':')
wcs = get_wcs_services().get(wcs_key)
url = '%s%s/?%s' % (wcs['url'], wcs_slug, urllib.urlencode(session_vars))
url = '%s%s/?%s' % (wcs['url'], wcs_slug, urlencode(session_vars))
return url
@ -189,7 +188,7 @@ class Calendar(object):
"""return the first available slot that has enough
consecutive available slots to be allowed for booking
"""
required_contiguous_slots = self.min_duration.seconds / self.offset.seconds
required_contiguous_slots = self.min_duration.seconds // self.offset.seconds
for day in self.days:
slots = day.slots
for idx in range(len(slots) - required_contiguous_slots):

View File

@ -16,6 +16,7 @@
from django.contrib import messages
from django.http import HttpResponseRedirect
from django.utils.encoding import force_text
from django.views.generic import View, DetailView
from django.views.generic.detail import SingleObjectMixin
@ -36,7 +37,7 @@ class BookingView(SingleObjectMixin, View):
try:
form.is_valid()
except ValueError as exc:
messages.error(request, exc.message)
messages.error(request, force_text(exc))
redirect_url = '%s?%s' % (
cell.page.get_online_url(), request.GET.urlencode())
return HttpResponseRedirect(redirect_url)

View File

@ -35,5 +35,5 @@ class Command(BaseCommand):
for regie in Regie.objects.exclude(webservice_url=''):
try:
regie.notify_new_remote_invoices()
except Exception, e:
except Exception as e:
logger.exception('error while notifying new remote invoices: %s', e)

View File

@ -238,7 +238,7 @@ class ValidateTransactionApiView(View):
except eopayment.ResponseError as e:
logger.error(u'failed in validation operation: %s', e)
response = HttpResponse(content_type='application/json')
response.write(json.dumps({'err': 1, 'e': unicode(e)}))
response.write(json.dumps({'err': 1, 'e': force_text(e)}))
return response
logger.info(u'bank validation result: %r', result)
@ -279,7 +279,7 @@ class CancelTransactionApiView(View):
except eopayment.ResponseError as e:
logger.error(u'failed in cancel operation: %s', e)
response = HttpResponse(content_type='application/json')
response.write(json.dumps({'err': 1, 'e': unicode(e)}))
response.write(json.dumps({'err': 1, 'e': force_text(e)}))
return response
logger.info(u'bank cancellation result: %r', result)
@ -494,9 +494,9 @@ class CallbackView(PaymentView):
try:
self.handle_response(request, backend_response, **kwargs)
except UnknownPaymentException as e:
raise Http404(unicode(e))
raise Http404(force_text(e))
except PaymentException as e:
return HttpResponseBadRequest(unicode(e))
return HttpResponseBadRequest(force_text(e))
return HttpResponse()
def get(self, request, *args, **kwargs):

View File

@ -17,6 +17,7 @@
from django.contrib import messages
from django.core.urlresolvers import reverse
from django.http import HttpResponseRedirect
from django.utils.encoding import force_text
from django.views.generic import TemplateView, UpdateView
from .models import MomoOptions
@ -30,9 +31,9 @@ def generate(request, **kwargs):
try:
generate_manifest(request)
except GenerationError as e:
messages.error(request, e.message)
messages.error(request, force_text(e))
except GenerationInfo as e:
messages.info(request, e.message)
messages.info(request, force_text(e))
return HttpResponseRedirect(reverse('momo-manager-homepage'))

View File

@ -1093,13 +1093,13 @@ class JsonCellBase(CellBase):
)
except requests.RequestException as e:
extra_context[data_key + '_status'] = -1
extra_context[data_key + '_error'] = unicode(e)
extra_context[data_key + '_error'] = force_text(e)
extra_context[data_key + '_exception'] = e
logger = logging.getLogger(__name__)
if log_errors:
logger.warning(u'error on request %r: %s', url, unicode(e))
logger.warning(u'error on request %r: %s', url, force_text(e))
else:
logger.debug(u'error on request %r: %s', url, unicode(e))
logger.debug(u'error on request %r: %s', url, force_text(e))
continue
extra_context[data_key + '_status'] = json_response.status_code
if json_response.status_code // 100 == 2:

View File

@ -29,6 +29,7 @@ from django.shortcuts import render, resolve_url
from django.template import engines
from django.template.loader import get_template, TemplateDoesNotExist
from django.utils import lorem_ipsum, timezone
from django.utils.encoding import force_text
from django.utils.six.moves.urllib.parse import urlparse, quote
from django.views.decorators.csrf import csrf_exempt
@ -101,14 +102,14 @@ def ajax_page_cell(request, page_pk, cell_reference):
except PostException as e:
exception = e
if not request.is_ajax():
messages.error(request, e.message or _('Error sending data.'))
messages.error(request, force_text(e) if force_text(e) != 'None' else _('Error sending data.'))
if not request.is_ajax():
return HttpResponseRedirect(cell.page.get_online_url())
response = render_cell(request, cell)
if exception:
response['x-error-message'] = exception.message
response['x-error-message'] = force_text(exception)
return response
def render_cell(request, cell):