refactor: Replace deprecated force_text with force_str

This commit is contained in:
Jennifer Richards 2023-05-09 15:21:50 -03:00
parent dcb211fbb3
commit 07e26dd52e
No known key found for this signature in database
GPG key ID: 9B2BF5C5ADDA6A6E
22 changed files with 51 additions and 52 deletions

View file

@ -221,7 +221,7 @@ class JsonExportMixin(object):
# obj = None # obj = None
# #
# if obj is None: # if obj is None:
# raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {'name': force_text(self.model._meta.verbose_name), 'key': escape(object_id)}) # raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {'name': force_str(self.model._meta.verbose_name), 'key': escape(object_id)})
# #
# content_type = 'application/json' # content_type = 'application/json'
# return HttpResponse(serialize([ obj ], sort_keys=True, indent=3)[2:-2], content_type=content_type) # return HttpResponse(serialize([ obj ], sort_keys=True, indent=3)[2:-2], content_type=content_type)

View file

@ -11,7 +11,7 @@ from django.utils.html import strip_tags
from django.conf import settings from django.conf import settings
from django.urls import reverse as urlreverse from django.urls import reverse as urlreverse
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_text from django.utils.encoding import force_str
import debug # pyflakes:ignore import debug # pyflakes:ignore
from ietf.doc.templatetags.mail_filters import std_level_prompt from ietf.doc.templatetags.mail_filters import std_level_prompt
@ -175,7 +175,7 @@ def generate_ballot_writeup(request, doc):
e.doc = doc e.doc = doc
e.rev = doc.rev e.rev = doc.rev
e.desc = "Ballot writeup was generated" e.desc = "Ballot writeup was generated"
e.text = force_text(render_to_string("doc/mail/ballot_writeup.txt", {'iana': iana, 'doc': doc })) e.text = force_str(render_to_string("doc/mail/ballot_writeup.txt", {'iana': iana, 'doc': doc }))
# caller is responsible for saving, if necessary # caller is responsible for saving, if necessary
return e return e
@ -187,7 +187,7 @@ def generate_ballot_rfceditornote(request, doc):
e.doc = doc e.doc = doc
e.rev = doc.rev e.rev = doc.rev
e.desc = "RFC Editor Note for ballot was generated" e.desc = "RFC Editor Note for ballot was generated"
e.text = force_text(render_to_string("doc/mail/ballot_rfceditornote.txt")) e.text = force_str(render_to_string("doc/mail/ballot_rfceditornote.txt"))
e.save() e.save()
return e return e
@ -232,7 +232,7 @@ def generate_last_call_announcement(request, doc):
e.doc = doc e.doc = doc
e.rev = doc.rev e.rev = doc.rev
e.desc = "Last call announcement was generated" e.desc = "Last call announcement was generated"
e.text = force_text(mail) e.text = force_str(mail)
# caller is responsible for saving, if necessary # caller is responsible for saving, if necessary
return e return e
@ -252,7 +252,7 @@ def generate_approval_mail(request, doc):
e.doc = doc e.doc = doc
e.rev = doc.rev e.rev = doc.rev
e.desc = "Ballot approval text was generated" e.desc = "Ballot approval text was generated"
e.text = force_text(mail) e.text = force_str(mail)
# caller is responsible for saving, if necessary # caller is responsible for saving, if necessary
return e return e

View file

@ -23,7 +23,7 @@ from django.urls import reverse as urlreverse
from django.contrib.contenttypes.models import ContentType from django.contrib.contenttypes.models import ContentType
from django.conf import settings from django.conf import settings
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_text from django.utils.encoding import force_str
from django.utils.html import mark_safe # type:ignore from django.utils.html import mark_safe # type:ignore
from django.contrib.staticfiles import finders from django.contrib.staticfiles import finders
@ -1131,7 +1131,7 @@ class DocHistory(DocumentInfo):
name = models.CharField(max_length=255) name = models.CharField(max_length=255)
def __str__(self): def __str__(self):
return force_text(self.doc.name) return force_str(self.doc.name)
def get_related_session(self): def get_related_session(self):
return self.doc.get_related_session() return self.doc.get_related_session()
@ -1193,7 +1193,7 @@ class DocAlias(models.Model):
return self.docs.first() return self.docs.first()
def __str__(self): def __str__(self):
return u"%s-->%s" % (self.name, ','.join([force_text(d.name) for d in self.docs.all() if isinstance(d, Document) ])) return u"%s-->%s" % (self.name, ','.join([force_str(d.name) for d in self.docs.all() if isinstance(d, Document) ]))
document_link = admin_link("document") document_link = admin_link("document")
class Meta: class Meta:
verbose_name = "document alias" verbose_name = "document alias"

