More user friendly error message.
This commit is contained in:
@@ -93,32 +93,33 @@ def filter_on_attributes(ava, required=None, optional=None, acs=None):
|
|||||||
if required is None:
|
if required is None:
|
||||||
required = []
|
required = []
|
||||||
|
|
||||||
|
nform = "friendly_name"
|
||||||
for attr in required:
|
for attr in required:
|
||||||
found = False
|
try:
|
||||||
nform = ""
|
_name = attr[nform]
|
||||||
for nform in ["friendly_name", "name"]:
|
except KeyError:
|
||||||
|
if nform == "friendly_name":
|
||||||
|
_name = get_local_name(acs, attr["name"],
|
||||||
|
attr["name_format"])
|
||||||
|
else:
|
||||||
|
continue
|
||||||
|
|
||||||
|
_fn = _match(_name, ava)
|
||||||
|
if not _fn: # In the unlikely case that someone has provided us
|
||||||
|
# with URIs as attribute names
|
||||||
|
_fn = _match(attr["name"], ava)
|
||||||
|
|
||||||
|
if _fn:
|
||||||
try:
|
try:
|
||||||
_name = attr[nform]
|
values = [av["text"] for av in attr["attribute_value"]]
|
||||||
except KeyError:
|
except KeyError:
|
||||||
if nform == "friendly_name":
|
values = []
|
||||||
_name = get_local_name(acs, attr["name"],
|
res[_fn] = _filter_values(ava[_fn], values, True)
|
||||||
attr["name_format"])
|
continue
|
||||||
else:
|
else:
|
||||||
continue
|
desc = "Required attribute missing: '%s' (%s)" % (attr["name"],
|
||||||
|
_name)
|
||||||
_fn = _match(_name, ava)
|
raise MissingValue(desc)
|
||||||
if _fn:
|
|
||||||
try:
|
|
||||||
values = [av["text"] for av in attr["attribute_value"]]
|
|
||||||
except KeyError:
|
|
||||||
values = []
|
|
||||||
res[_fn] = _filter_values(ava[_fn], values, True)
|
|
||||||
found = True
|
|
||||||
break
|
|
||||||
|
|
||||||
if not found:
|
|
||||||
raise MissingValue("Required attribute missing: '%s'" % (
|
|
||||||
attr[nform],))
|
|
||||||
|
|
||||||
if optional is None:
|
if optional is None:
|
||||||
optional = []
|
optional = []
|
||||||
|
Reference in New Issue
Block a user