django4: replaced *_text with *_str equivalent (#68576)

This commit is contained in:
Agate 2022-08-31 10:21:14 +02:00
parent c53c6162ed
commit 1a17d3efa6
36 changed files with 104 additions and 105 deletions

View File

@ -21,7 +21,7 @@ import urllib
import lxml.etree
from django.db import models
from django.utils import dateformat, dateparse
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from zeep import helpers
from zeep.exceptions import Fault
@ -61,7 +61,7 @@ class ATALConnector(BaseResource):
try:
return getattr(client.service, method)(**kwargs)
except Fault as e:
raise APIError(force_text(e))
raise APIError(force_str(e))
def _basic_ref(self, wsdl, method):
soap_res = self._soap_call(wsdl=wsdl, method=method)

View File

@ -38,7 +38,7 @@ from django.core.signing import Signer
from django.db import models
from django.http import HttpResponse
from django.urls import reverse
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
@ -162,7 +162,7 @@ class AbstractCartaDSCS(BaseResource):
data_pad = AES.block_size - len(token_data_str) % AES.block_size
aes = AES.new(self.secret_key.encode(), AES.MODE_CBC, self.iv.encode())
token = aes.encrypt((token_data_str + (chr(data_pad) * data_pad)).encode())
return force_text(base64.encodebytes(token)).replace('\n', '').rstrip('=')
return force_str(base64.encodebytes(token)).replace('\n', '').rstrip('=')
def check_status(self):
self.soap_client().service.GetCommunes(self.get_token(), {})
@ -701,14 +701,14 @@ class AbstractCartaDSCS(BaseResource):
try:
pdf = pdfrw.PdfReader(request.FILES['files[]'])
if not any(pdfrw.findobjs.find_objects(pdf, valid_subtypes=(pdfrw.PdfName.Form,))):
return [{'error': force_text(_('The CERFA should not be a scanned document.'))}]
return [{'error': force_str(_('The CERFA should not be a scanned document.'))}]
except (pdfrw.PdfParseError, ValueError):
return [{'error': force_text(_('The CERFA should be a PDF file.'))}]
return [{'error': force_str(_('The CERFA should be a PDF file.'))}]
else:
if request.FILES['files[]'].content_type not in ('application/pdf', 'image/jpeg'):
return [{'error': force_text(_('The file should be a PDF document or a JPEG image.'))}]
return [{'error': force_str(_('The file should be a PDF document or a JPEG image.'))}]
if request.FILES['files[]'].size > 25 * 1024 * 1024:
return [{'error': force_text(_('The file should not exceed 25MB.'))}]
return [{'error': force_str(_('The file should not exceed 25MB.'))}]
file_upload = CartaDSFile(
tracking_code=tracking_code, id_piece=id_piece, uploaded_file=request.FILES['files[]']
)

View File

@ -31,7 +31,7 @@ from django.core.exceptions import ValidationError
from django.core.files.base import ContentFile
from django.db import models, transaction
from django.urls import reverse
from django.utils.encoding import force_str, force_text, smart_text
from django.utils.encoding import force_str, smart_str
from django.utils.timezone import make_aware, now
from django.utils.translation import gettext_lazy as _
@ -286,7 +286,7 @@ class CsvDataSource(BaseResource):
if self.skip_header:
rows = rows[1:]
rows = [[smart_text(x) for x in y] for y in rows if y]
rows = [[smart_str(x) for x in y] for y in rows if y]
titles = [t.strip() for t in self.columns_keynames.split(',')]
indexes = [titles.index(t) for t in titles if t]
captions = [titles[i] for i in indexes]
@ -317,7 +317,7 @@ class CsvDataSource(BaseResource):
@property
def titles(self):
return [smart_text(t.strip()) for t in self.columns_keynames.split(',')]
return [smart_str(t.strip()) for t in self.columns_keynames.split(',')]
@endpoint(perm='can_access', methods=['get'], name='data')
def data(self, request, **kwargs):
@ -388,7 +388,7 @@ class CsvDataSource(BaseResource):
except (TypeError, SyntaxError) as e:
data = {
'expr': expr,
'error': smart_text(e),
'error': smart_str(e),
}
if titles:
data['name'] = titles[i]
@ -407,7 +407,7 @@ class CsvDataSource(BaseResource):
data = {
'expr': expr,
'row': repr(row),
'error': smart_text(e),
'error': smart_str(e),
}
if titles:
data['name'] = titles[i]
@ -463,7 +463,7 @@ class CsvDataSource(BaseResource):
if 'id' in request.GET and not model_filters_id:
# always provide a ?id= filter.
filters = ["id == %r" % force_text(request.GET['id'])]
filters = ["id == %r" % force_str(request.GET['id'])]
data = [row for new_row, row in stream_expressions(filters, data, kind='filters') if new_row[0]]
# allow jsonp queries by select2

View File

@ -20,14 +20,14 @@ import io
from decimal import Decimal
from django.core.exceptions import ValidationError
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from ..models import Invoice
def u(s):
return force_text(s, 'iso-8859-15')
return force_str(s, 'iso-8859-15')
class Loader:

View File

@ -22,7 +22,7 @@ from decimal import Decimal
from django.core.exceptions import ValidationError
from django.core.files.storage import DefaultStorage
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from ..models import Adult, Child, Family, Invoice, dict_cherry_pick, get_date, get_datetime
@ -130,7 +130,7 @@ class Loader:
# pylint: disable=stop-iteration-return
titles = [x.lower() for x in next(reader)]
for row in reader:
row = [force_text(x, 'iso-8859-15') for x in row]
row = [force_str(x, 'iso-8859-15') for x in row]
yield dict(zip(titles, row))
def build_families(self):

View File

@ -20,14 +20,14 @@ import io
from decimal import Decimal
from django.core.exceptions import ValidationError
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from ..models import Invoice
def u(s):
return force_text(s, 'iso-8859-15')
return force_str(s, 'iso-8859-15')
class Loader:

View File

@ -22,7 +22,7 @@ except ImportError:
phpserialize = None
from django.db import models
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from passerelle.base.models import BaseResource
@ -43,7 +43,7 @@ def deep_bytes2str(obj):
if isinstance(obj, dict):
new_d = {}
for k, v in obj.items():
new_d[force_text(k)] = deep_bytes2str(v)
new_d[force_str(k)] = deep_bytes2str(v)
return new_d
return obj
@ -68,7 +68,7 @@ class Gdc(BaseResource):
def call_soap(self, action, *args, **kwargs):
def escape(s):
return force_text(s).replace('&', '&amp;').replace('>', '&gt;').replace('<', '&lt;')
return force_str(s).replace('&', '&amp;').replace('>', '&gt;').replace('<', '&lt;')
params = []
for i, arg in enumerate(args):
@ -116,7 +116,7 @@ class Gdc(BaseResource):
soap_result = phpserialize_loads(resp.findall('.//listeCommune')[0].text)
result = []
for k, v in soap_result.items():
result.append({'id': k, 'text': force_text(v, 'utf-8')})
result.append({'id': k, 'text': force_str(v, 'utf-8')})
result.sort(key=lambda x: x['id'])
return result
@ -126,6 +126,6 @@ class Gdc(BaseResource):
soap_result = phpserialize_loads(resp.findall('.//listeObjet')[0].text)
result = []
for k, v in soap_result.items():
result.append({'id': k, 'text': force_text(v, 'utf-8')})
result.append({'id': k, 'text': force_str(v, 'utf-8')})
result.sort(key=lambda x: x['id'])
return result

View File

@ -17,7 +17,7 @@
import json
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.views.generic.base import View
from django.views.generic.detail import DetailView, SingleObjectMixin
@ -177,7 +177,7 @@ class PostDemandeView(View, SingleObjectMixin):
except IOError:
result = {'result': 'gdc soap crash'}
else:
code_retour = force_text(resp.findall('.//code_retour')[0].text)
code_retour = force_str(resp.findall('.//code_retour')[0].text)
result = phpserialize_loads(resp.findall('.//listeInfo')[0].text)
result = {
'result': code_retour,

View File

@ -12,7 +12,7 @@ from django.core.mail import send_mail
from django.db import models
from django.template.loader import render_to_string
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from passerelle.base.models import SkipJob
@ -235,7 +235,7 @@ class OVHSMSGateway(SMSResource):
if not self.password:
raise APIError('Improperly configured, empty keys or password fields.')
text = force_text(text).encode('utf-8')
text = force_str(text).encode('utf-8')
to = ','.join(destinations)
params = {
'account': self.account.encode('utf-8'),

View File

@ -1,6 +1,6 @@
import requests
from django.db import models
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from passerelle.sms.models import SMSResource
@ -61,7 +61,7 @@ class OxydSMSGateway(SMSResource):
results.append('OXYD error: POST failed, %s' % e)
else:
code = r.content and r.content.split()[0]
if force_text(code) != '200':
if force_str(code) != '200':
results.append('OXYD error: response is not 200')
else:
results.append(0)

View File

@ -25,7 +25,7 @@ from django.core.files.base import ContentFile
from django.db import models, transaction
from django.db.models import Q
from django.http import HttpResponse
from django.utils.encoding import force_bytes, force_str, smart_text
from django.utils.encoding import force_bytes, force_str, smart_str
from django.utils.timezone import now
from django.utils.translation import gettext_lazy as _
@ -166,7 +166,7 @@ class SectorResource(BaseResource):
for row in reader:
if not row:
continue # do not consider empty lines
row = [smart_text(x).strip() for x in row]
row = [smart_str(x).strip() for x in row]
row = {caption: get_cell(row, index) for caption, index in zip(captions, indexes)}
if row['sector_id']:

View File

@ -20,7 +20,7 @@ import json
from django.db import models
from django.template.loader import get_template
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.http import urlencode
from django.utils.translation import gettext_lazy as _
@ -502,7 +502,7 @@ class Solis(BaseResource):
try:
value = self.request(endpoint)
except APIError as e: # do not raise on linked informations
value = {'err': 1, 'err_class': e.__class__.__name__, 'err_desc': force_text(e)}
value = {'err': 1, 'err_class': e.__class__.__name__, 'err_desc': force_str(e)}
link['content'] = value
def rsa_get_links(self, information, links):

View File

@ -27,7 +27,7 @@ from django.forms.widgets import ClearableFileInput
from django.test import override_settings
from django.urls import reverse
from django.utils import timezone
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.log import AdminEmailHandler
from django.utils.text import slugify
from django.utils.timezone import now
@ -373,7 +373,7 @@ class BaseResource(models.Model):
if value:
d[field.name] = {
'name': os.path.basename(value.name),
'content': force_text(base64.b64encode(value.read())),
'content': force_str(base64.b64encode(value.read())),
}
else:
d[field.name] = None

View File

@ -1,7 +1,7 @@
import csv
from django.db import models
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from passerelle.base.models import BaseResource
@ -14,7 +14,7 @@ COLUMN_NAMES = (
def to_unicode(value):
return force_text(value, 'utf-8')
return force_str(value, 'utf-8')
def upload_to(instance, filename):
@ -50,7 +50,7 @@ class NancyPoll(BaseResource):
content = self.csv_file.read()
if not content:
raise APIError('No content found')
content = force_text(content)
content = force_str(content)
reader = csv.reader(content.splitlines())
next(reader)

View File

@ -19,7 +19,7 @@ import json
from urllib import parse as urlparse
from django.db import models
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.translation import gettext_lazy as _
from requests import RequestException
@ -114,7 +114,7 @@ class StrasbourgEu(BaseResource):
notification['parsedPublicationDate'] = None
for date_format in ('%Y-%m-%d %H:%M:%S', '%a %b %d %H:%M:%S %Z %Y'):
try:
notification['parsedPublicationDate'] = force_text(
notification['parsedPublicationDate'] = force_str(
datetime.datetime.strptime(notification['publicationDate'], date_format)
)
break

View File

@ -23,7 +23,7 @@ from datetime import datetime
from django.contrib.postgres.fields import JSONField
from django.db import models
from django.http import HttpResponse, HttpResponseNotFound
from django.utils.encoding import smart_text
from django.utils.encoding import smart_str
from django.utils.translation import gettext_lazy as _
from passerelle.base.models import BaseResource
@ -86,11 +86,11 @@ class TeamnetAxel(BaseResource):
portail = ET.Element('PORTAIL')
portail.append(args)
streamId = operation
xmlParams = smart_text(ET.tostring(portail, encoding='UTF-8'))
xmlParams = smart_str(ET.tostring(portail, encoding='UTF-8'))
user = ''
logger.debug('getData(streamId=%s, xmlParams=%s, user=%s)', streamId, xmlParams, user)
result = soap.get_client(self).service.getData(streamId, smart_text(xmlParams), user)
logger.debug('getData(%s) result: %s', streamId, smart_text(result))
result = soap.get_client(self).service.getData(streamId, smart_str(xmlParams), user)
logger.debug('getData(%s) result: %s', streamId, smart_str(result))
xml_result = ET.fromstring(result)
if xml_result.find('RESULTAT/STATUS').text != 'OK':
msg = xml_result.find('RESULTAT/COMMENTAIRES').text

View File

@ -24,7 +24,7 @@ from collections import namedtuple
import pytz
import xmlschema
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from passerelle.utils.xml import JSONSchemaFromXMLSchema
@ -234,7 +234,7 @@ class Operation:
except xmlschema.XMLSchemaValidationError as e:
raise AxelError('invalid request %s' % str(e))
indent(serialized_request)
serialized_request = force_text(ET.tostring(serialized_request))
serialized_request = force_str(ET.tostring(serialized_request))
try:
self.request_converter.xml_schema.validate(serialized_request)
except xmlschema.XMLSchemaValidationError as e:
@ -246,7 +246,7 @@ class Operation:
xml_result = ET.fromstring(result.encode('utf-8'))
indent(xml_result)
pretty_result = force_text(ET.tostring(xml_result))
pretty_result = force_str(ET.tostring(xml_result))
if xml_result.find('RESULTAT/STATUS').text != 'OK':
msg = xml_result.find('RESULTAT/COMMENTAIRES').text
raise AxelError(msg, xml_request=serialized_request, xml_response=pretty_result)

View File

@ -1,5 +1,5 @@
import suds.sudsobject
from django.utils.encoding import force_text
from django.utils.encoding import force_str
def client_to_jsondict(client):
@ -17,7 +17,7 @@ def client_to_jsondict(client):
d['types'] = {}
for t in sd.types:
ft = client.factory.create(sd.xlate(t[0]))
d['types'][sd.xlate(t[0])] = force_text(ft)
d['types'][sd.xlate(t[0])] = force_str(ft)
res[sd.service.name] = d
return res

View File

@ -31,7 +31,7 @@ from django.core.cache import cache
from django.core.exceptions import PermissionDenied
from django.db import transaction
from django.http import HttpResponse, HttpResponseBadRequest
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from django.utils.functional import lazy
from django.utils.html import mark_safe
from django.utils.translation import ngettext_lazy
@ -98,7 +98,7 @@ def get_request_users(request):
if scheme == 'basic' and len(http_authorization) > 1:
param = http_authorization[1]
try:
decoded = force_text(base64.b64decode(force_bytes(param.strip())))
decoded = force_str(base64.b64decode(force_bytes(param.strip())))
username, password = decoded.split(':', 1)
except (TypeError, ValueError):
pass
@ -190,8 +190,7 @@ def content_type_match(ctype):
def make_headers_safe(headers):
"""Convert dict of HTTP headers to text safely, as some services returns 8-bits encoding in headers."""
return {
force_text(key, errors='replace'): force_text(value, errors='replace')
for key, value in headers.items()
force_str(key, errors='replace'): force_str(value, errors='replace') for key, value in headers.items()
}

View File

@ -22,7 +22,7 @@ import warnings
from io import BytesIO
import unidecode
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from PIL import Image
@ -68,7 +68,7 @@ def ensure_encoding(s, encoding):
def to_ascii(s):
return force_text(unidecode.unidecode(s), 'ascii')
return force_str(unidecode.unidecode(s), 'ascii')
def exception_to_text(e):
@ -105,7 +105,7 @@ def simplify(s):
"""
if not s:
return ''
s = force_text(s, 'utf-8', 'ignore')
s = force_str(s, 'utf-8', 'ignore')
s = normalize(s)
s = re.sub(r'[^\w\s\'-]', '', s)
s = re.sub(r'[\s\'_-]+', ' ', s)

View File

@ -21,7 +21,7 @@ import time
from urllib import parse as urlparse
from uuid import uuid4
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from requests.auth import AuthBase
@ -40,7 +40,7 @@ class HawkAuth(AuthBase):
p_hash.update(force_bytes(req.headers.get('Content-Type', '') + '\n'))
p_hash.update(force_bytes(req.body or ''))
p_hash.update(force_bytes('\n'))
return force_text(base64.b64encode(p_hash.digest()))
return force_str(base64.b64encode(p_hash.digest()))
def get_authorization_header(self, req):
url_parts = urlparse.urlparse(req.url)
@ -67,9 +67,9 @@ class HawkAuth(AuthBase):
]
digestmod = getattr(hashlib, self.algorithm)
result = hmac.new(force_bytes(self.key), force_bytes('\n'.join(data)), digestmod)
mac = force_text(base64.b64encode(result.digest()))
mac = force_str(base64.b64encode(result.digest()))
authorization = 'Hawk id="%s", ts="%s", nonce="%s", hash="%s", mac="%s"' % (
force_text(self.id),
force_str(self.id),
self.timestamp,
self.nonce,
hash,

View File

@ -16,7 +16,7 @@ from django.core.exceptions import ObjectDoesNotExist, PermissionDenied
from django.core.serializers.json import DjangoJSONEncoder
from django.http import Http404, HttpResponse, HttpResponseBadRequest
from django.http.response import HttpResponseBase
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from django.utils.log import log_response
from requests import HTTPError, RequestException
@ -78,7 +78,7 @@ class to_json:
err_class = err_module + err.__class__.__name__
err_desc = force_text(err)
err_desc = force_str(err)
response = {
"err": 1,

View File

@ -27,7 +27,7 @@ import paramiko
from django import forms
from django.core import validators
from django.db import models
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from django.utils.translation import gettext_lazy as _
from paramiko.dsskey import DSSKey
from paramiko.ecdsakey import ECDSAKey
@ -71,7 +71,7 @@ class SFTP:
self.hostname = parsed.hostname
self.port = parsed.port or 22
self.path = parsed.path.strip('/')
self.private_key_content = force_text(private_key_content)
self.private_key_content = force_str(private_key_content)
self.private_key_password = private_key_password
if private_key_content:
self.private_key = _load_private_key(private_key_content, private_key_password)

View File

@ -35,7 +35,7 @@ from django.db.models import Q
from django.http import Http404, HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404, resolve_url
from django.urls import reverse
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from django.utils.timezone import is_naive, make_aware
from django.utils.translation import gettext_lazy as _
from django.views.decorators.csrf import csrf_exempt
@ -103,7 +103,7 @@ def menu_json(request):
json_str = json.dumps(
[
{
'label': force_text(label),
'label': force_str(label),
'slug': 'passerelle',
'url': request.build_absolute_uri(reverse('manage-home')),
}

View File

@ -6,7 +6,7 @@ import re
import mock
import pytest
from django.utils.encoding import force_bytes, force_str, force_text
from django.utils.encoding import force_bytes, force_str
from django.utils.http import urlencode
from requests import Request
from requests.exceptions import ConnectionError
@ -327,7 +327,7 @@ def test_association_creation(
assert data['StatutTiers'] == 'PROPOSE'
assert data['Type'] == '*'
assert data['AdresseTitre'] == 'AdressePrincipale'
assert data['AdresseLibelleRue'] == force_text('169, rue du Château')
assert data['AdresseLibelleRue'] == force_str('169, rue du Château')
assert data['Sigle'] == 'EO'
assert data['AdresseIsAdresseDeCommande'] == 'false'
assert data['AdresseIsAdresseDeFacturation'] == 'false'

View File

@ -18,7 +18,7 @@ from cmislib.exceptions import (
)
from django.contrib.contenttypes.models import ContentType
from django.urls import reverse
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from mock import Mock, call
from passerelle.apps.cmis.models import CmisConnector
@ -27,7 +27,7 @@ from tests.test_manager import login
def b64encode(content):
return force_text(base64.b64encode(force_bytes(content)))
return force_str(base64.b64encode(force_bytes(content)))
@pytest.fixture()

View File

@ -5,7 +5,7 @@ import base64
import pytest
from django.contrib.contenttypes.models import ContentType
from django.core.exceptions import ValidationError
from django.utils.encoding import force_text
from django.utils.encoding import force_str
import tests.utils
from passerelle.apps.cryptor.models import CryptedFile, Cryptor
@ -132,7 +132,7 @@ def test_cryptor_encrypt_decrypt(app, cryptor):
# encrypt
endpoint = tests.utils.generic_endpoint_url('cryptor', 'file-encrypt', slug=cryptor.slug)
content = force_text(base64.b64encode(b'this is foo and bar'))
content = force_str(base64.b64encode(b'this is foo and bar'))
payload = {"file": {"filename": "foo.txt", "content_type": "text/plain", "content": content}}
resp = app.post_json(endpoint, params=payload, status=200)

View File

@ -35,7 +35,7 @@ from django.core.files.storage import default_storage
from django.core.management import call_command
from django.test import Client, override_settings
from django.urls import reverse
from django.utils.encoding import force_bytes, force_str, force_text
from django.utils.encoding import force_bytes, force_str
from django.utils.timezone import now
from passerelle.apps.csvdatasource.models import CsvDataSource, Query, TableRow, upload_to
@ -64,7 +64,7 @@ data = """121;69981;DELANOUE;Eliot;H
216352;38;Dupont;Benoît;H
"""
data_bom = force_str(force_text(data, 'utf-8').encode('utf-8-sig'))
data_bom = force_str(force_str(data, 'utf-8').encode('utf-8-sig'))
pytestmark = pytest.mark.django_db

View File

@ -6,7 +6,7 @@ import xml.etree.ElementTree as ET
import httmock
import mock
import pytest
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from zeep.exceptions import Fault as WebFault
from zeep.exceptions import TransportError
@ -653,7 +653,7 @@ def test_registration(dpark, app, application_thirdparty_subscription):
</SOAP-ENV:Envelope>"""
)
resp = app.post_json(url, params=params)
assert demande_abonnementtiers in force_text(dpark.mock_requests[1].body)
assert demande_abonnementtiers in force_str(dpark.mock_requests[1].body)
assert resp.json['data']['numerodossier'] == 22334
assert resp.json['data']['numerodemande'] == 59492
@ -677,22 +677,22 @@ def test_send_files(dpark, app, settings, freezer):
params['justif_domicile'] = {
'filename': 'address_proof.pDf',
'content_type': 'application/pdf',
'content': force_text(base64.b64encode(b'%PDF this is my proof of address')),
'content': force_str(base64.b64encode(b'%PDF this is my proof of address')),
}
params['cartegrise,1'] = {
'filename': 'cartegrise.pdf',
'content_type': 'application/pdf',
'content': force_text(base64.b64encode(b'%PDF carte grise 1')),
'content': force_str(base64.b64encode(b'%PDF carte grise 1')),
}
params['toto,6'] = {
'filename': 'cartegrisetoto.jpg',
'content_type': 'application/pdf',
'content': force_text(base64.b64encode(JPEG_CONTENT)),
'content': force_str(base64.b64encode(JPEG_CONTENT)),
}
params['cartegrise,6'] = {
'filename': 'cartegrise2.pdf',
'content_type': 'application/pdf',
'content': force_text(base64.b64encode(b'%PDF carte grise 2')),
'content': force_str(base64.b64encode(b'%PDF carte grise 2')),
}
params['taxe_habitat'] = {
'filename': 'cartegrise2.pdf',
@ -746,17 +746,17 @@ def test_send_files(dpark, app, settings, freezer):
assert len(pj_node.findall('Bloc_Fichiers')) == 4
assert pj_node.findall('Bloc_Fichiers')[0].find('TypeDocument').text == '6'
assert pj_node.findall('Bloc_Fichiers')[0].find('NomFichier').text == 'cartegrise.pdf'
assert pj_node.findall('Bloc_Fichiers')[0].find('Fichier').text == force_text(
assert pj_node.findall('Bloc_Fichiers')[0].find('Fichier').text == force_str(
base64.b64encode(b'%PDF carte grise 1')
)
assert pj_node.findall('Bloc_Fichiers')[1].find('TypeDocument').text == '6'
assert pj_node.findall('Bloc_Fichiers')[1].find('NomFichier').text == 'cartegrise2.pdf'
assert pj_node.findall('Bloc_Fichiers')[1].find('Fichier').text == force_text(
assert pj_node.findall('Bloc_Fichiers')[1].find('Fichier').text == force_str(
base64.b64encode(b'%PDF carte grise 2')
)
assert pj_node.findall('Bloc_Fichiers')[2].find('TypeDocument').text == '2'
assert pj_node.findall('Bloc_Fichiers')[2].find('NomFichier').text == 'address_proof.pDf'
assert pj_node.findall('Bloc_Fichiers')[2].find('Fichier').text == force_text(
assert pj_node.findall('Bloc_Fichiers')[2].find('Fichier').text == force_str(
base64.b64encode(b'%PDF this is my proof of address')
)
@ -764,7 +764,7 @@ def test_send_files(dpark, app, settings, freezer):
from passerelle.utils.conversion import to_pdf
assert pj_node.findall('Bloc_Fichiers')[3].find('NomFichier').text == 'cartegrisetoto.jpg.pdf'
assert pj_node.findall('Bloc_Fichiers')[3].find('Fichier').text == force_text(
assert pj_node.findall('Bloc_Fichiers')[3].find('Fichier').text == force_str(
base64.b64encode(to_pdf(JPEG_CONTENT))
)
assert base64.b64decode(pj_node.findall('Bloc_Fichiers')[3].find('Fichier').text).startswith(b'%PDF')

View File

@ -17,7 +17,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import pytest
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from django.utils.timezone import now
from passerelle.apps.gesbac.models import Gesbac
@ -175,8 +175,8 @@ def test_get_demand_response(app, resource, freezer, sftpserver):
assert resource.form_set.filter(form_id='42-43', filename=response_filename, status='closed').count() == 0
# files are encoded in latin-1
comment = force_text('propriétaire')
content = force_bytes(force_text('CARTE;%s;3;2;1234;;;;;;;;%s' % (gesbac_id, comment)), 'latin-1')
comment = force_str('propriétaire')
content = force_bytes(force_str('CARTE;%s;3;2;1234;;;;;;;;%s' % (gesbac_id, comment)), 'latin-1')
with sftpserver.serve_content({'input': {response_filename: content}}):
resource.hourly()

View File

@ -12,7 +12,7 @@ from django.core.management import call_command
from django.test import Client
from django.urls import reverse
from django.utils import timezone
from django.utils.encoding import force_bytes, force_text
from django.utils.encoding import force_bytes, force_str
from passerelle.apps.base_adresse.models import BaseAdresse
from passerelle.apps.bdp.models import Bdp
@ -44,7 +44,7 @@ data = """121;69981;DELANOUE;Eliot;H
216352;38;Dupont;Benoît;H
"""
data_bom = force_text(data, 'utf-8').encode('utf-8-sig')
data_bom = force_str(data, 'utf-8').encode('utf-8-sig')
SECTOR_CSV = """street_id,street_name,parity,min_housenumber,max_housenumber,sector_id,sector_name
75114_1912,rue du Château,P,,, gs-moulin, Groupe Scolaire Moulin"""

View File

@ -20,7 +20,7 @@ import json
import httmock
import pytest
from django.contrib.contenttypes.models import ContentType
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from passerelle.apps.orange.models import OrangeError, OrangeSMSGateway
from passerelle.base.models import AccessRight, ApiUser, Job
@ -57,7 +57,7 @@ def response_group_ok(url, request):
@httmock.urlmatch(netloc=NETLOC, path='/api/v1.2/groups/gid2/diffusion-requests', method='POST')
def response_diffusion_ok(url, request):
assert request.headers['authorization'] == 'Bearer my_token'
request_body = json.loads(force_text(request.body))
request_body = json.loads(force_str(request.body))
assert request_body['smsParam']['body'] == PAYLOAD['message']
assert 'senderName' not in request_body['smsParam'].keys()
assert '33688888888' in request_body['msisdns'][0]
@ -168,7 +168,7 @@ def test_diffusion(app, connector):
# sender name not allowed
@httmock.urlmatch(netloc=NETLOC)
def mocked_response2(url, request):
request_body = json.loads(force_text(request.body))
request_body = json.loads(force_str(request.body))
assert request_body['smsParam']['senderName'] == 'john'
error_response = [
{

View File

@ -26,7 +26,7 @@ from django.core.exceptions import ValidationError
from django.core.files import File
from django.core.management import call_command
from django.urls import reverse
from django.utils.encoding import force_str, force_text
from django.utils.encoding import force_str
from django.utils.timezone import now
import tests.utils
@ -44,7 +44,7 @@ CSV = """street_id,street_name,parity,min_housenumber,max_housenumber,sector_id,
75114_1915, ,,,,ecole-hugo2 , École Hugo 2
"""
CSV_BOM = force_str(force_text(CSV, 'utf-8').encode('utf-8-sig'))
CSV_BOM = force_str(force_str(CSV, 'utf-8').encode('utf-8-sig'))
CSV_NO_FIRST_LINE = """75114_1912,rue du Château,P,,, gs-moulin, Groupe Scolaire Moulin
75114_1912,rue du Château,I,0,999999,gs-zola,Groupe Scolaire Zola

View File

@ -20,7 +20,7 @@ import os
import mock
import pytest
from django.utils.encoding import force_text
from django.utils.encoding import force_str
import tests.utils
from passerelle.contrib.solis_afi_mss.models import SolisAfiMss
@ -708,7 +708,7 @@ def test_add_document(mocked_post, mocked_get, app, connector):
'document': {
'filename': '201x201.jpg',
'content_type': 'image/jpeg',
'content': force_text(base64.b64encode(get_media_file('201x201.jpg'))),
'content': force_str(base64.b64encode(get_media_file('201x201.jpg'))),
},
}
@ -790,7 +790,7 @@ def test_add_document_wrong_code_ged(mocked_post, mocked_get, app, connector):
'document': {
'filename': '201x201.jpg',
'content_type': 'image/jpeg',
'content': force_text(base64.b64encode(get_media_file('201x201.jpg'))),
'content': force_str(base64.b64encode(get_media_file('201x201.jpg'))),
},
}
resp = app.post_json(endpoint + '?email=foo@dummy.org', params=payload)

View File

@ -30,7 +30,7 @@ import mock
import pytest
from django.db import connection
from django.db.migrations.executor import MigrationExecutor
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from requests.exceptions import ReadTimeout
import tests.utils
@ -871,7 +871,7 @@ ADD_MEDIA_PAYLOAD = {
'files/0': {
'filename': '201x201.jpg',
'content_type': 'image/jpeg',
'content': force_text(base64.b64encode(get_media_file('201x201.jpg'))),
'content': force_str(base64.b64encode(get_media_file('201x201.jpg'))),
},
'files/1': None,
}

View File

@ -19,7 +19,7 @@ import os
import pytest
from django.core.files.uploadedfile import SimpleUploadedFile
from django.db import models
from django.utils.encoding import force_text
from django.utils.encoding import force_str
from passerelle.utils.sftp import SFTP, SFTPField, SFTPFormField
@ -94,7 +94,7 @@ def test_form_field(sftpserver, ssh_key, ssh_key_with_password):
with form.cleaned_data['sftp'].client() as sftp:
assert sftp.listdir() == ['a.zip']
form = Form(data={'sftp_0': url, 'sftp_2': force_text(ssh_key, 'ascii')})
form = Form(data={'sftp_0': url, 'sftp_2': force_str(ssh_key, 'ascii')})
assert form.is_valid()
sftp = form.cleaned_data['sftp']
assert isinstance(sftp, SFTP)
@ -125,14 +125,14 @@ def test_form_field(sftpserver, ssh_key, ssh_key_with_password):
with form.cleaned_data['sftp'].client() as sftp:
assert sftp.listdir() == ['a.zip']
form = Form(data={'sftp_0': url, 'sftp_2': force_text(ssh_key_with_password, 'ascii')})
form = Form(data={'sftp_0': url, 'sftp_2': force_str(ssh_key_with_password, 'ascii')})
assert not form.is_valid()
assert 'key invalid' in str(form.errors)
form = Form(
data={
'sftp_0': url,
'sftp_2': force_text(ssh_key_with_password, 'ascii'),
'sftp_2': force_str(ssh_key_with_password, 'ascii'),
'sftp_3': 'coucou',
}
)