Browse Source

Make sure misago.acl tests run on Python 3/Django 1.9

NeKit 9 years ago
parent
commit
78e125c19c

+ 4 - 1
misago/admin/views/generic/formsbuttons.py

@@ -16,7 +16,10 @@ class TargetedView(AdminView):
             select_for_update = self.get_model().objects
             if self.is_atomic:
                 select_for_update = select_for_update.select_for_update()
-            return select_for_update.get(pk=kwargs[kwargs.keys()[0]])
+            # Does not work on Python 3:
+            # return select_for_update.get(pk=kwargs[kwargs.keys()[0]])
+            (pk,) = kwargs.values()
+            return select_for_update.get(pk=pk)
         else:
             return self.get_model()()
 

+ 2 - 2
misago/conf/migrations/0001_initial.py

@@ -21,10 +21,10 @@ class Migration(migrations.Migration):
                 ('order', models.IntegerField(default=0, db_index=True)),
                 ('dry_value', models.TextField(null=True, blank=True)),
                 ('default_value', models.TextField(null=True, blank=True)),
-                ('python_type', models.CharField(default=b'string', max_length=255)),
+                ('python_type', models.CharField(default='string', max_length=255)),
                 ('is_public', models.BooleanField(default=False)),
                 ('is_lazy', models.BooleanField(default=False)),
-                ('form_field', models.CharField(default=b'text', max_length=255)),
+                ('form_field', models.CharField(default='text', max_length=255)),
                 ('pickled_field_extra', models.TextField(null=True, blank=True)),
             ],
             options={

+ 1 - 1
misago/core/serializer.py

@@ -26,7 +26,7 @@ def loads(dry):
 
 
 def dumps(wet):
-    base = base64.encodestring(pickle.dumps(wet, pickle.HIGHEST_PROTOCOL))
+    base = base64.encodestring(pickle.dumps(wet, pickle.HIGHEST_PROTOCOL)).decode()
     checksum = _checksum(base)
     return '%s%s' % (checksum, base)
 

+ 1 - 1
misago/users/models/user.py

@@ -416,7 +416,7 @@ class User(AbstractBaseUser, PermissionsMixin):
             else:
                 roles_pks.append('%s:%s' % (self.rank.pk, role.pk))
 
-        self.acl_key = md5(','.join(roles_pks)).hexdigest()[:12]
+        self.acl_key = md5(','.join(roles_pks).encode()).hexdigest()[:12]
 
     def email_user(self, subject, message, from_email=None, **kwargs):
         """

+ 2 - 1
misago/users/views/options.py

@@ -2,6 +2,7 @@ from django.contrib.auth import update_session_auth_hash
 from django.core.urlresolvers import reverse
 from django.db import IntegrityError
 from django.shortcuts import render
+from django.utils import six
 from django.utils.translation import ugettext as _
 
 from ..credentialchange import read_new_credential
@@ -14,7 +15,7 @@ def index(request, *args, **kwargs):
     user_options = []
     for section in usercp.get_sections(request):
         user_options.append({
-            'name': unicode(section['name']),
+            'name': six.text_type(section['name']),
             'icon': section['icon'],
             'component': section['component'],
         })