예제 #1
0
    def _replace_with_file_link(
        cls,
        figure_el: dhtmlparser.HTMLElement,
        href: str,
        figcaption: List[dhtmlparser.HTMLElement],
    ):
        if figcaption:
            href = cls._parse_figcaption(figcaption[0])

        link_html = f'<p><a href="{href}">📎 {cls._get_name(href)}</a></p>'
        link_el = dhtmlparser.parseString(link_html).find("p")[0]

        figure_el.replaceWith(link_el)
def test_costructor_with_chids_no_param():
    e = HTMLElement(
        "name",
        [
            HTMLElement("hello"),
            HTMLElement("<hi />")
        ]
    )

    assert e.isTag()
    assert not e.isEndTag()
    assert e.isOpeningTag()
    assert e.isPairTag()
    assert not e.isComment()
    assert not e.isNonPairTag()

    assert e.childs
    assert not e.params
    assert e.endtag
    assert not e.openertag

    assert e.toString()
    assert e.getContent() == "hello<hi />"
    assert e.tagToString()
    assert e.getTagName() == "name"

    assert len(e.childs) == 2

    assert e.childs[0].getContent() == "hello"
    assert e.childs[1].getTagName() == "hi"
def test_costructor_with_childs():
    e = HTMLElement(
        "name",
        {"key": "value"},
        [
            HTMLElement("hello"),
            HTMLElement("<hi />")
        ]
    )

    assert e.isTag()
    assert not e.isEndTag()
    assert e.isOpeningTag()
    assert e.isPairTag()
    assert not e.isComment()
    assert not e.isNonPairTag()

    assert e.childs
    assert e.params
    assert e.endtag
    assert not e.openertag

    assert e.toString()
    assert e.getContent() == "hello<hi />"
    assert e.tagToString()
    assert e.getTagName() == "name"

    assert "key" in e.params
    assert e.params["key"] == "value"

    assert dict(e.params) == {"key": "value"}

    assert len(e.childs) == 2

    assert e.childs[0].getContent() == "hello"
    assert e.childs[1].getTagName() == "hi"
def test_costructor_with_childs_only():
    e = HTMLElement(
        [
            HTMLElement("hello"),
            HTMLElement("<hi>"),
        ]
    )

    assert not e.isTag()
    assert not e.isEndTag()
    assert not e.isOpeningTag()
    assert not e.isPairTag()
    assert not e.isComment()
    assert not e.isNonPairTag()

    assert e.childs
    assert not e.params
    assert not e.endtag
    assert not e.openertag

    assert e.toString() == "hello<hi></hi>"
    assert e.getContent() == "hello<hi></hi>"
    assert not e.tagToString()
    assert not e.getTagName()

    assert len(e.childs) == 3

    assert e.childs[0].getContent() == "hello"
    assert e.childs[1].getTagName() == "hi"
    assert e.childs[2].getTagName() == "hi"  # endtag is automatically created
    assert e.childs[2].isEndTag()
def test_costructuro_parameters():
    e = HTMLElement("name", {"key": "value"})

    assert e.isTag()
    assert not e.isEndTag()
    assert not e.isPairTag()
    assert not e.isComment()
    assert e.isOpeningTag()
    assert not e.isNonPairTag()

    assert not e.childs
    assert e.params
    assert not e.endtag
    assert not e.openertag

    assert e.toString()
    assert not e.getContent()
    assert e.tagToString()
    assert e.getTagName() == "name"

    assert "key" in e.params
    assert e.params["key"] == "value"

    assert dict(e.params) == {"key": "value"}