View file

@ -13,8 +13,7 @@ from django.utils.html import escape
from django.template.defaultfilters import truncatewords_html, linebreaksbr, stringfilter, striptags from django.template.defaultfilters import truncatewords_html, linebreaksbr, stringfilter, striptags
from django.utils.safestring import mark_safe, SafeData from django.utils.safestring import mark_safe, SafeData
from django.utils.html import strip_tags from django.utils.html import strip_tags
from django.utils.encoding import force_text from django.utils.encoding import force_str
from django.utils.encoding import force_str # pyflakes:ignore force_str is used in the doctests
from django.urls import reverse as urlreverse from django.urls import reverse as urlreverse
from django.core.cache import cache from django.core.cache import cache
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
@ -132,7 +131,7 @@ register.filter('fill', fill)
@register.filter @register.filter
def prettystdname(string, space=" "): def prettystdname(string, space=" "):
from ietf.doc.utils import prettify_std_name from ietf.doc.utils import prettify_std_name
return prettify_std_name(force_text(string or ""), space) return prettify_std_name(force_str(string or ""), space)
@register.filter @register.filter
def rfceditor_info_url(rfcnum : str): def rfceditor_info_url(rfcnum : str):

View file

@ -12,7 +12,7 @@ from django.conf import settings
from django.urls import reverse as urlreverse from django.urls import reverse as urlreverse
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import smart_text, force_text from django.utils.encoding import smart_text, force_str
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -153,7 +153,7 @@ def generate_ballot_writeup(request, doc):
e.doc = doc e.doc = doc
e.rev = doc.rev, e.rev = doc.rev,
e.desc = "Ballot writeup was generated" e.desc = "Ballot writeup was generated"
e.text = force_text(render_to_string("doc/charter/ballot_writeup.txt")) e.text = force_str(render_to_string("doc/charter/ballot_writeup.txt"))
# caller is responsible for saving, if necessary # caller is responsible for saving, if necessary
return e return e

View file

@ -17,7 +17,7 @@ from django.conf import settings
from django.contrib import messages from django.contrib import messages
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_text from django.utils.encoding import force_str
from django.utils.html import escape from django.utils.html import escape
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -821,7 +821,7 @@ def charter_with_milestones_txt(request, name, rev):
try: try:
with io.open(os.path.join(settings.CHARTER_PATH, filename), 'r') as f: with io.open(os.path.join(settings.CHARTER_PATH, filename), 'r') as f:
charter_text = force_text(f.read(), errors='ignore') charter_text = force_str(f.read(), errors='ignore')
except IOError: except IOError:
charter_text = "Error reading charter text %s" % filename charter_text = "Error reading charter text %s" % filename

View file

@ -15,7 +15,7 @@ from django.http import Http404, HttpResponseRedirect
from django.urls import reverse from django.urls import reverse
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.conf import settings from django.conf import settings
from django.utils.encoding import force_text from django.utils.encoding import force_str
from django.utils.html import escape from django.utils.html import escape
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -665,7 +665,7 @@ def generate_last_call_text(request, doc):
e.doc = doc e.doc = doc
e.rev = doc.rev e.rev = doc.rev
e.desc = 'Last call announcement was generated' e.desc = 'Last call announcement was generated'
e.text = force_text(new_text) e.text = force_str(new_text)
e.save() e.save()
return e return e

View file

@ -14,7 +14,7 @@ from django.contrib.admin.utils import unquote
from django.core.management import load_command_class from django.core.management import load_command_class
from django.http import Http404 from django.http import Http404
from django.shortcuts import render from django.shortcuts import render
from django.utils.encoding import force_text from django.utils.encoding import force_str
from django.utils.html import escape from django.utils.html import escape
from django.utils.translation import ugettext as _ from django.utils.translation import ugettext as _
@ -152,7 +152,7 @@ class GroupAdmin(admin.ModelAdmin):
permission_denied(request, "You don't have edit permissions for this change.") permission_denied(request, "You don't have edit permissions for this change.")
if obj is None: if obj is None:
raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {'name': force_text(opts.verbose_name), 'key': escape(object_id)}) raise Http404(_('%(name)s object with primary key %(key)r does not exist.') % {'name': force_str(opts.verbose_name), 'key': escape(object_id)})
return self.send_reminder(request, sdo=obj) return self.send_reminder(request, sdo=obj)

