Use six.text_type instead of unicode().

I will be switch to use ``from __future__ import unicode_literals`` later.
This commit is contained in:
Berker Peksag 2014-06-02 20:59:28 +03:00
parent a80c74bbcc
commit e49b7e02b2
36 changed files with 151 additions and 84 deletions

View File

@ -16,6 +16,8 @@
import logging
import six
import wtforms
from sqlalchemy import or_
@ -140,7 +142,7 @@ def register_user(request, register_form):
user.save()
# log the user in
request.session['user_id'] = unicode(user.id)
request.session['user_id'] = six.text_type(user.id)
request.session.save()
# send verification email

View File

@ -14,6 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import six
from itsdangerous import BadSignature
from mediagoblin import messages, mg_globals
@ -93,7 +95,7 @@ def login(request):
# set up login in session
if login_form.stay_logged_in.data:
request.session['stay_logged_in'] = True
request.session['user_id'] = unicode(user.id)
request.session['user_id'] = six.text_type(user.id)
request.session.save()
if request.form.get('next'):

View File

@ -17,6 +17,8 @@
import datetime
import uuid
import six
from sqlalchemy import (MetaData, Table, Column, Boolean, SmallInteger,
Integer, Unicode, UnicodeText, DateTime,
ForeignKey, Date)
@ -248,7 +250,7 @@ def mediaentry_new_slug_era(db):
for row in db.execute(media_table.select()):
# no slug, try setting to an id
if not row.slug:
append_garbage_till_unique(row, unicode(row.id))
append_garbage_till_unique(row, six.text_type(row.id))
# has "=" or ":" in it... we're getting rid of those
elif u"=" in row.slug or u":" in row.slug:
append_garbage_till_unique(
@ -277,7 +279,7 @@ def unique_collections_slug(db):
existing_slugs[row.creator].append(row.slug)
for row_id in slugs_to_change:
new_slug = unicode(uuid.uuid4())
new_slug = six.text_type(uuid.uuid4())
db.execute(collection_table.update().
where(collection_table.c.id == row_id).
values(slug=new_slug))

View File

@ -304,7 +304,7 @@ class MediaEntry(Base, MediaEntryMixin):
return the value of the key.
"""
media_file = MediaFile.query.filter_by(media_entry=self.id,
name=unicode(file_key)).first()
name=six.text_type(file_key)).first()
if media_file:
if metadata_key:
@ -317,7 +317,7 @@ class MediaEntry(Base, MediaEntryMixin):
Update the file_metadata of a MediaFile.
"""
media_file = MediaFile.query.filter_by(media_entry=self.id,
name=unicode(file_key)).first()
name=six.text_type(file_key)).first()
file_metadata = media_file.file_metadata or {}

View File

