Ejemplo n.º 1
0
    def test_xmlschema_illegal_validation_error(self):
        schema = self.parse('''
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="a" type="xsd:string"/>
</xsd:schema>
''')
        schema = etree.XMLSchema(schema)

        root = etree.Element('a')
        root.text = 'TEST'
        self.assertTrue(schema(root))

        self.assertRaises(ValueError, schema, etree.Comment('TEST'))
        self.assertRaises(ValueError, schema, etree.PI('a', 'text'))
        self.assertRaises(ValueError, schema, etree.Entity('text'))
Ejemplo n.º 2
0
 def test_buffering(self):
     with etree.xmlfile(self._file, buffered=False) as xf:
         with xf.element('test'):
             self.assertXml("<test>")
             xf.write('toast')
             self.assertXml("<test>toast")
             with xf.element('taste'):
                 self.assertXml("<test>toast<taste>")
                 xf.write('some', etree.Element("more"), "toast")
                 self.assertXml("<test>toast<taste>some<more/>toast")
             self.assertXml("<test>toast<taste>some<more/>toast</taste>")
             xf.write('end')
             self.assertXml("<test>toast<taste>some<more/>toast</taste>end")
         self.assertXml(
             "<test>toast<taste>some<more/>toast</taste>end</test>")
     self.assertXml("<test>toast<taste>some<more/>toast</taste>end</test>")
Ejemplo n.º 3
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()
Ejemplo n.º 4
0
    def test_create_element_default(self):
        bluff_dict = {None: self.bluff_class}
        self.Namespace('ns30').update(bluff_dict)

        maeh_dict = {'maeh': self.maeh_class}
        self.Namespace(None).update(maeh_dict)

        el = etree.Element("{ns30}bluff")
        etree.SubElement(el, "maeh")
        self.assertTrue(hasattr(el, 'bluff'))
        self.assertTrue(hasattr(el[0], 'maeh'))
        self.assertEqual(el.bluff(), 'bluff')
        self.assertEqual(el[0].maeh(), 'maeh')

        self.Namespace(None).clear()
        self.Namespace('ns30').clear()
Ejemplo n.º 5
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()
Ejemplo n.º 6
0
 def test_set_decl_system(self):
     doc = etree.Element('test').getroottree()
     doc.docinfo.system_url = 'baz'
     self.assertEqual(doc.docinfo.doctype, '<!DOCTYPE test SYSTEM "baz">')
     self.assertEqual(etree.tostring(doc),
                      _bytes('<!DOCTYPE test SYSTEM "baz">\n<test/>'))
Ejemplo n.º 7
0
 def execute(self, context, self_node, input_node, output_parent):
     child = etree.Element(self_node.text)
     child.text = 'X'
     output_parent.append(child)
Ejemplo n.º 8
0
 def test_unicode_attr(self):
     el = etree.Element('foo', {'bar': uni})
     self.assertEquals(uni, el.attrib['bar'])
Ejemplo n.º 9
0
 def test_unicode_nstag(self):
     tag = _str("{http://abc/}%s") % uni
     el = etree.Element(tag)
     self.assertEquals(tag, el.tag)
Ejemplo n.º 10
0
 def test_unicode_tag(self):
     el = etree.Element(uni)
     self.assertEquals(uni, el.tag)
Ejemplo n.º 11
0
 def test_unicode_repr1(self):
     x = etree.Element(_str('å'))
     # must not raise UnicodeEncodeError
     repr(x)
Ejemplo n.º 12
0
 def test_write_Element(self):
     with etree.xmlfile(self._file) as xf:
         xf.write(etree.Element('test'))
     self.assertXml('<test/>')
Ejemplo n.º 13
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>')
Ejemplo n.º 14
0
 def test_unicode_nstag(self):
     tag = _str("{%s}%s") % (uni, uni)
     el = etree.Element(tag)
     self.assertEquals(tag, el.tag)