plone.api 2.5.1__tar.gz → 2.5.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. {plone_api-2.5.1 → plone_api-2.5.2}/CHANGES.md +7 -0
  2. {plone_api-2.5.1 → plone_api-2.5.2}/PKG-INFO +8 -1
  3. {plone_api-2.5.1 → plone_api-2.5.2}/setup.py +1 -1
  4. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/env.py +1 -1
  5. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/group.py +3 -3
  6. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_group.py +6 -3
  7. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_user.py +4 -2
  8. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/user.py +1 -1
  9. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/PKG-INFO +8 -1
  10. {plone_api-2.5.1 → plone_api-2.5.2}/CONTRIBUTING.md +0 -0
  11. {plone_api-2.5.1 → plone_api-2.5.2}/LICENSE +0 -0
  12. {plone_api-2.5.1 → plone_api-2.5.2}/MANIFEST.in +0 -0
  13. {plone_api-2.5.1 → plone_api-2.5.2}/README.md +0 -0
  14. {plone_api-2.5.1 → plone_api-2.5.2}/docs/about.md +0 -0
  15. {plone_api-2.5.1 → plone_api-2.5.2}/docs/addon.md +0 -0
  16. {plone_api-2.5.1 → plone_api-2.5.2}/docs/content.md +0 -0
  17. {plone_api-2.5.1 → plone_api-2.5.2}/docs/contribute.md +0 -0
  18. {plone_api-2.5.1 → plone_api-2.5.2}/docs/env.md +0 -0
  19. {plone_api-2.5.1 → plone_api-2.5.2}/docs/group.md +0 -0
  20. {plone_api-2.5.1 → plone_api-2.5.2}/docs/index.md +0 -0
  21. {plone_api-2.5.1 → plone_api-2.5.2}/docs/portal.md +0 -0
  22. {plone_api-2.5.1 → plone_api-2.5.2}/docs/relation.md +0 -0
  23. {plone_api-2.5.1 → plone_api-2.5.2}/docs/user.md +0 -0
  24. {plone_api-2.5.1 → plone_api-2.5.2}/pyproject.toml +0 -0
  25. {plone_api-2.5.1 → plone_api-2.5.2}/setup.cfg +0 -0
  26. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/__init__.py +0 -0
  27. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/__init__.py +0 -0
  28. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/addon.py +0 -0
  29. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/configure.zcml +0 -0
  30. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/content.py +0 -0
  31. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/exc.py +0 -0
  32. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/portal.py +0 -0
  33. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/profiles/testfixture/metadata.xml +0 -0
  34. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/profiles/testfixture/types/Dexterity_Folder.xml +0 -0
  35. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/profiles/testfixture/types/Dexterity_Item.xml +0 -0
  36. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/profiles/testfixture/types.xml +0 -0
  37. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/relation.py +0 -0
  38. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/testing.zcml +0 -0
  39. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/Dexterity_Folder.xml +0 -0
  40. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/Dexterity_Item.xml +0 -0
  41. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/__init__.py +0 -0
  42. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/base.py +0 -0
  43. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/about.md +0 -0
  44. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/addon.md +0 -0
  45. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/content.md +0 -0
  46. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/contribute.md +0 -0
  47. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/env.md +0 -0
  48. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/group.md +0 -0
  49. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/portal.md +0 -0
  50. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/relation.md +0 -0
  51. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/doctests/user.md +0 -0
  52. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_addon.py +0 -0
  53. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_content.py +0 -0
  54. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_doctests.py +0 -0
  55. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_env.py +0 -0
  56. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_portal.py +0 -0
  57. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_relation.py +0 -0
  58. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/tests/test_validation.py +0 -0
  59. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone/api/validation.py +0 -0
  60. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/SOURCES.txt +0 -0
  61. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/dependency_links.txt +0 -0
  62. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/namespace_packages.txt +0 -0
  63. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/not-zip-safe +0 -0
  64. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/requires.txt +0 -0
  65. {plone_api-2.5.1 → plone_api-2.5.2}/src/plone.api.egg-info/top_level.txt +0 -0
  66. {plone_api-2.5.1 → plone_api-2.5.2}/tox.ini +0 -0
@@ -9,6 +9,13 @@
9
9
 
10
10
  <!-- towncrier release notes start -->
11
11
 
12
+ ## 2.5.2 (2025-06-05)
13
+
14
+
15
+ ### Bug fixes:
16
+
17
+ - Make plone.api.exc.UserNotFoundError message more informative by including the not found username [@ale-rt] #585
18
+
12
19
  ## 2.5.1 (2025-05-02)
13
20
 
14
21
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: plone.api
3
- Version: 2.5.1
3
+ Version: 2.5.2
4
4
  Summary: A Plone API.
5
5
  Home-page: https://github.com/plone/plone.api
6
6
  Author: Plone Foundation
@@ -132,6 +132,13 @@ Continuous Integration
132
132
 
133
133
  <!-- towncrier release notes start -->
134
134
 
135
+ ## 2.5.2 (2025-06-05)
136
+
137
+
138
+ ### Bug fixes:
139
+
140
+ - Make plone.api.exc.UserNotFoundError message more informative by including the not found username [@ale-rt] #585
141
+
135
142
  ## 2.5.1 (2025-05-02)
136
143
 
137
144
 
@@ -3,7 +3,7 @@ from setuptools import find_packages
3
3
  from setuptools import setup
4
4
 
5
5
 
6
- version = "2.5.1"
6
+ version = "2.5.2"
7
7
 
