Skip to content

Commit

Permalink
put alternate in rels and rel-urls
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinmarks committed Jun 2, 2015
1 parent fffb2fa commit 4dba452
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 17 deletions.
31 changes: 15 additions & 16 deletions mf2py/parser.py
Expand Up @@ -275,22 +275,21 @@ def parse_rels(el):
url = urljoin(self.__url__, el.get('href', '')) url = urljoin(self.__url__, el.get('href', ''))
# there does not exist alternate in rel attributes # there does not exist alternate in rel attributes
# then parse rels as local # then parse rels as local
if "alternate" not in rel_attrs: value_dict = self.__parsed__["rel-urls"].get(url, {})
value_dict = self.__parsed__["rel-urls"].get(url, {}) value_dict["text"] = el.get_text().strip()
value_dict["text"] = el.get_text().strip() url_rels = value_dict.get("rels",[])
url_rels = value_dict.get("rels",[]) value_dict["rels"] = url_rels
value_dict["rels"] = url_rels for knownattr in ("media","hreflang","type","title"):
for knownattr in ("media","hreflang","type","title"): x = get_attr(el, knownattr)
x = get_attr(el, knownattr) if x is not None:
if x is not None: value_dict[knownattr] = x
value_dict[knownattr] = x self.__parsed__["rel-urls"][url] = value_dict
self.__parsed__["rel-urls"][url] = value_dict for rel_value in rel_attrs:
for rel_value in rel_attrs: value_list = self.__parsed__["rels"].get(rel_value, [])
value_list = self.__parsed__["rels"].get(rel_value, []) value_list.append(url)
value_list.append(url) url_rels.append(rel_value)
url_rels.append(rel_value) self.__parsed__["rels"][rel_value] = value_list
self.__parsed__["rels"][rel_value] = value_list if "alternate" in rel_attrs:
else:
alternate_list = self.__parsed__.get("alternates", []) alternate_list = self.__parsed__.get("alternates", [])
alternate_dict = {} alternate_dict = {}
alternate_dict["url"] = url alternate_dict["url"] = url
Expand Down
7 changes: 6 additions & 1 deletion test/test_parser.py
Expand Up @@ -7,6 +7,8 @@
import sys import sys
import glob import glob
import json import json
from unittest import TestCase
TestCase.maxDiff = None


if sys.version < '3': if sys.version < '3':
text_type = unicode text_type = unicode
Expand Down Expand Up @@ -317,12 +319,16 @@ def test_rels():
assert result['rels'] == { assert result['rels'] == {
u'in-reply-to': [u'http://example.com/1', u'http://example.com/2'], u'in-reply-to': [u'http://example.com/1', u'http://example.com/2'],
u'author': [u'http://example.com/a', u'http://example.com/b'], u'author': [u'http://example.com/a', u'http://example.com/b'],
u'alternate': [u'http://example.com/fr'],
u'home': [u'http://example.com/fr'],
} }
assert result['rel-urls'] == { assert result['rel-urls'] == {
u'http://example.com/1': {'text': u"post 1", "rels": [u'in-reply-to']}, u'http://example.com/1': {'text': u"post 1", "rels": [u'in-reply-to']},
u'http://example.com/2': {'text': u"post 2", "rels": [u'in-reply-to']}, u'http://example.com/2': {'text': u"post 2", "rels": [u'in-reply-to']},
u'http://example.com/a': {'text': u"author a", "rels": [u'author']}, u'http://example.com/a': {'text': u"author a", "rels": [u'author']},
u'http://example.com/b': {'text': u"author b", "rels": [u'author']}, u'http://example.com/b': {'text': u"author b", "rels": [u'author']},
u'http://example.com/fr': {'text': u'French mobile homepage',
'media': u'handheld', "rels":[u'alternate',u'home'], u'hreflang': u'fr'}
} }




Expand Down Expand Up @@ -418,7 +424,6 @@ def test_mf2tests():
p = json.loads(Parser(doc=f).to_json()) p = json.loads(Parser(doc=f).to_json())
with open(jsonfile) as g: with open(jsonfile) as g:
s = json.load(g) s = json.load(g)
p.pop('rel-urls',None)
yield check_mf2, htmlfile, p,s yield check_mf2, htmlfile, p,s


def check_mf2(htmlfile, p,s): def check_mf2(htmlfile, p,s):
Expand Down

0 comments on commit 4dba452

Please sign in to comment.