View file

@ -6,7 +6,7 @@ from django.contrib.syndication.views import Feed
from django.utils.feedgenerator import Atom1Feed from django.utils.feedgenerator import Atom1Feed
from django.urls import reverse_lazy from django.urls import reverse_lazy
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from django.utils.encoding import force_text from django.utils.encoding import force_str
from ietf.ipr.models import IprDisclosureBase from ietf.ipr.models import IprDisclosureBase
@ -25,7 +25,7 @@ class LatestIprDisclosuresFeed(Feed):
return mark_safe(item.title) return mark_safe(item.title)
def item_description(self, item): def item_description(self, item):
return force_text(item.title) return force_str(item.title)
def item_pubdate(self, item): def item_pubdate(self, item):
return item.time return item.time

View file

@ -12,7 +12,7 @@ from email import message_from_bytes
from email.utils import parsedate_tz from email.utils import parsedate_tz
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.encoding import force_text, force_bytes from django.utils.encoding import force_str, force_bytes
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -102,7 +102,7 @@ def get_reply_to():
address with "plus addressing" using a random string. Guaranteed to be unique""" address with "plus addressing" using a random string. Guaranteed to be unique"""
local,domain = get_base_ipr_request_address().split('@') local,domain = get_base_ipr_request_address().split('@')
while True: while True:
rand = force_text(base64.urlsafe_b64encode(os.urandom(12))) rand = force_str(base64.urlsafe_b64encode(os.urandom(12)))
address = "{}+{}@{}".format(local,rand,domain) address = "{}+{}@{}".format(local,rand,domain)
q = Message.objects.filter(reply_to=address) q = Message.objects.filter(reply_to=address)
if not q: if not q:

View file

@ -132,7 +132,7 @@ class AddCommentForm(forms.Form):
# def render(self): # def render(self):
# output = [] # output = []
# for widget in self: # for widget in self:
# output.append(format_html(force_text(widget))) # output.append(format_html(force_str(widget)))
# return mark_safe('\n'.join(output)) # return mark_safe('\n'.join(output))

View file

@ -6,7 +6,7 @@ import re
from django import template from django import template
from django.conf import settings from django.conf import settings
from django.template.defaultfilters import linebreaksbr, force_escape from django.template.defaultfilters import linebreaksbr, force_escape
from django.utils.encoding import force_text, DjangoUnicodeDecodeError from django.utils.encoding import force_str, DjangoUnicodeDecodeError
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -68,7 +68,7 @@ def decrypt(string, request, year, plain=False):
code, out, error = pipe(command % (settings.OPENSSL_COMMAND, code, out, error = pipe(command % (settings.OPENSSL_COMMAND,
encrypted_file.name), key) encrypted_file.name), key)
try: try:
out = force_text(out) out = force_str(out)
except DjangoUnicodeDecodeError: except DjangoUnicodeDecodeError:
pass pass
if code != 0: if code != 0:

View file

@ -18,7 +18,7 @@ from django.http import Http404, HttpResponseRedirect, HttpResponse
from django.shortcuts import render, get_object_or_404, redirect from django.shortcuts import render, get_object_or_404, redirect
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.urls import reverse from django.urls import reverse
from django.utils.encoding import force_bytes, force_text from django.utils.encoding import force_bytes, force_str
from ietf.dbtemplate.models import DBTemplate from ietf.dbtemplate.models import DBTemplate
@ -684,7 +684,7 @@ def private_questionnaire(request, year):
if form.is_valid(): if form.is_valid():
form.save() form.save()
messages.success(request, 'The questionnaire response has been registered.') messages.success(request, 'The questionnaire response has been registered.')
questionnaire_response = force_text(form.cleaned_data['comment_text']) questionnaire_response = force_str(form.cleaned_data['comment_text'])
form = QuestionnaireForm(nomcom=nomcom, user=request.user) form = QuestionnaireForm(nomcom=nomcom, user=request.user)
else: else:
form = QuestionnaireForm(nomcom=nomcom, user=request.user) form = QuestionnaireForm(nomcom=nomcom, user=request.user)

View file

