summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarry Warsaw2014-12-11 21:41:29 -0500
committerBarry Warsaw2014-12-11 21:41:29 -0500
commitc86eb81a8e7793c86115e318ad10dda2284f332a (patch)
tree87b87b2fbc69d52145d95fd3cabcf75e785c1d0b
parentfe7d286db796630b3bef326bd5106591940c0b5f (diff)
downloadmailman-c86eb81a8e7793c86115e318ad10dda2284f332a.tar.gz
mailman-c86eb81a8e7793c86115e318ad10dda2284f332a.tar.zst
mailman-c86eb81a8e7793c86115e318ad10dda2284f332a.zip
-rw-r--r--src/mailman/rest/configuration.py13
-rw-r--r--src/mailman/rest/moderation.py2
-rw-r--r--src/mailman/rest/tests/test_moderation.py6
3 files changed, 13 insertions, 8 deletions
diff --git a/src/mailman/rest/configuration.py b/src/mailman/rest/configuration.py
index 6ea78f90e..6d3c85fd8 100644
--- a/src/mailman/rest/configuration.py
+++ b/src/mailman/rest/configuration.py
@@ -63,7 +63,7 @@ class AcceptableAliases(GetterSetter):
alias_set = IAcceptableAliasSet(mlist)
alias_set.clear()
for alias in value:
- alias_set.add(alias.decode('utf-8'))
+ alias_set.add(alias)
@@ -73,13 +73,16 @@ class AcceptableAliases(GetterSetter):
def pipeline_validator(pipeline_name):
"""Convert the pipeline name to a string, but only if it's known."""
if pipeline_name in config.pipelines:
- return pipeline_name.decode('utf-8')
+ return pipeline_name
raise ValueError('Unknown pipeline: {}'.format(pipeline_name))
-def list_of_unicode(values):
+def list_of_str(values):
"""Turn a list of things into a list of unicodes."""
- return [value.decode('utf-8') for value in values]
+ for value in values:
+ if not isinstance(value, str):
+ raise ValueError('Expected str, got {!r}'.format(value))
+ return values
@@ -98,7 +101,7 @@ def list_of_unicode(values):
# (e.g. datetimes, timedeltas, enums).
ATTRIBUTES = dict(
- acceptable_aliases=AcceptableAliases(list_of_unicode),
+ acceptable_aliases=AcceptableAliases(list_of_str),
admin_immed_notify=GetterSetter(as_boolean),
admin_notify_mchanges=GetterSetter(as_boolean),
administrivia=GetterSetter(as_boolean),
diff --git a/src/mailman/rest/moderation.py b/src/mailman/rest/moderation.py
index 0bdc50688..4373067ec 100644
--- a/src/mailman/rest/moderation.py
+++ b/src/mailman/rest/moderation.py
@@ -88,7 +88,7 @@ class _HeldMessageBase(_ModerationBase):
# resource. Others we can drop. Since we're mutating the dictionary,
# we need to make a copy of the keys. When you port this to Python 3,
# you'll need to list()-ify the .keys() dictionary view.
- for key in resource.keys():
+ for key in list(resource):
if key in ('_mod_subject', '_mod_hold_date', '_mod_reason',
'_mod_sender', '_mod_message_id'):
resource[key[5:]] = resource.pop(key)
diff --git a/src/mailman/rest/tests/test_moderation.py b/src/mailman/rest/tests/test_moderation.py
index 0e2528b0f..c3daf46de 100644
--- a/src/mailman/rest/tests/test_moderation.py
+++ b/src/mailman/rest/tests/test_moderation.py
@@ -96,7 +96,8 @@ Something else.
with self.assertRaises(HTTPError) as cm:
call_api(url.format(held_id), {'action': 'bogus'})
self.assertEqual(cm.exception.code, 400)
- self.assertEqual(cm.exception.msg, 'Cannot convert parameters: action')
+ self.assertEqual(cm.exception.msg,
+ b'Cannot convert parameters: action')
def test_bad_subscription_request_id(self):
# Bad request when request_id is not an integer.
@@ -122,4 +123,5 @@ Something else.
with self.assertRaises(HTTPError) as cm:
call_api(url.format(held_id), {'action': 'bogus'})
self.assertEqual(cm.exception.code, 400)
- self.assertEqual(cm.exception.msg, 'Cannot convert parameters: action')
+ self.assertEqual(cm.exception.msg,
+ b'Cannot convert parameters: action')