Skip to content

Commit d296de6

Browse files
committed
Improve ResourceError messages by including the resource/group/member names.
1 parent 76f8ebb commit d296de6

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

CHANGES.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ Changelog
44
1.3 (unreleased)
55
----------------
66

7+
- Improve ResourceError messages by including the resource/group/member names.
8+
[thet]
9+
710
- Do not wrap resource ``__repr__`` output in ``<>`` to render tracebacks
811
properly in browser.
912
[lenadax]

webresource/_api.py

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,10 @@ def include(self, include):
8585
def remove(self):
8686
"""Remove resource or resource group from parent group."""
8787
if not self.parent:
88-
raise ResourceError('Object is no member of a resource group')
88+
raise ResourceError(
89+
'Cannot remove resource or resource group "{}".'
90+
' It is no member of a resource group'.format(self.name)
91+
)
8992
self.parent.members.remove(self)
9093
self.parent = None
9194

@@ -136,7 +139,10 @@ def __init__(
136139
:raise ResourceError: No resource and no url given.
137140
"""
138141
if resource is None and url is None:
139-
raise ResourceError('Either resource or url must be given')
142+
raise ResourceError(
143+
'Either resource or url must be given for resource '
144+
'"{}"'.format(name)
145+
)
140146
super(Resource, self).__init__(
141147
name=name, directory=directory, path=path,
142148
include=include, group=group
@@ -169,7 +175,9 @@ def file_path(self):
169175
"""Absolute resource file path depending on operation mode."""
170176
directory = self.directory
171177
if not directory:
172-
raise ResourceError('No directory set on resource.')
178+
raise ResourceError(
179+
'No directory set on resource "{}".'.format(self.name)
180+
)
173181
return os.path.join(directory, self.file_name)
174182

175183
@property
@@ -323,8 +331,10 @@ def integrity(self):
323331
def integrity(self, integrity):
324332
if integrity is True:
325333
if self.url is not None:
326-
msg = 'Cannot calculate integrity hash from external resource'
327-
raise ResourceError(msg)
334+
raise ResourceError(
335+
'Cannot calculate integrity hash from external resource '
336+
'"{}"'.format(self.name)
337+
)
328338
self._integrity_hash = None
329339
else:
330340
self._integrity_hash = integrity
@@ -564,8 +574,10 @@ def add(self, member):
564574
"""
565575
if not isinstance(member, (ResourceGroup, Resource)):
566576
raise ResourceError(
567-
'Resource group can only contain instances '
568-
'of ``ResourceGroup`` or ``Resource``'
577+
'Resource group "{}" can only contain instances '
578+
'of ``ResourceGroup`` or ``Resource`` (member: "{}")'.format(
579+
self.name, member.name
580+
)
569581
)
570582
member.parent = self
571583
self._members.append(member)

0 commit comments

Comments
 (0)