More user friendly error message.

This commit is contained in:
Roland Hedberg
2014-03-28 09:39:36 +01:00
parent 692aaac27c
commit 2db8008701

View File

@@ -93,10 +93,8 @@ 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
nform = ""
for nform in ["friendly_name", "name"]:
try: try:
_name = attr[nform] _name = attr[nform]
except KeyError: except KeyError:
@@ -107,18 +105,21 @@ def filter_on_attributes(ava, required=None, optional=None, acs=None):
continue continue
_fn = _match(_name, ava) _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: if _fn:
try: try:
values = [av["text"] for av in attr["attribute_value"]] values = [av["text"] for av in attr["attribute_value"]]
except KeyError: except KeyError:
values = [] values = []
res[_fn] = _filter_values(ava[_fn], values, True) res[_fn] = _filter_values(ava[_fn], values, True)
found = True continue
break else:
desc = "Required attribute missing: '%s' (%s)" % (attr["name"],
if not found: _name)
raise MissingValue("Required attribute missing: '%s'" % ( raise MissingValue(desc)
attr[nform],))
if optional is None: if optional is None:
optional = [] optional = []