@ -16,7 +16,7 @@ from unicodedata import normalize
from django.conf import settings from django.conf import settings
from django.contrib.auth.models import User from django.contrib.auth.models import User
from django.utils.text import slugify from django.utils.text import slugify
from django.utils.encoding import force_text from django.utils.encoding import force_str
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -68,7 +68,7 @@ class PersonFactory(factory.django.DjangoModelFactory):
# Some i18n names, e.g., "शिला के.सी." have a dot at the end that is also part of the ASCII, e.g., "Shilaa Kesii." # Some i18n names, e.g., "शिला के.सी." have a dot at the end that is also part of the ASCII, e.g., "Shilaa Kesii."
# That trailing dot breaks extract_authors(). Avoid this issue by stripping the dot from the ASCII. # That trailing dot breaks extract_authors(). Avoid this issue by stripping the dot from the ASCII.
# Some others have a trailing semicolon (e.g., "உயிரோவியம் தங்கராஐ;") - strip those, too. # Some others have a trailing semicolon (e.g., "உயிரோவியம் தங்கராஐ;") - strip those, too.
ascii = factory.LazyAttribute(lambda p: force_text(unidecode_name(p.name)).rstrip(".;")) ascii = factory.LazyAttribute(lambda p: force_str(unidecode_name(p.name)).rstrip(".;"))
class Params: class Params:
with_bio = factory.Trait(biography = "\n\n".join(fake.paragraphs())) # type: ignore with_bio = factory.Trait(biography = "\n\n".join(fake.paragraphs())) # type: ignore

View file

@ -13,7 +13,7 @@ from django.urls import reverse as urlreverse
from django.core.exceptions import ValidationError from django.core.exceptions import ValidationError
from django.contrib.sites.models import Site from django.contrib.sites.models import Site
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.utils.encoding import force_text, force_str from django.utils.encoding import force_str
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -202,7 +202,7 @@ def get_reply_to():
address with "plus addressing" using a random string. Guaranteed to be unique""" address with "plus addressing" using a random string. Guaranteed to be unique"""
local,domain = get_base_submission_message_address().split('@') local,domain = get_base_submission_message_address().split('@')
while True: while True:
rand = force_text(base64.urlsafe_b64encode(os.urandom(12))) rand = force_str(base64.urlsafe_b64encode(os.urandom(12)))
address = "{}+{}@{}".format(local,rand,domain) address = "{}+{}@{}".format(local,rand,domain)
q = Message.objects.filter(reply_to=address) q = Message.objects.filter(reply_to=address)
if not q: if not q:

View file

