def discojson(self, e, langs=None): if e is None: return dict() title, descr = self.ext_display(e) entity_id = e.get('entityID') d = dict(title=title, descr=descr, auth='saml', entityID=entity_id) eattr = entity_attribute_dict(e) if 'idp' in eattr[ATTRS['role']]: d['type'] = 'idp' d['hidden'] = 'true' if 'http://pyff.io/category/discoverable' in eattr[ATTRS['entity-category']]: d['hidden'] = 'false' elif 'sp' in eattr[ATTRS['role']]: d['type'] = 'sp' icon_info = self.icon(e) if icon_info is not None: d['icon'] = icon_info.get('url', 'data:image/gif;base64,R0lGODlhAQABAIABAP///wAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==') d['icon_height'] = icon_info.get('height', 64) d['icon_width'] = icon_info.get('width', 64) scopes = self.scopes(e) if scopes is not None and len(scopes) > 0: d['scope'] = ",".join(scopes) keywords = filter_lang(e.iter("{%s}Keywords" % NS['mdui']), langs=langs) if keywords is not None: lst = [elt.text for elt in keywords] if len(lst) > 0: d['keywords'] = ",".join(lst) psu = self.psu(e, langs) if psu: d['psu'] = psu geo = self.geoloc(e) if geo: d['geo'] = geo return d
def test_entity_dict_test01(self): d = entity_attribute_dict(root(self.test01)) assert ('example.com' in d[ATTRS['domain']]) assert ('example.net' in d[ATTRS['domain']]) assert ('foo.com' not in d[ATTRS['domain']])