summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw2014-09-22 17:38:00 -0400
committerBarry Warsaw2014-09-22 17:38:00 -0400
commit710277a7ec626980ed0107921346876e1a7b46be (patch)
tree67ad852c1220fcf5909756fc2ab7972831b831da
parent6b3114c4f0d458db25aa68dc44deeaca5b642ac4 (diff)
downloadmailman-710277a7ec626980ed0107921346876e1a7b46be.tar.gz
mailman-710277a7ec626980ed0107921346876e1a7b46be.tar.zst
mailman-710277a7ec626980ed0107921346876e1a7b46be.zip
-rw-r--r--src/mailman/bin/tests/test_master.py2
-rw-r--r--src/mailman/interfaces/messages.py2
-rw-r--r--src/mailman/model/docs/messagestore.rst5
-rw-r--r--src/mailman/model/messagestore.py10
-rw-r--r--src/mailman/model/pending.py26
-rw-r--r--src/mailman/model/tests/test_requests.py4
-rw-r--r--src/mailman/rest/validator.py2
7 files changed, 24 insertions, 27 deletions
diff --git a/src/mailman/bin/tests/test_master.py b/src/mailman/bin/tests/test_master.py
index 924fbeafd..269edaa23 100644
--- a/src/mailman/bin/tests/test_master.py
+++ b/src/mailman/bin/tests/test_master.py
@@ -55,7 +55,7 @@ class TestMasterLock(unittest.TestCase):
lock = master.acquire_lock_1(False, self.lock_file)
is_locked = lock.is_locked
lock.unlock()
- self.failUnless(is_locked)
+ self.assertTrue(is_locked)
def test_master_state(self):
my_lock = Lock(self.lock_file)
diff --git a/src/mailman/interfaces/messages.py b/src/mailman/interfaces/messages.py
index 4980a4f9d..7b99578c4 100644
--- a/src/mailman/interfaces/messages.py
+++ b/src/mailman/interfaces/messages.py
@@ -83,7 +83,7 @@ class IMessageStore(Interface):
def get_message_by_hash(message_id_hash):
"""Return the message with the matching X-Message-ID-Hash.
-
+
:param message_id_hash: The X-Message-ID-Hash header contents to
search for.
:returns: The message, or None if no matching message was found.
diff --git a/src/mailman/model/docs/messagestore.rst b/src/mailman/model/docs/messagestore.rst
index 4ddce7606..f2f2ca9d2 100644
--- a/src/mailman/model/docs/messagestore.rst
+++ b/src/mailman/model/docs/messagestore.rst
@@ -28,8 +28,9 @@ header, you will get an exception.
However, if the message has a ``Message-ID`` header, it can be stored.
>>> msg['Message-ID'] = '<87myycy5eh.fsf@uwakimon.sk.tsukuba.ac.jp>'
- >>> message_store.add(msg)
- 'AGDWSNXXKCWEILKKNYTBOHRDQGOX3Y35'
+ >>> x_message_id_hash = message_store.add(msg)
+ >>> print(x_message_id_hash)
+ AGDWSNXXKCWEILKKNYTBOHRDQGOX3Y35
>>> print(msg.as_string())
Subject: An important message
Message-ID: <87myycy5eh.fsf@uwakimon.sk.tsukuba.ac.jp>
diff --git a/src/mailman/model/messagestore.py b/src/mailman/model/messagestore.py
index 0b8a0ac78..225d3d1ce 100644
--- a/src/mailman/model/messagestore.py
+++ b/src/mailman/model/messagestore.py
@@ -66,7 +66,7 @@ class MessageStore:
'Message ID already exists in message store: {0}'.format(
message_id))
shaobj = hashlib.sha1(message_id)
- hash32 = base64.b32encode(shaobj.digest())
+ hash32 = base64.b32encode(shaobj.digest()).decode('ascii')
del message['X-Message-ID-Hash']
message['X-Message-ID-Hash'] = hash32
# Calculate the path on disk where we're going to store this message
@@ -115,12 +115,8 @@ class MessageStore:
@dbconnection
def get_message_by_hash(self, store, message_id_hash):
- # It's possible the hash came from a message header, in which case it
- # will be a Unicode. However when coming from source code, it may be
- # an 8-string. Coerce to the latter if necessary; it must be
- # US-ASCII.
- if isinstance(message_id_hash, unicode):
- message_id_hash = message_id_hash.encode('ascii')
+ if isinstance(message_id_hash, bytes):
+ message_id_hash = message_id_hash.decode('utf-8')
row = store.query(Message).filter_by(
message_id_hash=message_id_hash).first()
if row is None:
diff --git a/src/mailman/model/pending.py b/src/mailman/model/pending.py
index a06a660b2..68a8cd63e 100644
--- a/src/mailman/model/pending.py
+++ b/src/mailman/model/pending.py
@@ -53,15 +53,15 @@ class PendedKeyValue(Model):
__tablename__ = 'pendedkeyvalue'
- def __init__(self, key, value):
- self.key = key
- self.value = value
-
id = Column(Integer, primary_key=True)
key = Column(Unicode)
value = Column(Unicode)
pended_id = Column(Integer, ForeignKey('pended.id'))
+ def __init__(self, key, value):
+ self.key = key
+ self.value = value
+
@implementer(IPended)
@@ -70,16 +70,16 @@ class Pended(Model):
__tablename__ = 'pended'
- def __init__(self, token, expiration_date):
- super(Pended, self).__init__()
- self.token = token
- self.expiration_date = expiration_date
-
id = Column(Integer, primary_key=True)
token = Column(LargeBinary) # TODO : was RawStr()
expiration_date = Column(DateTime)
key_values = relationship('PendedKeyValue')
+ def __init__(self, token, expiration_date):
+ super(Pended, self).__init__()
+ self.token = token
+ self.expiration_date = expiration_date
+
@implementer(IPendable)
@@ -120,10 +120,10 @@ class Pendings:
token=token,
expiration_date=now() + lifetime)
for key, value in pendable.items():
- if isinstance(key, str):
- key = key.encode('utf-8')
- if isinstance(value, str):
- value = value.encode('utf-8')
+ if isinstance(key, bytes):
+ key = key.decode('utf-8')
+ if isinstance(value, bytes):
+ value = value.decode('utf-8')
elif type(value) is int:
value = '__builtin__.int\1%s' % value
elif type(value) is float:
diff --git a/src/mailman/model/tests/test_requests.py b/src/mailman/model/tests/test_requests.py
index dc1b9b849..419c6077f 100644
--- a/src/mailman/model/tests/test_requests.py
+++ b/src/mailman/model/tests/test_requests.py
@@ -70,10 +70,10 @@ Something else.
# Calling hold_request() with a bogus request type is an error.
with self.assertRaises(TypeError) as cm:
self._requests_db.hold_request(5, 'foo')
- self.assertEqual(cm.exception.message, 5)
+ self.assertEqual(cm.exception.args[0], 5)
def test_delete_missing_request(self):
# Trying to delete a missing request is an error.
with self.assertRaises(KeyError) as cm:
self._requests_db.delete_request(801)
- self.assertEqual(cm.exception.message, 801)
+ self.assertEqual(cm.exception.args[0], 801)
diff --git a/src/mailman/rest/validator.py b/src/mailman/rest/validator.py
index 90d0334e9..8fe1a6078 100644
--- a/src/mailman/rest/validator.py
+++ b/src/mailman/rest/validator.py
@@ -54,7 +54,7 @@ class enum_validator:
return self._enum_class[enum_value]
except KeyError as exception:
# Retain the error message.
- raise ValueError(exception.message)
+ raise ValueError(exception.args[0])
def subscriber_validator(subscriber):