summaryrefslogtreecommitdiff
path: root/src/mailman/utilities
diff options
context:
space:
mode:
authorBarry Warsaw2014-11-30 21:51:03 -0500
committerBarry Warsaw2014-11-30 21:51:03 -0500
commit44e43727be13e3554342c2b5b75b7dc42abdb18c (patch)
treea0b97771f5d0856709ac8ab48c1e8f9eeecef352 /src/mailman/utilities
parent065060e56ac2445b6749b60480e9c42573854c5e (diff)
downloadmailman-44e43727be13e3554342c2b5b75b7dc42abdb18c.tar.gz
mailman-44e43727be13e3554342c2b5b75b7dc42abdb18c.tar.zst
mailman-44e43727be13e3554342c2b5b75b7dc42abdb18c.zip
Checkpointing.
By using `six` I think I have most of the imports squared away. There's probably still uses of `unicode` built-ins that need fixing. The idea is to first get the test suite running (which it doesn't yet), and then to fix tests. There's a bug in lazr.config which requires us to patch it for now.
Diffstat (limited to 'src/mailman/utilities')
-rw-r--r--src/mailman/utilities/email.py2
-rw-r--r--src/mailman/utilities/i18n.py4
-rw-r--r--src/mailman/utilities/importer.py2
-rw-r--r--src/mailman/utilities/tests/test_import.py15
4 files changed, 13 insertions, 10 deletions
diff --git a/src/mailman/utilities/email.py b/src/mailman/utilities/email.py
index 7025ddb89..a15c86fb5 100644
--- a/src/mailman/utilities/email.py
+++ b/src/mailman/utilities/email.py
@@ -68,7 +68,7 @@ def add_message_hash(msg):
message_id = message_id[1:-1]
else:
message_id = message_id.strip()
- digest = sha1(message_id).digest()
+ digest = sha1(message_id.encode('utf-8')).digest()
message_id_hash = b32encode(digest)
del msg['x-message-id-hash']
msg['X-Message-ID-Hash'] = message_id_hash
diff --git a/src/mailman/utilities/i18n.py b/src/mailman/utilities/i18n.py
index e22bd6c18..e9136837f 100644
--- a/src/mailman/utilities/i18n.py
+++ b/src/mailman/utilities/i18n.py
@@ -29,6 +29,7 @@ __all__ = [
import os
+import six
import sys
import errno
@@ -203,7 +204,8 @@ def make(template_file, mlist=None, language=None, wrap=True,
template = _(fp.read()[:-1])
finally:
fp.close()
- assert isinstance(template, unicode), 'Translated template is not unicode'
+ assert isinstance(template, six.text_type), (
+ 'Translated template is not unicode')
text = expand(template, kw)
if wrap:
return wrap_text(text)
diff --git a/src/mailman/utilities/importer.py b/src/mailman/utilities/importer.py
index cc8a0cf44..5cc52fef7 100644
--- a/src/mailman/utilities/importer.py
+++ b/src/mailman/utilities/importer.py
@@ -48,7 +48,7 @@ from mailman.interfaces.nntp import NewsgroupModeration
from mailman.interfaces.usermanager import IUserManager
from mailman.utilities.filesystem import makedirs
from mailman.utilities.i18n import search
-from urllib2 import URLError
+from six.moves.urllib_error import URLError
from zope.component import getUtility
diff --git a/src/mailman/utilities/tests/test_import.py b/src/mailman/utilities/tests/test_import.py
index 42608ae45..de40a3ca1 100644
--- a/src/mailman/utilities/tests/test_import.py
+++ b/src/mailman/utilities/tests/test_import.py
@@ -27,14 +27,14 @@ __all__ = [
import os
+import six
import mock
-import cPickle
import unittest
from datetime import timedelta, datetime
from enum import Enum
from pkg_resources import resource_filename
-from sqlalchemy.exc import IntegrityError
+from six.moves.cPickle import load
from zope.component import getUtility
from mailman.app.lifecycle import create_list
@@ -78,7 +78,7 @@ class TestBasicImport(unittest.TestCase):
self._mlist = create_list('blank@example.com')
pickle_file = resource_filename('mailman.testing', 'config.pck')
with open(pickle_file) as fp:
- self._pckdict = cPickle.load(fp)
+ self._pckdict = load(fp)
def _import(self):
import_config_pck(self._mlist, self._pckdict)
@@ -188,7 +188,7 @@ class TestBasicImport(unittest.TestCase):
# moderator_password must not be unicode
self._pckdict[b'mod_password'] = b'TESTVALUE'
self._import()
- self.assertFalse(isinstance(self._mlist.moderator_password, unicode))
+ self.assertNotIsInstance(self._mlist.moderator_password, six.text_type)
self.assertEqual(self._mlist.moderator_password, b'TESTVALUE')
def test_newsgroup_moderation(self):
@@ -263,9 +263,10 @@ class TestBasicImport(unittest.TestCase):
# Suppress warning messages in test output.
with mock.patch('sys.stderr'):
self._import()
- self.assertEqual(self._mlist.info,
- unicode(self._pckdict[b'info'], 'ascii', 'replace'),
- "We don't fall back to replacing non-ascii chars")
+ self.assertEqual(
+ self._mlist.info,
+ self._pckdict[b'info'].decode('ascii', 'replace'),
+ "We don't fall back to replacing non-ascii chars")
def test_preferred_language(self):
self._pckdict[b'preferred_language'] = b'ja'