def testProvidedEncoding(self):
    loggedEvents=[]
    self._assertEqualUnicode(xmlEncoding.decode(ctAX, 'UTF-8', '<x/>', loggedEvents), u'<x/>')
    self.assertEqual(loggedEvents, [])

    loggedEvents=[]
    self._assertEqualUnicode(xmlEncoding.decode(ctAX, 'UTF-8', '<?xml version="1.0" encoding="utf-8"?><x/>', loggedEvents), u'<?xml version="1.0" encoding="utf-8"?><x/>')
    self.assertEquals(loggedEvents, [])
  def testProvidedEncoding(self):
    loggedEvents=[]
    (encoding, decoded) = xmlEncoding.decode(ctAX, 'UTF-8', '<x/>', loggedEvents)
    self.assertEquals('UTF-8', encoding)
    self._assertEqualUnicode(decoded, u'<x/>')
    self.assertEqual(loggedEvents, [])

    loggedEvents=[]
    (encoding, decoded) = xmlEncoding.decode(ctAX, 'UTF-8', '<?xml version="1.0" encoding="utf-8"?><x/>', loggedEvents)
    self.assertEquals('UTF-8', encoding)
    self._assertEqualUnicode(decoded, u'<?xml version="1.0" encoding="utf-8"?><x/>')
    self.assertEquals(loggedEvents, [])
 def testSupplyUnknownEncoding(self):
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, 'X-FAKE', '<x/>', loggedEvents)[-1], None)
     self.assertEquals(len(loggedEvents), 1)
     self.assertEquals(loggedEvents[0].__class__, UnknownEncoding,
                       'Must fail if an unknown encoding is used')
 def testNoDeclarationOrBOM(self):
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, None, '<x/>', loggedEvents)[-1], None)
     self.assertEquals(len(loggedEvents), 1)
     self.assertEquals(loggedEvents[0].__class__, MissingEncoding,
                       "Must warn if there's no clue as to encoding")
 def testRemovedBOM(self):
     """Make sure the initial BOM signature is not in the decoded string."""
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, 'UTF-16',
                            '\xff\xfe\x3c\x00\x78\x00\x2f\x00\x3e\x00',
                            loggedEvents)[-1], u'<x/>')
     self.assertEquals(loggedEvents, [])
 def testDecodeBadUTF8(self):
     """Ensure bad UTF-8 is flagged as such, but still decoded."""
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, 'utf-8', '<x>\xa3</x>', loggedEvents)[-1],
         u'<x>\ufffd</x>')
     self.assert_(loggedEvents)
     self.assertEquals(loggedEvents[-1].__class__, UnicodeError)
 def testDeclareUnknownEncoding(self):
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, None,
                            '<?xml version="1.0" encoding="X-FAKE"?><x/>',
                            loggedEvents)[-1], None)
     self.assert_(loggedEvents)
     self.assertEquals(loggedEvents[-1].__class__, UnknownEncoding)
 def testJustDeclaration(self):
     loggedEvents = []
     (encoding, decoded) = xmlEncoding.decode(
         ctAX, None, '<?xml version="1.0" encoding="utf-8"?><x/>',
         loggedEvents)
     self.assertEquals(encoding, 'utf-8')
     self._assertEqualUnicode(
         decoded, u'<?xml version="1.0" encoding="utf-8"?><x/>')
     self.assertEquals(loggedEvents, [])
 def testWarnMismatch(self):
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, 'US-ASCII',
                            '<?xml version="1.0" encoding="UTF-8"?><x/>',
                            loggedEvents)[-1],
         u'<?xml version="1.0" encoding="UTF-8"?><x/>')
     self.assert_(loggedEvents)
     self.assertEquals(loggedEvents[-1].__class__, EncodingMismatch)
示例#10
0
 def testDecodeBadUTF8(self):
   """Ensure bad UTF-8 is flagged as such, but still decoded."""
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, 'utf-8', '<x>\xa3</x>', loggedEvents)[-1], u'<x>\ufffd</x>')
   self.assert_(loggedEvents)
   self.assertEquals(loggedEvents[-1].__class__, UnicodeError)
示例#11
0
 def testRemovedBOM(self):
   """Make sure the initial BOM signature is not in the decoded string."""
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, 'UTF-16', '\xff\xfe\x3c\x00\x78\x00\x2f\x00\x3e\x00', loggedEvents)[-1], u'<x/>')
   self.assertEquals(loggedEvents, [])
示例#12
0
 def testWarnMismatch(self):
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, 'US-ASCII', '<?xml version="1.0" encoding="UTF-8"?><x/>', loggedEvents)[-1], u'<?xml version="1.0" encoding="UTF-8"?><x/>')
   self.assert_(loggedEvents)
   self.assertEquals(loggedEvents[-1].__class__, EncodingMismatch)
示例#13
0
 def testDecodeUTF8(self):
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, 'utf-8', '<x>\xc2\xa3</x>', loggedEvents)[-1], u'<x>\u00a3</x>')
   self.assertEquals(loggedEvents, [])
示例#14
0
 def testDeclareUnknownEncoding(self):
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, None, '<?xml version="1.0" encoding="X-FAKE"?><x/>', loggedEvents)[-1], None)
   self.assert_(loggedEvents)
   self.assertEquals(loggedEvents[-1].__class__, UnknownEncoding)
示例#15
0
 def testSupplyUnknownEncoding(self):
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, 'X-FAKE', '<x/>', loggedEvents)[-1], None)
   self.assertEquals(len(loggedEvents), 1)
   self.assertEquals(loggedEvents[0].__class__, UnknownEncoding, 'Must fail if an unknown encoding is used')
示例#16
0
 def testJustDeclaration(self):
   loggedEvents=[]
   (encoding, decoded) = xmlEncoding.decode(ctAX, None, '<?xml version="1.0" encoding="utf-8"?><x/>', loggedEvents)
   self.assertEquals(encoding, 'utf-8')
   self._assertEqualUnicode(decoded, u'<?xml version="1.0" encoding="utf-8"?><x/>')
   self.assertEquals(loggedEvents, [])
示例#17
0
 def testNoDeclarationOrBOM(self):
   loggedEvents=[]
   self.assertEquals(xmlEncoding.decode(ctAX, None, '<x/>', loggedEvents)[-1], None)
   self.assertEquals(len(loggedEvents), 1)
   self.assertEquals(loggedEvents[0].__class__, MissingEncoding, "Must warn if there's no clue as to encoding")
示例#18
0
 def testDecodeUTF8(self):
     loggedEvents = []
     self.assertEquals(
         xmlEncoding.decode(ctAX, 'utf-8', '<x>\xc2\xa3</x>',
                            loggedEvents)[-1], u'<x>\u00a3</x>')
     self.assertEquals(loggedEvents, [])