8
8
  long_description = "\n".join(
9
9
  [Path("README.md").read_text(), Path("CHANGES.md").read_text()]
@@ -59,7 +59,7 @@ def adopt_user(username=None, user=None):
59
59
  user = unwrapped.__of__(acl_users)
60
60
  break
61
61
  else:
62
- raise UserNotFoundError
62
+ raise UserNotFoundError(username)
63
63
 
64
64
  return _adopt_user(user)
65
65
 
@@ -85,7 +85,7 @@ def get_groups(username=None, user=None):
85
85
  if username:
86
86
  user = user_get(username=username)
87
87
  if not user:
88
- raise UserNotFoundError
88
+ raise UserNotFoundError(username)
89
89
 
90
90
  group_tool = portal.get_tool("portal_groups")
91
91
 
@@ -157,7 +157,7 @@ def add_user(groupname=None, group=None, username=None, user=None):
157
157
  if username:
158
158
  user = user_get(username=username)
159
159
  if not user:
160
- raise UserNotFoundError
160
+ raise UserNotFoundError(username)
161
161
 
162
162
  user_id = user.id
163
163
  group_id = groupname or group.id
@@ -194,7 +194,7 @@ def remove_user(groupname=None, group=None, username=None, user=None):
194
194
  if username:
195
195
  user = user_get(username=username)
196
196
  if not user:
197
- raise UserNotFoundError
197
+ raise UserNotFoundError(username)
198
198
  user_id = user.id
199
199
  group_id = groupname or group.id
200
200
  portal_groups = portal.get_tool("portal_groups")
@@ -152,8 +152,9 @@ class TestPloneApiGroup(unittest.TestCase):
152
152
  """Test retrieving of groups for a user that does not exist."""
153
153
  from plone.api.exc import UserNotFoundError
154
154
 
155
- with self.assertRaises(UserNotFoundError):
155
+ with self.assertRaises(UserNotFoundError) as exc:
156
156
  api.group.get_groups(username="theurbanspaceman")
157
+ self.assertEqual(str(exc.exception), "theurbanspaceman")
157
158
 
158
159
  def test_get_groups_anonymous(self):
159
160
  from AccessControl.users import nobody
@@ -239,8 +240,9 @@ class TestPloneApiGroup(unittest.TestCase):
239
240
  """Test adding a user that does not exist to a group."""
240
241
  from plone.api.exc import UserNotFoundError
241
242
 
242
- with self.assertRaises(UserNotFoundError):
243
+ with self.assertRaises(UserNotFoundError) as exc:
243
244
  api.group.add_user(username="jane", groupname="staff")
245
+ self.assertEqual(str(exc.exception), "jane")
244
246
 
245
247
  def test_add_user_username(self):
246
248
  """Test adding a user to a group by username."""
@@ -327,8 +329,9 @@ class TestPloneApiGroup(unittest.TestCase):
327
329
 
328
330
  api.group.create(groupname="staff")
329
331
  group = api.group.get(groupname="staff")
330
- with self.assertRaises(UserNotFoundError):
332
+ with self.assertRaises(UserNotFoundError) as exc:
331
333
  api.group.remove_user(group=group, username="iamnothere")
334
+ self.assertEqual(str(exc.exception), "iamnothere")
332
335
 
333
336
  def test_grant_roles(self):
334
337
  """Test grant roles."""
@@ -342,8 +342,9 @@ class TestPloneApiUser(unittest.TestCase):
342
342
  """Test get roles for a user that does not exist."""
343
343
  from plone.api.exc import UserNotFoundError
344
344
 
345
- with self.assertRaises(UserNotFoundError):
345
+ with self.assertRaises(UserNotFoundError) as exc:
346
346
  api.user.get_roles(username="theurbanspaceman")
347
+ self.assertEqual(str(exc.exception), "theurbanspaceman")
347
348
 
348
349
  def test_get_roles_anonymous(self):
349
350
  """Test get_roles for an anonymous user."""
@@ -509,8 +510,9 @@ class TestPloneApiUser(unittest.TestCase):
509
510
  """Test get_permissions for a user that does not exist."""
510
511
  from plone.api.exc import UserNotFoundError
511
512
 
512
- with self.assertRaises(UserNotFoundError):
513
+ with self.assertRaises(UserNotFoundError) as exc:
513
514
  api.user.get_permissions(username="ming")
515
+ self.assertEqual(str(exc.exception), "ming")
514
516
 
515
517
  def test_get_permissions_context(self):
516
518
  """Test get permissions on some context."""
@@ -232,7 +232,7 @@ def get_roles(username=None, user=None, obj=None, inherit=True):
232
232
  user = portal_membership.getMemberById(username)
233
233
 
234
234
  if user is None:
235
- raise UserNotFoundError
235
+ raise UserNotFoundError(username)
236
236
 
237
237
  if obj is not None:
238
238
  if inherit:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: plone.api
3
- Version: 2.5.1
3
+ Version: 2.5.2
4
4
  Summary: A Plone API.
5
5
  Home-page: https://github.com/plone/plone.api
6
6
  Author: Plone Foundation
@@ -132,6 +132,13 @@ Continuous Integration
132
132
 
133
133
  <!-- towncrier release notes start -->
134
134
 
135
+ ## 2.5.2 (2025-06-05)
136
+
137
+
138
+ ### Bug fixes:
139
+
140
+ - Make plone.api.exc.UserNotFoundError message more informative by including the not found username [@ale-rt] #585
141
+
135
142
  ## 2.5.1 (2025-05-02)
136
143
 
137
144
 
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes