Пример #1
0
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()
Пример #3
0
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'
Пример #8
0
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
Пример #9
0
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()
Пример #10
0
def test_entity_13():
    assert Transformer(html="<div>x\r\n</div>").to_string(
    ) == '<html><body><div>x\n</div></body></html>'
Пример #11
0
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'
Пример #12
0
def test_entity_13():
    assert "<div>x\n</div>" in Transformer(html="<div>x\r\n</div>").to_string()
Пример #13
0
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>'