예제 #6
0
def test_costructor_with_childs_only():
    e = HTMLElement([
        HTMLElement("hello"),
        HTMLElement("<hi>"),
    ])

    assert not e.isTag()
    assert not e.isEndTag()
    assert not e.isOpeningTag()
    assert not e.isPairTag()
    assert not e.isComment()
    assert not e.isNonPairTag()

    assert e.childs
    assert not e.params
    assert not e.endtag
    assert not e.openertag

    assert e.toString() == "hello<hi></hi>"
    assert e.getContent() == "hello<hi></hi>"
    assert not e.tagToString()
    assert not e.getTagName()

    assert len(e.childs) == 3

    assert e.childs[0].getContent() == "hello"
    assert e.childs[1].getTagName() == "hi"
    assert e.childs[2].getTagName() == "hi"  # endtag is automatically created
    assert e.childs[2].isEndTag()
예제 #7
0
def test_costructor_with_chids_no_param():
    e = HTMLElement("name", [HTMLElement("hello"), HTMLElement("<hi />")])

    assert e.isTag()
    assert not e.isEndTag()
    assert e.isOpeningTag()
    assert e.isPairTag()
    assert not e.isComment()
    assert not e.isNonPairTag()

    assert e.childs
    assert not e.params
    assert e.endtag
    assert not e.openertag

    assert e.toString()
    assert e.getContent() == "hello<hi />"
    assert e.tagToString()
    assert e.getTagName() == "name"

    assert len(e.childs) == 2

    assert e.childs[0].getContent() == "hello"
    assert e.childs[1].getTagName() == "hi"
예제 #8
0
def test_costructor_with_childs():
    e = HTMLElement(
        "name", {"key": "value"},
        [HTMLElement("hello"), HTMLElement("<hi />")])

    assert e.isTag()
    assert not e.isEndTag()
    assert e.isOpeningTag()
    assert e.isPairTag()
    assert not e.isComment()
    assert not e.isNonPairTag()

    assert e.childs
    assert e.params
    assert e.endtag
    assert not e.openertag

    assert e.toString()
    assert e.getContent() == "hello<hi />"
    assert e.tagToString()
    assert e.getTagName() == "name"

    assert "key" in e.params
    assert e.params["key"] == "value"

    assert dict(e.params) == {"key": "value"}

    assert len(e.childs) == 2

    assert e.childs[0].getContent() == "hello"
    assert e.childs[1].getTagName() == "hi"
예제 #9
0
def test_costructuro_parameters():
    e = HTMLElement("name", {"key": "value"})

    assert e.isTag()
    assert not e.isEndTag()
    assert not e.isPairTag()
    assert not e.isComment()
    assert e.isOpeningTag()
    assert not e.isNonPairTag()

    assert not e.childs
    assert e.params
    assert not e.endtag
    assert not e.openertag

    assert e.toString()
    assert not e.getContent()
    assert e.tagToString()
    assert e.getTagName() == "name"

    assert "key" in e.params
    assert e.params["key"] == "value"

    assert dict(e.params) == {"key": "value"}
예제 #10
0
def test_constructor_param_tag():
    text = """<hello as='bsd' xe=1 xax="xerexe">"""
    e = HTMLElement(text)

    assert e.isTag()
    assert not e.isEndTag()
    assert not e.isPairTag()
    assert not e.isComment()
    assert e.isOpeningTag()
    assert not e.isNonPairTag()

    assert not e.childs
    assert e.params
    assert not e.endtag
    assert not e.openertag

    assert e.toString() == '<hello as="bsd" xe="1" xax="xerexe">'
    assert e.getContent() == ""
    assert e.getTagName() == "hello"

    assert "as" in e.params
    assert "xe" in e.params
    assert "xax" in e.params

    assert e.params["as"] == "bsd"
    assert e.params["xe"] == "1"
    assert e.params["xax"] == "xerexe"
예제 #11
0
def test_constructor_end_tag():
    text = "</hello>"
    e = HTMLElement(text)

    assert e.isTag()
    assert e.isEndTag()
    assert e.isPairTag()
    assert not e.isComment()
    assert not e.isOpeningTag()
    assert not e.isNonPairTag()

    assert not e.childs
    assert not e.params
    assert not e.endtag
    assert not e.openertag

    assert e.toString() == ""
    assert e.getContent() == ""
    assert e.tagToString() == text
    assert e.getTagName() == "hello"