File: test-hexBinary.py

package info (click to toggle)
pyxb 1.2.3%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 63,792 kB
  • ctags: 48,994
  • sloc: python: 235,928; sh: 803; xml: 657; makefile: 57
file content (40 lines) | stat: -rw-r--r-- 1,476 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# -*- coding: utf-8 -*-
import logging
if __name__ == '__main__':
    logging.basicConfig()
_log = logging.getLogger(__name__)
from pyxb.exceptions_ import *
import unittest
import pyxb.binding.datatypes as xsd
import binascii

class Test_hexBinary (unittest.TestCase):
    def testValues (self):
        data_values = [ '\x01', '\x00', '\x01\x23', '\x12\x34' ]
        for dt in data_values:
            dd = dt.encode('utf-8')
            v = xsd.hexBinary(dd)
            self.assertEqual(v, dd)

    def testStrings (self):
        encoded_values = [ u'01', u'00', u'ab', u'Ab', u'AB12' ]
        for et in encoded_values:
            ed = et.encode('utf-8')
            v = xsd.hexBinary.Factory(ed)
            self.assertEqual(v, ed)
            v = xsd.hexBinary.Factory(et, _from_xml=True)
            self.assertEqual(len(et)//2, len(v))
            self.assertEqual(et.upper(), v.xsdLiteral())

    def testBadStrings (self):
        self.assertRaises(SimpleTypeValueError, xsd.hexBinary.Factory, u'0', _from_xml=True)
        self.assertRaises(SimpleTypeValueError, xsd.hexBinary.Factory, u'012', _from_xml=True)
        self.assertRaises(SimpleTypeValueError, xsd.hexBinary.Factory, u'01s', _from_xml=True)
        self.assertRaises(SimpleTypeValueError, xsd.hexBinary.Factory, u'sb', _from_xml=True)

    def testLiteralization (self):
        self.assertEqual('', xsd.hexBinary(''.encode('utf-8')).xsdLiteral())


if __name__ == '__main__':
    unittest.main()