@ -14,6 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import six
from datetime import datetime
from itsdangerous import BadSignature
@ -77,7 +79,7 @@ def edit_media(request, media):
media.tags = convert_to_tag_list_of_dicts(
form.tags.data)
media.license = unicode(form.license.data) or None
media.license = six.text_type(form.license.data) or None
media.slug = slug
media.save()
@ -135,7 +137,7 @@ def edit_attachments(request, media):
attachment_public_filepath \
= mg_globals.public_store.get_unique_filepath(
['media_entries', unicode(media.id), 'attachment',
['media_entries', six.text_type(media.id), 'attachment',
public_filename])
attachment_public_file = mg_globals.public_store.get_file(
@ -200,8 +202,8 @@ def edit_profile(request, url_user=None):
bio=user.bio)
if request.method == 'POST' and form.validate():
user.url = unicode(form.url.data)
user.bio = unicode(form.bio.data)
user.url = six.text_type(form.url.data)
user.bio = six.text_type(form.bio.data)
user.save()
@ -316,9 +318,9 @@ def edit_collection(request, collection):
form.slug.errors.append(
_(u'A collection with that slug already exists for this user.'))
else:
collection.title = unicode(form.title.data)
collection.description = unicode(form.description.data)
collection.slug = unicode(form.slug.data)
collection.title = six.text_type(form.title.data)
collection.description = six.text_type(form.description.data)
collection.slug = six.text_type(form.slug.data)
collection.save()

View File

@ -14,8 +14,12 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from __future__ import print_function
import os
import six
from mediagoblin.gmg_commands import util as commands_util
from mediagoblin.submit.lib import (
submit_media, get_upload_file_limits,
@ -68,14 +72,14 @@ def addmedia(args):
# get the user
user = app.db.User.query.filter_by(username=args.username.lower()).first()
if user is None:
print "Sorry, no user by username '%s'" % args.username
print("Sorry, no user by username '%s'" % args.username)
return
# check for the file, if it exists...
filename = os.path.split(args.filename)[-1]
abs_filename = os.path.abspath(args.filename)
if not os.path.exists(abs_filename):
print "Can't find a file with filename '%s'" % args.filename
print("Can't find a file with filename '%s'" % args.filename)
return
upload_limit, max_file_size = get_upload_file_limits(user)
@ -85,7 +89,7 @@ def addmedia(args):
if some_string is None:
return None
else:
return unicode(some_string)
return six.text_type(some_string)
try:
submit_media(
@ -98,8 +102,8 @@ def addmedia(args):
tags_string=maybe_unicodeify(args.tags) or u"",
upload_limit=upload_limit, max_file_size=max_file_size)
except FileUploadLimit:
print "This file is larger than the upload limits for this site."
print("This file is larger than the upload limits for this site.")
except UserUploadLimit:
print "This file will put this user past their upload limits."
print("This file will put this user past their upload limits.")
except UserPastUploadLimit:
print "This user is already past their upload limits."
print("This user is already past their upload limits.")

View File

@ -14,6 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import six
from mediagoblin.gmg_commands import util as commands_util
from mediagoblin import auth
from mediagoblin import mg_globals
@ -50,8 +52,8 @@ def adduser(args):
else:
# Create the user
entry = db.User()
entry.username = unicode(args.username.lower())
entry.email = unicode(args.email)
entry.username = six.text_type(args.username.lower())
entry.email = six.text_type(args.email)
entry.pw_hash = auth.gen_password_hash(args.password)
default_privileges = [
db.Privilege.query.filter(
@ -81,7 +83,7 @@ def makeadmin(args):
db = mg_globals.database
user = db.User.query.filter_by(
username=unicode(args.username.lower())).one()
username=six.text_type(args.username.lower())).one()
if user:
user.all_privileges.append(
db.Privilege.query.filter(
@ -108,7 +110,7 @@ def changepw(args):
db = mg_globals.database
user = db.User.query.filter_by(
username=unicode(args.username.lower())).one()
username=six.text_type(args.username.lower())).one()
if user:
user.pw_hash = auth.gen_password_hash(args.password)
user.save()

View File

@ -22,6 +22,8 @@ except ImportError:
import Image
import logging
import six
from mediagoblin import mg_globals as mgg
from mediagoblin.processing import (
create_pub_filepath, FilenameBuilder,
@ -104,7 +106,7 @@ class CommonAsciiProcessor(MediaProcessor):
# Encode the unicode instance to ASCII and replace any
# non-ASCII with an HTML entity (&#
unicode_file.write(
unicode(orig_file.read().decode(
six.text_type(orig_file.read().decode(
self.charset)).encode(
'ascii',
'xmlcharrefreplace'))

View File

@ -19,6 +19,8 @@ _log = logging.getLogger(__name__)
from datetime import datetime
import six
from werkzeug.exceptions import Forbidden
from mediagoblin.tools import pluginapi
@ -75,8 +77,8 @@ def blog_edit(request):
if request.method=='POST' and form.validate():
_log.info("Here")
blog = request.db.Blog()
blog.title = unicode(form.title.data)
blog.description = unicode(cleaned_markdown_conversion((form.description.data)))
blog.title = six.text_type(form.title.data)
blog.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blog.author = request.user.id
blog.generate_slug()
@ -112,8 +114,8 @@ def blog_edit(request):
'app_config': mg_globals.app_config})
else:
if request.method == 'POST' and form.validate():
blog.title = unicode(form.title.data)
blog.description = unicode(cleaned_markdown_conversion((form.description.data)))
blog.title = six.text_type(form.title.data)
blog.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blog.author = request.user.id
blog.generate_slug()
@ -137,10 +139,10 @@ def blogpost_create(request):
blogpost = request.db.MediaEntry()
blogpost.media_type = 'mediagoblin.media_types.blogpost'
blogpost.title = unicode(form.title.data)
blogpost.description = unicode(cleaned_markdown_conversion((form.description.data)))
blogpost.title = six.text_type(form.title.data)
blogpost.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blogpost.tags = convert_to_tag_list_of_dicts(form.tags.data)
blogpost.license = unicode(form.license.data) or None
blogpost.license = six.text_type(form.license.data) or None
blogpost.uploader = request.user.id
blogpost.generate_slug()
@ -187,10 +189,10 @@ def blogpost_edit(request):
form = blog_forms.BlogPostEditForm(request.form, **defaults)
if request.method == 'POST' and form.validate():
blogpost.title = unicode(form.title.data)
blogpost.description = unicode(cleaned_markdown_conversion((form.description.data)))
blogpost.title = six.text_type(form.title.data)
blogpost.description = six.text_type(cleaned_markdown_conversion((form.description.data)))
blogpost.tags = convert_to_tag_list_of_dicts(form.tags.data)
blogpost.license = unicode(form.license.data)
blogpost.license = six.text_type(form.license.data)
set_blogpost_state(request, blogpost)
blogpost.generate_slug()
blogpost.save()

View File

@ -24,6 +24,8 @@ import os
import logging
import argparse
import six
from mediagoblin import mg_globals as mgg
from mediagoblin.processing import (
BadMediaFail, FilenameBuilder,
@ -67,7 +69,7 @@ def resize_image(entry, resized, keyname, target_name, new_size,
resize_filter = PIL_FILTERS[filter.upper()]
except KeyError:
raise Exception('Filter "{0}" not found, choose one of {1}'.format(
unicode(filter),
six.text_type(filter),
u', '.join(PIL_FILTERS.keys())))
resized.thumbnail(new_size, resize_filter)
@ -116,7 +118,7 @@ def resize_tool(entry,
or im.size[1] > new_size[1]\
or exif_image_needs_rotation(exif_tags):
resize_image(
entry, im, unicode(keyname), target_name,
entry, im, six.text_type(keyname), target_name,
tuple(new_size),
exif_tags, conversions_subdir,
quality, filter)

View File

@ -17,6 +17,8 @@
import json
import logging
import six
from werkzeug.exceptions import BadRequest
from werkzeug.wrappers import Response
@ -55,15 +57,15 @@ def post_entry(request):
callback_url = request.form.get('callback_url')
if callback_url:
callback_url = unicode(callback_url)
callback_url = six.text_type(callback_url)
try:
entry = submit_media(
mg_app=request.app, user=request.user,
submitted_file=request.files['file'],
filename=request.files['file'].filename,
title=unicode(request.form.get('title')),
description=unicode(request.form.get('description')),
license=unicode(request.form.get('license', '')),
title=six.text_type(request.form.get('title')),
description=six.text_type(request.form.get('description')),
license=six.text_type(request.form.get('license', '')),
upload_limit=upload_limit, max_file_size=max_file_size,
callback_url=callback_url)
@ -88,7 +90,7 @@ def post_entry(request):
'''
if isinstance(e, InvalidFileType) or \
isinstance(e, FileTypeNotSupported):
raise BadRequest(unicode(e))
raise BadRequest(six.text_type(e))
else:
raise

View File

@ -16,6 +16,8 @@
import bcrypt
import random
import six
from mediagoblin import mg_globals
from mediagoblin.tools.crypto import get_timed_signer_url
from mediagoblin.tools.mail import send_email
@ -66,7 +68,7 @@ def bcrypt_gen_password_hash(raw_pass, extra_salt=None):
if extra_salt:
raw_pass = u"%s:%s" % (extra_salt, raw_pass)
return unicode(
return six.text_type(
bcrypt.hashpw(raw_pass.encode('utf-8'), bcrypt.gensalt()))

View File

@ -16,6 +16,8 @@
import logging
import six
from werkzeug.exceptions import Unauthorized
from mediagoblin.auth.tools import check_login_simple
@ -40,7 +42,7 @@ class HTTPAuth(Auth):
if not request.authorization:
return False
user = check_login_simple(unicode(request.authorization['username']),
user = check_login_simple(six.text_type(request.authorization['username']),
request.authorization['password'])
if user:

View File

@ -13,6 +13,9 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import six
from mediagoblin import mg_globals, messages
from mediagoblin.auth.tools import register_user
from mediagoblin.db.models import User
@ -40,7 +43,7 @@ def login(request):
if user:
# set up login in session
request.session['user_id'] = unicode(user.id)
request.session['user_id'] = six.text_type(user.id)
request.session.save()
if request.form.get('next'):

View File

@ -23,6 +23,8 @@ from datetime import datetime
from functools import wraps
import six
from mediagoblin.tools.response import json_response
@ -86,7 +88,7 @@ def create_token(client, user):
def generate_identifier():
''' Generates a ``uuid.uuid4()`` '''
return unicode(uuid.uuid4())
return six.text_type(uuid.uuid4())
def generate_token():
@ -110,5 +112,5 @@ def generate_secret():
'''
# XXX: We might not want it to use bcrypt, since bcrypt takes its time to
# generate the result.
return unicode(getrandbits(192))
return six.text_type(getrandbits(192))

View File

@ -19,6 +19,8 @@ import logging
from urllib import urlencode
import six
from werkzeug.exceptions import BadRequest
from mediagoblin.tools.response import render_to_response, redirect, json_response
@ -44,11 +46,11 @@ def register_client(request):
if request.method == 'POST' and form.validate():
client = OAuthClient()
client.name = unicode(form.name.data)
client.description = unicode(form.description.data)
client.type = unicode(form.type.data)
client.name = six.text_type(form.name.data)
client.description = six.text_type(form.description.data)
client.type = six.text_type(form.type.data)
client.owner_id = request.user.id
client.redirect_uri = unicode(form.redirect_uri.data)
client.redirect_uri = six.text_type(form.redirect_uri.data)
client.save()

View File

@ -16,6 +16,8 @@
import base64
import time
import six
from openid.association import Association as OIDAssociation
from openid.store.interface import OpenIDStore
from openid.store import nonce
@ -34,12 +36,12 @@ class SQLAlchemyOpenIDStore(OpenIDStore):
if not assoc:
assoc = Association()
assoc.server_url = unicode(server_url)
assoc.server_url = six.text_type(server_url)
assoc.handle = association.handle
# django uses base64 encoding, python-openid uses a blob field for
# secret
assoc.secret = unicode(base64.encodestring(association.secret))
assoc.secret = six.text_type(base64.encodestring(association.secret))
assoc.issued = association.issued
assoc.lifetime = association.lifetime
assoc.assoc_type = association.assoc_type

View File

@ -13,6 +13,9 @@
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import six
from openid.consumer import consumer
from openid.consumer.discover import DiscoveryFailure
from openid.extensions.sreg import SRegRequest, SRegResponse
@ -186,7 +189,7 @@ def finish_login(request):
if user:
# Set up login in session
request.session['user_id'] = unicode(user.id)
request.session['user_id'] = six.text_type(user.id)
request.session.save()
if request.session.get('next'):

View File

@ -17,6 +17,8 @@ import json
import logging
import requests
import six
from werkzeug.exceptions import BadRequest
from mediagoblin import messages, mg_globals
@ -63,7 +65,7 @@ def login(request):
user = query.user if query else None
if user:
request.session['user_id'] = unicode(user.id)
request.session['user_id'] = six.text_type(user.id)
request.session['persona_login_email'] = email
request.session.save()

View File

@ -17,6 +17,8 @@
import logging
import re
import six
from werkzeug.exceptions import MethodNotAllowed, BadRequest, NotImplemented
from werkzeug.wrappers import BaseResponse
@ -133,8 +135,8 @@ def pwg_images_addSimple(request):
mg_app=request.app, user=request.user,
submitted_file=request.files['image'],
filename=request.files['image'].filename,
title=unicode(form.name.data),
description=unicode(form.comment.data),
title=six.text_type(form.name.data),
description=six.text_type(form.comment.data),
upload_limit=upload_limit, max_file_size=max_file_size)
collection_id = form.category.data

View File

@ -24,6 +24,8 @@ except:
import logging
import os
import six
from mediagoblin import mg_globals as mgg
from mediagoblin.db.util import atomic_update
from mediagoblin.db.models import MediaEntry
@ -46,7 +48,7 @@ class ProgressCallback(object):
def create_pub_filepath(entry, filename):
return mgg.public_store.get_unique_filepath(
['media_entries',
unicode(entry.id),
six.text_type(entry.id),
filename])
@ -319,7 +321,7 @@ def mark_entry_failed(entry_id, exc):
atomic_update(mgg.database.MediaEntry,
{'id': entry_id},
{u'state': u'failed',
u'fail_error': unicode(exc.exception_path),
u'fail_error': six.text_type(exc.exception_path),
u'fail_metadata': exc.metadata})
else:
_log.warn("No idea what happened here, but it failed: %r", exc)

View File

@ -224,7 +224,7 @@ def clean_listy_filepath(listy_filepath):
A cleaned list of unicode objects.
"""
cleaned_filepath = [
unicode(secure_filename(filepath))
six.text_type(secure_filename(filepath))
for filepath in listy_filepath]
if u'' in cleaned_filepath:

View File

@ -18,6 +18,8 @@ import logging
import uuid
from os.path import splitext
import six
from werkzeug.utils import secure_filename
from werkzeug.datastructures import FileStorage
@ -127,7 +129,7 @@ def submit_media(mg_app, user, submitted_file, filename,
# If the filename contains non ascii generate a unique name
if not all(ord(c) < 128 for c in filename):
filename = unicode(uuid.uuid4()) + splitext(filename)[-1]
filename = six.text_type(uuid.uuid4()) + splitext(filename)[-1]
# Sniff the submitted media to determine which
# media plugin should handle processing
@ -136,7 +138,7 @@ def submit_media(mg_app, user, submitted_file, filename,
# create entry and save in database
entry = new_upload_entry(user)
entry.media_type = media_type
entry.title = (title or unicode(splitext(filename)[0]))
entry.title = (title or six.text_type(splitext(filename)[0]))
entry.description = description or u""
@ -210,7 +212,7 @@ def prepare_queue_task(app, entry, filename):
# (If we got it off the task's auto-generation, there'd be
# a risk of a race condition when we'd save after sending
# off the task)
task_id = unicode(uuid.uuid4())
task_id = six.text_type(uuid.uuid4())
entry.queued_task_id = task_id
# Now store generate the queueing related filename

View File

@ -14,6 +14,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import six
from mediagoblin import messages
import mediagoblin.mg_globals as mg_globals
@ -59,9 +61,9 @@ def submit_start(request):
mg_app=request.app, user=request.user,
submitted_file=request.files['file'],
filename=request.files['file'].filename,
title=unicode(submit_form.title.data),
description=unicode(submit_form.description.data),
license=unicode(submit_form.license.data) or None,
title=six.text_type(submit_form.title.data),
description=six.text_type(submit_form.description.data),
license=six.text_type(submit_form.license.data) or None,
tags_string=submit_form.tags.data,
upload_limit=upload_limit, max_file_size=max_file_size,
urlgen=request.urlgen)
@ -117,8 +119,8 @@ def add_collection(request, media=None):
if request.method == 'POST' and submit_form.validate():
collection = request.db.Collection()
collection.title = unicode(submit_form.title.data)
collection.description = unicode(submit_form.description.data)
collection.title = six.text_type(submit_form.title.data)
collection.description = six.text_type(submit_form.description.data)
collection.creator = request.user.id
collection.generate_slug()

View File

@ -18,6 +18,8 @@
import pkg_resources
import pytest
import six
import six.moves.urllib.parse as urlparse
from mediagoblin import mg_globals
@ -109,7 +111,7 @@ def test_register_views(test_app):
## Make sure user is logged in
request = template.TEMPLATE_TEST_CONTEXT[
'mediagoblin/user_pages/user_nonactive.html']['request']
assert request.session['user_id'] == unicode(new_user.id)
assert request.session['user_id'] == six.text_type(new_user.id)
## Make sure we get email confirmation, and try verifying
assert len(mail.EMAIL_TEST_INBOX) == 1
@ -307,7 +309,7 @@ def test_authentication_views(test_app):
# Make sure user is in the session
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
session = context['request'].session
assert session['user_id'] == unicode(test_user.id)
assert session['user_id'] == six.text_type(test_user.id)
# Successful logout
# -----------------

View File

@ -17,6 +17,8 @@
import json
import pytest
import six
from urlparse import urlparse, parse_qs
from mediagoblin import mg_globals
@ -63,7 +65,7 @@ class TestHTTPCallback(object):
code = parse_qs(urlparse(redirect.location).query)['code'][0]
client = self.db.OAuthClient.query.filter(
self.db.OAuthClient.identifier == unicode(client_id)).first()
self.db.OAuthClient.identifier == six.text_type(client_id)).first()
client_secret = client.secret

View File

@ -17,6 +17,7 @@
import pkg_resources
import pytest
import mock
import six
import six.moves.urllib.parse as urlparse
@ -122,6 +123,6 @@ def test_ldap_plugin(ldap_plugin_app):
# Make sure user is in the session
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
session = context['request'].session
assert session['user_id'] == unicode(test_user.id)
assert session['user_id'] == six.text_type(test_user.id)
_test_authentication()

View File

@ -18,6 +18,8 @@ import json
import logging
import pytest
import six
from urlparse import parse_qs, urlparse
from mediagoblin import mg_globals
@ -154,7 +156,7 @@ class TestOAuth(object):
code = self.get_code_from_redirect_uri(code_redirect.location)
client = self.db.OAuthClient.query.filter(
self.db.OAuthClient.identifier == unicode(client_id)).first()
self.db.OAuthClient.identifier == six.text_type(client_id)).first()
token_res = self.test_app.get('/oauth-2/access_token?client_id={0}&\
code={1}&client_secret={2}'.format(client_id, code, client.secret))
@ -182,7 +184,7 @@ code={1}&client_secret={2}'.format(client_id, code, client.secret))
code = self.get_code_from_redirect_uri(code_redirect.location)
client = self.db.OAuthClient.query.filter(
self.db.OAuthClient.identifier == unicode(client_id)).first()
self.db.OAuthClient.identifier == six.text_type(client_id)).first()
token_res = self.test_app.get('/oauth-2/access_token?\
code={0}&client_secret={1}'.format(code, client.secret))

View File

@ -18,6 +18,7 @@ import urlparse
import pkg_resources
import pytest
import mock
import six
openid_consumer = pytest.importorskip(
"openid.consumer.consumer")
@ -206,7 +207,7 @@ class TestOpenIDPlugin(object):
# Make sure user is in the session
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
session = context['request'].session
assert session['user_id'] == unicode(test_user.id)
assert session['user_id'] == six.text_type(test_user.id)
_test_new_user()

View File

@ -17,6 +17,7 @@
import pkg_resources
import pytest
import mock
import six
import six.moves.urllib.parse as urlparse
@ -142,7 +143,7 @@ class TestPersonaPlugin(object):
# Make sure user is in the session
context = template.TEMPLATE_TEST_CONTEXT['mediagoblin/root.html']
session = context['request'].session
assert session['user_id'] == unicode(test_user.id)
assert session['user_id'] == six.text_type(test_user.id)
_test_registration()

View File

@ -15,6 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import pytest
import six
from mediagoblin.tools import template
from mediagoblin.tests.tools import (fixture_add_user, fixture_media_entry,
@ -75,7 +76,7 @@ class TestReportFiling:
response, context = self.do_post(
{'report_reason':u'Testing Media Report',
'reporter_id':unicode(allie_id)},url= media_uri_slug + "report/")
'reporter_id':six.text_type(allie_id)},url= media_uri_slug + "report/")
assert response.status == "302 FOUND"
@ -110,7 +111,7 @@ class TestReportFiling:
response, context = self.do_post({
'report_reason':u'Testing Comment Report',
'reporter_id':unicode(allie_id)},url= comment_uri_slug + "report/")
'reporter_id':six.text_type(allie_id)},url= comment_uri_slug + "report/")
assert response.status == "302 FOUND"

View File

@ -19,6 +19,8 @@ import os
import tempfile
import pytest
import six
from werkzeug.utils import secure_filename
from mediagoblin import storage
@ -78,7 +80,7 @@ def test_storage_system_from_config():
'mediagoblin.tests.test_storage:FakeStorageSystem'})
assert this_storage.foobie == 'eiboof'
assert this_storage.blech == 'hcelb'
assert unicode(this_storage.__class__) == \
assert six.text_type(this_storage.__class__) == \
u'mediagoblin.tests.test_storage.FakeStorageSystem'

View File

@ -20,6 +20,7 @@ sys.setdefaultencoding('utf-8')
import os
import pytest
import six
import six.moves.urllib.parse as urlparse
@ -35,7 +36,7 @@ from .resources import GOOD_JPG, GOOD_PNG, EVIL_FILE, EVIL_JPG, EVIL_PNG, \
BIG_BLUE, GOOD_PDF, GPS_JPG, MED_PNG, BIG_PNG
GOOD_TAG_STRING = u'yin,yang'
BAD_TAG_STRING = unicode('rage,' + 'f' * 26 + 'u' * 26)
BAD_TAG_STRING = six.text_type('rage,' + 'f' * 26 + 'u' * 26)
FORM_CONTEXT = ['mediagoblin/submit/start.html', 'submit_form']
REQUEST_CONTEXT = ['mediagoblin/user_pages/user.html', 'request']

View File

@ -16,6 +16,8 @@
import email
import six
from mediagoblin.tools import common, url, translate, mail, text, testing
testing._activate_testing()
@ -117,13 +119,13 @@ def test_gettext_lazy_proxy():
orig = u"Password"
set_thread_locale("es")
p1 = unicode(proxy)
p1 = six.text_type(proxy)
p1_should = pass_to_ugettext(orig)
assert p1_should != orig, "Test useless, string not translated"
assert p1 == p1_should
set_thread_locale("sv")
p2 = unicode(proxy)
p2 = six.text_type(proxy)
p2_should = pass_to_ugettext(orig)
assert p2_should != orig, "Test broken, string not translated"
assert p2 == p2_should

View File

@ -17,6 +17,8 @@
import re
from unidecode import unidecode
import six
_punct_re = re.compile(r'[\t !"#:$%&\'()*\-/<=>?@\[\\\]^_`{|},.]+')
@ -27,4 +29,4 @@ def slugify(text, delim=u'-'):
result = []
for word in _punct_re.split(text.lower()):
result.extend(unidecode(word).split())
return unicode(delim.join(result))
return six.text_type(delim.join(result))

View File

@ -18,6 +18,8 @@ import logging
import datetime
import json
import six
from mediagoblin import messages, mg_globals
from mediagoblin.db.models import (MediaEntry, MediaTag, Collection,
CollectionItem, User)
@ -178,7 +180,7 @@ def media_post_comment(request, media):
comment = request.db.MediaComment()
comment.media_entry = media.id
comment.author = request.user.id
comment.content = unicode(request.form['comment_content'])
comment.content = six.text_type(request.form['comment_content'])
# Show error message if commenting is disabled.
if not mg_globals.app_config['allow_comments']:
@ -212,7 +214,7 @@ def media_preview_comment(request):
if not request.is_xhr:
return render_404(request)
comment = unicode(request.form['comment_content'])
comment = six.text_type(request.form['comment_content'])
cleancomment = { "content":cleaned_markdown_conversion(comment)}
return Response(json.dumps(cleancomment))