Skip to content

Commit 62f3fc7

Browse files
committed
Clean up
Backport some clean up from #592
1 parent 0526b7c commit 62f3fc7

6 files changed

Lines changed: 11 additions & 24 deletions

File tree

docs/portal.md

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -205,12 +205,7 @@ api.portal.send_email(
205205
%
206206
% self.assertEqual(len(mailhost.messages), 1)
207207
%
208-
% try:
209-
% # Python 3
210-
% from email import message_from_bytes
211-
% except ImportError:
212-
% # Python 2
213-
% from email import message_from_string as message_from_bytes
208+
% from email import message_from_bytes
214209
% msg = message_from_bytes(mailhost.messages[0])
215210
% self.assertEqual(msg['To'], 'bob@plone.org')
216211
% self.assertEqual(msg['From'], 'noreply@plone.org')

news/592.bugfix.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Clean up. @ale-rt

src/plone/api/content.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import transaction
2626
import uuid
2727

28-
_marker = []
28+
_marker = object()
2929

3030
# Maximum number of attempts to generate a unique random ID
3131
MAX_UNIQUE_ID_ATTEMPTS = 100
@@ -753,7 +753,7 @@ def iter_ancestors(obj=None, function=None, interface=None, stop_at=_marker):
753753
#
754754
# This is useful if we want to have an empty iterator when checking
755755
# for ancestors in the portal.
756-
return iter(())
756+
yield from ()
757757

758758
chain = aq_chain(aq_inner(obj))
759759

src/plone/api/portal.py

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,11 +170,6 @@ def send_email(
170170
# formataddr probably got confused by special characters.
171171
sender = from_address
172172

173-
# If the mail headers are not properly encoded we need to extract
174-
# them and let MailHost manage the encoding.
175-
if isinstance(body, str):
176-
body = body.encode(encoding)
177-
178173
host = get_tool("MailHost")
179174
host.send(
180175
body,

src/plone/api/tests/test_portal.py

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
from datetime import date
44
from datetime import datetime
5+
from email import message_from_bytes
56
from packaging import version
67
from plone.api import content
78
from plone.api import env
@@ -25,14 +26,6 @@
2526
import DateTime
2627
import unittest
2728

28-
try:
29-
# Python 3
30-
from email import message_from_bytes
31-
except ImportError:
32-
# Python 2
33-
from email import message_from_string as message_from_bytes
34-
35-
3629
HAS_PLONE5 = version.parse(env.plone_version()) >= version.parse("5.0b2")
3730

3831

src/plone/api/user.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -438,9 +438,12 @@ def revoke_roles(username=None, user=None, obj=None, roles=None):
438438
if user is None:
439439
raise InvalidParameterError("User could not be found")
440440

441-
roles = set(roles)
441+
if not isinstance(roles, (list, tuple)):
442+
raise InvalidParameterError("Roles must be a list or a tuple of strings")
442443

443-
if "Anonymous" in roles or "Authenticated" in roles:
444+
roles_set = set(roles)
445+
446+
if "Anonymous" in roles_set or "Authenticated" in roles_set:
444447
raise InvalidParameterError
445448

446449
inherit = True
@@ -454,7 +457,7 @@ def revoke_roles(username=None, user=None, obj=None, roles=None):
454457
if role not in ["Anonymous", "Authenticated"]
455458
}
456459

457-
roles = list(actual_roles - roles)
460+
roles = list(actual_roles - roles_set)
458461

459462
if obj is None:
460463
user.setSecurityProfile(roles=roles)

0 commit comments

Comments
 (0)