@ -23,7 +23,7 @@ from django.test import override_settings
from django.test.client import RequestFactory from django.test.client import RequestFactory
from django.urls import reverse as urlreverse from django.urls import reverse as urlreverse
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_str, force_text from django.utils.encoding import force_str
import debug # pyflakes:ignore import debug # pyflakes:ignore
from ietf.submit.utils import (expirable_submissions, expire_submission, find_submission_filenames, from ietf.submit.utils import (expirable_submissions, expire_submission, find_submission_filenames,
@ -701,10 +701,10 @@ class SubmitTests(BaseSubmitTestCase):
self.assertTrue("New Version Notification" in outbox[-2]["Subject"]) self.assertTrue("New Version Notification" in outbox[-2]["Subject"])
self.assertTrue(name in get_payload_text(outbox[-2])) self.assertTrue(name in get_payload_text(outbox[-2]))
interesting_address = {'ietf':'mars', 'irtf':'irtf-chair', 'iab':'iab-chair', 'ise':'rfc-ise'}[draft.stream_id] interesting_address = {'ietf':'mars', 'irtf':'irtf-chair', 'iab':'iab-chair', 'ise':'rfc-ise'}[draft.stream_id]
self.assertTrue(interesting_address in force_text(outbox[-2].as_string())) self.assertTrue(interesting_address in force_str(outbox[-2].as_string()))
if draft.stream_id == 'ietf': if draft.stream_id == 'ietf':
self.assertTrue(draft.ad.role_email("ad").address in force_text(outbox[-2].as_string())) self.assertTrue(draft.ad.role_email("ad").address in force_str(outbox[-2].as_string()))
self.assertTrue(ballot_position.balloter.role_email("ad").address in force_text(outbox[-2].as_string())) self.assertTrue(ballot_position.balloter.role_email("ad").address in force_str(outbox[-2].as_string()))
self.assertTrue("New Version Notification" in outbox[-1]["Subject"]) self.assertTrue("New Version Notification" in outbox[-1]["Subject"])
self.assertTrue(name in get_payload_text(outbox[-1])) self.assertTrue(name in get_payload_text(outbox[-1]))
r = self.client.get(urlreverse('ietf.doc.views_search.recent_drafts')) r = self.client.get(urlreverse('ietf.doc.views_search.recent_drafts'))

View file

@ -12,7 +12,7 @@ from xml.dom import pulldom, Node
from django.conf import settings from django.conf import settings
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import smart_bytes, force_str, force_text from django.utils.encoding import smart_bytes, force_str
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -583,7 +583,7 @@ def post_approved_draft(url, name):
if r.status_code != 200: if r.status_code != 200:
raise RuntimeError("Status code is not 200 OK (it's %s)." % r.status_code) raise RuntimeError("Status code is not 200 OK (it's %s)." % r.status_code)
if force_text(r.text) != "OK": if force_str(r.text) != "OK":
raise RuntimeError('Response is not "OK" (it\'s "%s").' % r.text) raise RuntimeError('Response is not "OK" (it\'s "%s").' % r.text)
except Exception as e: except Exception as e:

View file

@ -5,7 +5,7 @@
import time, random, hashlib import time, random, hashlib
from django.conf import settings from django.conf import settings
from django.utils.encoding import force_bytes, force_text from django.utils.encoding import force_bytes, force_str
def generate_random_key(max_length=32): def generate_random_key(max_length=32):
@ -18,4 +18,4 @@ def generate_access_token(key, max_length=32):
# we hash it with the private key to make sure only we can # we hash it with the private key to make sure only we can
# generate and use the final token - so storing the key in the # generate and use the final token - so storing the key in the
# database is safe # database is safe
return force_text(hashlib.sha256(force_bytes(settings.SECRET_KEY) + force_bytes(key)).hexdigest()[:max_length]) return force_str(hashlib.sha256(force_bytes(settings.SECRET_KEY) + force_bytes(key)).hexdigest()[:max_length])

View file

@ -3,7 +3,7 @@
from django.contrib import admin from django.contrib import admin
from django.utils.encoding import force_text from django.utils.encoding import force_str
from ietf.utils.models import VersionInfo from ietf.utils.models import VersionInfo
@ -14,7 +14,7 @@ def name(obj):
if callable(obj.name): if callable(obj.name):
name = obj.name() name = obj.name()
else: else:
name = force_text(obj.name) name = force_str(obj.name)
if name: if name:
return name return name
return str(obj) return str(obj)

View file

@ -27,7 +27,7 @@ from django.core.validators import validate_email
from django.template.loader import render_to_string from django.template.loader import render_to_string
from django.template import Context,RequestContext from django.template import Context,RequestContext
from django.utils import timezone from django.utils import timezone
from django.utils.encoding import force_text, force_str, force_bytes from django.utils.encoding import force_str, force_bytes
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -137,7 +137,7 @@ def send_smtp(msg, bcc=None):
server.quit() server.quit()
except smtplib.SMTPServerDisconnected: except smtplib.SMTPServerDisconnected:
pass pass
subj = force_text(msg.get('Subject', '[no subject]')) subj = force_str(msg.get('Subject', '[no subject]'))
tau = time.time() - mark tau = time.time() - mark
log("sent email (%.3fs) from '%s' to %s id %s subject '%s'" % (tau, frm, to, msg.get('Message-ID', ''), subj)) log("sent email (%.3fs) from '%s' to %s id %s subject '%s'" % (tau, frm, to, msg.get('Message-ID', ''), subj))
@ -166,7 +166,7 @@ def copy_email(msg, to, toUser=False, originalBcc=None):
# Overwrite the From: header, so that the copy from a development or # Overwrite the From: header, so that the copy from a development or
# test server doesn't look like spam. # test server doesn't look like spam.
new['From'] = settings.DEFAULT_FROM_EMAIL new['From'] = settings.DEFAULT_FROM_EMAIL
new['Subject'] = '[Django %s] %s' % (settings.SERVER_MODE, force_text(msg.get('Subject', '[no subject]'))) new['Subject'] = '[Django %s] %s' % (settings.SERVER_MODE, force_str(msg.get('Subject', '[no subject]')))
new['To'] = to new['To'] = to
send_smtp(new) send_smtp(new)
@ -325,7 +325,7 @@ def show_that_mail_was_sent(request,leadline,msg,bcc):
from ietf.ietfauth.utils import has_role from ietf.ietfauth.utils import has_role
if has_role(request.user,['Area Director','Secretariat','IANA','RFC Editor','ISE','IAD','IRTF Chair','WG Chair','RG Chair','WG Secretary','RG Secretary']): if has_role(request.user,['Area Director','Secretariat','IANA','RFC Editor','ISE','IAD','IRTF Chair','WG Chair','RG Chair','WG Secretary','RG Secretary']):
info = "%s at %s %s\n" % (leadline,timezone.now().strftime("%Y-%m-%d %H:%M:%S"),settings.TIME_ZONE) info = "%s at %s %s\n" % (leadline,timezone.now().strftime("%Y-%m-%d %H:%M:%S"),settings.TIME_ZONE)
info += "Subject: %s\n" % force_text(msg.get('Subject','[no subject]')) info += "Subject: %s\n" % force_str(msg.get('Subject','[no subject]'))
info += "To: %s\n" % msg.get('To','[no to]') info += "To: %s\n" % msg.get('To','[no to]')
if msg.get('Cc'): if msg.get('Cc'):
info += "Cc: %s\n" % msg.get('Cc') info += "Cc: %s\n" % msg.get('Cc')
@ -336,7 +336,7 @@ def show_that_mail_was_sent(request,leadline,msg,bcc):
def save_as_message(request, msg, bcc): def save_as_message(request, msg, bcc):
by = ((request and request.user and not request.user.is_anonymous and request.user.person) by = ((request and request.user and not request.user.is_anonymous and request.user.person)
or ietf.person.models.Person.objects.get(name="(System)")) or ietf.person.models.Person.objects.get(name="(System)"))
headers, body = force_text(str(msg)).split('\n\n', 1) headers, body = force_str(str(msg)).split('\n\n', 1)
kwargs = {'by': by, 'body': body, 'content_type': msg.get_content_type(), 'bcc': bcc or '' } kwargs = {'by': by, 'body': body, 'content_type': msg.get_content_type(), 'bcc': bcc or '' }
for (arg, field) in [ for (arg, field) in [
('cc', 'Cc'), ('cc', 'Cc'),

View file

@ -18,7 +18,7 @@ from django.core.exceptions import ObjectDoesNotExist
from django.core import serializers from django.core import serializers
from django.db import DEFAULT_DB_ALIAS, DatabaseError, IntegrityError, connections from django.db import DEFAULT_DB_ALIAS, DatabaseError, IntegrityError, connections
from django.db.models.signals import post_save from django.db.models.signals import post_save
from django.utils.encoding import force_text from django.utils.encoding import force_str
import django.core.management.commands.loaddata as loaddata import django.core.management.commands.loaddata as loaddata
import debug # pyflakes:ignore import debug # pyflakes:ignore
@ -91,7 +91,7 @@ class Command(loaddata.Command):
obj.save(using=self.using) obj.save(using=self.using)
self.loaded_object_count += 1 self.loaded_object_count += 1
except (DatabaseError, IntegrityError, ObjectDoesNotExist, AttributeError) as e: except (DatabaseError, IntegrityError, ObjectDoesNotExist, AttributeError) as e:
error_msg = force_text(e) error_msg = force_str(e)
if "Duplicate entry" in error_msg: if "Duplicate entry" in error_msg:
pass pass
else: else:

View file

@ -15,7 +15,7 @@ from django.core.management.base import CommandError
from django.core.management.commands.loaddata import Command as LoadCommand, humanize from django.core.management.commands.loaddata import Command as LoadCommand, humanize
from django.db import DatabaseError, IntegrityError, router, transaction from django.db import DatabaseError, IntegrityError, router, transaction
from django.db.models import ManyToManyField from django.db.models import ManyToManyField
from django.utils.encoding import force_text from django.utils.encoding import force_str
from ietf.utils.models import ForeignKey from ietf.utils.models import ForeignKey
@ -234,7 +234,7 @@ class Command(LoadCommand):
'object_name': obj.object._meta.object_name, 'object_name': obj.object._meta.object_name,
'pk': obj.object.pk, 'pk': obj.object.pk,
'data': obj_to_dict(obj.object), 'data': obj_to_dict(obj.object),
'error_msg': force_text(e) 'error_msg': force_str(e)
},) },)
raise raise
if objects and show_progress: if objects and show_progress: