import unittest
import libxml2
from urlparse import urljoin
class TestText(unittest.TestCase):
base = "http://example.com/blog/index.atom"
def parse(self, feed, base=base):
doc = libxml2.parseDoc(feed)
doc.setBase(base)
ctxt = doc.xpathNewContext()
ctxt.xpathRegisterNs("atom","http://www.w3.org/2005/Atom")
node = ctxt.xpathEval("//atom:link")[0]
result = urljoin(node.getBase(doc), node.prop("href"))
doc.freeDoc()
return result
def test_no_xml_base_abs(self):
assert "http://example.org/archives/2005/08/123.html" == self.parse("""
""")
def test_no_xml_base_rel(self):
assert "http://example.com/archives/2005/08/123.html" == self.parse("""
""")
def test_xml_base_on_feed_and_entry(self):
assert "http://example.com/archives/2005/08/123.html" == self.parse("""
""")
def test_xml_base_overridden_on_link(self):
assert "http://example.com/123.html" == self.parse("""
""")
if __name__ == "__main__":
unittest.main()