示例#1
0
 def test_namespace_collector_with_overlaping_shortcuts(self):
     ns = namespace('ns', 'ns')
     ns1 = namespace('ns1', 'ns')
     tag = (ns.tag, ('tag1',),
                      (ns1.tag2, (ns.tag3,)))
     with self.assertRaises(ValueError) as err:
         NamespaceCollector().visit(tag).namespaces
示例#2
0
 def test_namespace_collector_with_tags(self):
     ns = namespace('ns', 'ns')
     ns1 = namespace('ns1', 'ns1')
     tag = (ns.tag, ('tag1',),
                      (ns1.tag2, (ns.tag3,)))
     self.assertEqual(NamespaceCollector().visit(tag).namespaces,
             {'xmlns:ns':'ns', 'xmlns:ns1':'ns1'})
示例#3
0
 def test_namespace_collector_with_tags_and_attrs(self):
     ns = namespace('ns', 'ns')
     ns1 = namespace('ns1', 'ns1')
     ns3 = namespace('ns3', 'ns3')
     tag = (ns.tag,
             ('tag1',),
             'text',
             (ns1.tag2, {ns3.attr: 'value'},
                 (ns.tag3,)))
     self.assertEqual(NamespaceCollector().visit(tag).namespaces,
                      {'xmlns:ns':'ns',
                       'xmlns:ns1':'ns1',
                       'xmlns:ns3':'ns3'})
示例#4
0
 def test_encode_xml_with_namespaces(self):
     ns = namespace('ns', 'ns')
     ns1 = namespace('ns1', 'ns1')
     ns3 = namespace('ns3', 'ns3')
     tag = (ns.tag,
             ('tag1',),
             'text',
             (ns1.tag2, {ns3.attr: 'value'},
                 (ns.tag3,)))
     self.assertEqual(encode(tag, indent=2),
                      '<?xml version="1.0"?>\n'
                      '<ns:tag xmlns:ns="ns" xmlns:ns1="ns1" xmlns:ns3="ns3">\n'
                      '  <tag1/>text\n'
                      '  <ns1:tag2 ns3:attr="value">\n'
                      '    <ns:tag3/>\n'
                      '  </ns1:tag2>\n'
                      '</ns:tag>')
示例#5
0
 def test_namespace(self):
     xsd = namespace('http://www.w3.org/2001/XMLSchema', 'xsd')
     self.assertTrue(isinstance(xsd('element'), qname))
     self.assertTrue(isinstance(xsd('element'), unicode))
     self.assertEqual(xsd('element'), u'xsd:element')
     self.assertEqual(xsd.element, u'xsd:element')
     self.assertEqual(xsd('element').uri, 'http://www.w3.org/2001/XMLSchema')
     self.assertEqual(xsd('element').prefix, 'xsd')
     self.assertEqual(xsd(u'имя-тега'), u'xsd:имя-тега')
     self.assertEqual(repr(xsd('element')),
                      "<qname u'xsd:element' "
                      "uri='http://www.w3.org/2001/XMLSchema'>")
示例#6
0
 def test_qname_using_lxml(self):
     ns = namespace('urn:n', 'ns0')
     self.assertEqual(etree.tostring(to_etree(('a', ns.tag), impl=etree)),
                                     '<a xmlns:ns0="urn:n">ns0:tag</a>')
示例#7
0
 def test_qname_using_ElementTree(self):
     ns = namespace('urn:n', 'ns0')
     with self.assertRaisesRegexp(ValueError, 'does not support'):
             ElementTree.tostring(to_etree(('a', ns.tag)))
示例#8
0
 def test_to_etree_tag_with_ns(self):
     ns = namespace('ns', 'ns')
     self.assertEqualEtree(to_etree((ns.a,)),
                           ElementTree.fromstring('<ns:a xmlns:ns="ns"/>'))