def test_link_apply(): pairs = [ ("""<a href="1">_</a>""", """<a href="A/1">_</a>"""), ] def func(uri, **kw): return "A/" + uri for before, after in pairs: t = Transformer(html=before) t.apply_to_links(func) assert after in t.to_string()
def test_link_apply(): pairs = [ ("""<a href="1">_</a>""", """<a href="A/1">_</a>"""), ] def func(uri, **kw): return "A/"+uri for before, after in pairs: t = Transformer(html=before) t.apply_to_links(func) assert after in t.to_string()
def test_image_apply(): pairs = [("""<div style="background: url(3.png);">x</div>""", """<div style="background: url(A/3.png)">x</div>"""), ("""<img src="4.png"/>""", """<img src="A/4.png"/>"""), ("""<table background="5.png"/>""", """<table background="A/5.png"/>""")] def func(uri, **kw): return "A/" + uri for before, after in pairs: t = Transformer(html=before) t.apply_to_images(func) assert after in t.to_string()
def test_image_apply(): pairs = [ ("""<div style="background: url(3.png);">x</div>""", """<div style="background: url(A/3.png)">x</div>"""), ("""<img src="4.png"/>""", """<img src="A/4.png"/>"""), ("""<table background="5.png"/>""", """<table background="A/5.png"/>""") ] def func(uri, **kw): return "A/"+uri for before, after in pairs: t = Transformer(html=before) t.apply_to_images(func) assert after in t.to_string()
def test_image_inline(): class SimpleLoader(BaseLoader): def __init__(self, data): self.__data = data def list_files(self): return self.__data.keys() def get_file(self, name): return self.__data.get(name, None), name t = Transformer(html="<div><img src='a.gif'></div>", local_loader=SimpleLoader(data={'a.gif': 'xxx'})) t.load_and_transform() t.attachment_store['a.gif'].content_disposition = 'inline' t.synchronize_inline_images() t.save() assert "cid:a.gif" in t.html t.attachment_store['a.gif'].content_disposition = None t.synchronize_inline_images() t.save() assert '<img src="a.gif"' in t.html # test inline image in css t = Transformer(html="<div style='background:url(a.gif);'></div>", local_loader=SimpleLoader(data={'a.gif': 'xxx'})) t.load_and_transform() t.attachment_store['a.gif'].content_disposition = 'inline' t.synchronize_inline_images() t.save() assert "url(cid:a.gif)" in t.html
def test_add_content_type_meta(): t = Transformer(html="<div></div>") t.premailer.transform() assert type(t.html) == type(t.to_string()) t.add_content_type_meta(content_type="text/html", charset="utf-16") assert 'content="text/html; charset=utf-16"' in t.to_string()
def test_absolute_url(): t = Transformer(html="", base_url="https://host1.tld/a/b") assert t.get_absolute_url('c.gif') == 'https://host1.tld/a/b/c.gif' assert t.get_absolute_url('/c.gif') == 'https://host1.tld/c.gif' assert t.get_absolute_url('//host2.tld/x/y.png') == 'https://host2.tld/x/y.png'
def test_entity_13(): assert Transformer(html="<div>x\r\n</div>").to_string( ) == '<html><body><div>x\n</div></body></html>'
def test_absolute_url(): t = Transformer(html="", base_url="https://host1.tld/a/b") assert t.get_absolute_url('c.gif') == 'https://host1.tld/a/b/c.gif' assert t.get_absolute_url('/c.gif') == 'https://host1.tld/c.gif' assert t.get_absolute_url( '//host2.tld/x/y.png') == 'https://host2.tld/x/y.png'
def test_entity_13(): assert "<div>x\n</div>" in Transformer(html="<div>x\r\n</div>").to_string()
def test_html5_transform(): assert Transformer( html="<a><table/></a>", method="html").to_string() == '<html><body><a/><table/></body></html>' assert Transformer(html="<a><table/></a>", method="html5").to_string( ) == '<html><head/><body><a><table/></a></body></html>'