def test_void_elements(self):
        # http://www.w3.org/TR/html5/syntax.html#elements-0
        void_elements = set(
            [
                "area",
                "base",
                "br",
                "col",
                "embed",
                "hr",
                "img",
                "input",
                "keygen",
                "link",
                "meta",
                "param",
                "source",
                "track",
                "wbr",
            ]
        )

        # FIXME: These don't get serialized as void elements.
        void_elements.difference_update(["area", "embed", "keygen", "source", "track", "wbr"])

        for tag in sorted(void_elements):
            with etree.htmlfile(self._file) as xf:
                xf.write(etree.Element(tag))
            self.assertXml("<%s>" % tag)
            self._file = BytesIO()
 def test_void_elements(self):
     for tag in ("area", "base", "br", "col", "hr", "img", "input", "link",
                 "meta", "param"):
         with etree.htmlfile(self._file) as xf:
             xf.write(etree.Element(tag))
         self.assertXml('<%s>' % tag)
         self._file = BytesIO()
 def test_void_elements(self):
     for tag in ("area", "base", "br", "col", "hr", "img", "input", "link",
                 "meta", "param"):
         with etree.htmlfile(self._file) as xf:
             xf.write(etree.Element(tag))
         self.assertXml('<%s>' % tag)
         self._file = BytesIO()
 def test_write_declaration(self):
     try:
         with etree.htmlfile(self._file) as xf:
             xf.write_declaration()
     except etree.LxmlSyntaxError:
         self.assertTrue(True)
     else:
         self.assertTrue(False)
 def test_write_declaration(self):
     try:
         with etree.htmlfile(self._file) as xf:
             xf.write_declaration()
     except etree.LxmlSyntaxError:
         self.assertTrue(True)
     else:
         self.assertTrue(False)
Exemplo n.º 6
0
    def test_xml_mode_element_inside_html(self):
        # The htmlfile already outputs in xml mode for .element calls. This
        # test actually illustrates a bug

        with etree.htmlfile(self._file) as xf:
            with xf.element("root"):
                with xf.element('foo', attrib={'selected': 'bar'}):
                    pass

        self.assertXml(
            '<root>'
              # '<foo selected></foo>'  # FIXME: this is the correct output
                                        # in html mode
              '<foo selected="bar"></foo>'
            '</root>')
        self._file = BytesIO()
Exemplo n.º 7
0
    def test_xml_mode_element_inside_html(self):
        # The htmlfile already outputs in xml mode for .element calls. This
        # test actually illustrates a bug

        with etree.htmlfile(self._file) as xf:
            with xf.element("root"):
                with xf.element('foo', attrib={'selected': 'bar'}):
                    pass

        self.assertXml(
            '<root>'
            # '<foo selected></foo>'  # FIXME: this is the correct output
            # in html mode
            '<foo selected="bar"></foo>'
            '</root>')
        self._file = BytesIO()
Exemplo n.º 8
0
    def test_void_elements(self):
        # http://www.w3.org/TR/html5/syntax.html#elements-0
        void_elements = set([
            "area", "base", "br", "col", "embed", "hr", "img", "input",
            "keygen", "link", "meta", "param", "source", "track", "wbr"
        ])

        # FIXME: These don't get serialized as void elements.
        void_elements.difference_update(
            ['area', 'embed', 'keygen', 'source', 'track', 'wbr'])

        for tag in sorted(void_elements):
            with etree.htmlfile(self._file) as xf:
                xf.write(etree.Element(tag))
            self.assertXml('<%s>' % tag)
            self._file = BytesIO()
Exemplo n.º 9
0
    def test_xml_mode_write_inside_html(self):
        elt = etree.Element("foo", attrib={'selected': 'bar'})

        with etree.htmlfile(self._file) as xf:
            with xf.element("root"):
                xf.write(elt)  # 1

                assert elt.text is None
                xf.write(elt, method='xml')  # 2

                elt.text = ""
                xf.write(elt, method='xml')  # 3

        self.assertXml('<root>'
                       '<foo selected></foo>'  # 1
                       '<foo selected="bar"/>'  # 2
                       '<foo selected="bar"></foo>'  # 3
                       '</root>')
        self._file = BytesIO()
Exemplo n.º 10
0
    def test_xml_mode_write_inside_html(self):
        elt = etree.Element("foo", attrib={'selected': 'bar'})

        with etree.htmlfile(self._file) as xf:
            with xf.element("root"):
                xf.write(elt)  # 1

                assert elt.text is None
                xf.write(elt, method='xml')  # 2

                elt.text = ""
                xf.write(elt, method='xml')  # 3

        self.assertXml(
            '<root>'
                '<foo selected></foo>'  # 1
                '<foo selected="bar"/>'  # 2
                '<foo selected="bar"></foo>'  # 3
            '</root>')
        self._file = BytesIO()
Exemplo n.º 11
0
 def test_open_namespaced_element(self):
     with etree.htmlfile(self._file) as xf:
         with xf.element("{some_ns}some_tag"):
             pass
     self.assertXml('<ns0:some_tag xmlns:ns0="some_ns"></ns0:some_tag>')
Exemplo n.º 12
0
 def test_write_namespaced_element(self):
     with etree.htmlfile(self._file) as xf:
         xf.write(etree.Element('{some_ns}some_tag'))
     self.assertXml('<ns0:some_tag xmlns:ns0="some_ns"></ns0:some_tag>')
Exemplo n.º 13
0
    def test_unescaped_script_incremental(self):
        with etree.htmlfile(self._file) as xf:
            with xf.element('script'):
                xf.write("if (a < b);")

        self.assertXml('<script>if (a < b);</script>')
Exemplo n.º 14
0
 def test_unescaped_script(self):
     with etree.htmlfile(self._file) as xf:
         elt = etree.Element('script')
         elt.text = "if (a < b);"
         xf.write(elt)
     self.assertXml('<script>if (a < b);</script>')
Exemplo n.º 15
0
 def test_open_namespaced_element(self):
     with etree.htmlfile(self._file) as xf:
         with xf.element("{some_ns}some_tag"):
             pass
     self.assertXml('<ns0:some_tag xmlns:ns0="some_ns"></ns0:some_tag>')
Exemplo n.º 16
0
 def test_write_namespaced_element(self):
     with etree.htmlfile(self._file) as xf:
         xf.write(etree.Element('{some_ns}some_tag'))
     self.assertXml('<ns0:some_tag xmlns:ns0="some_ns"></ns0:some_tag>')