File: test-date.py

package info (click to toggle)
pyxb 1.2.6%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 42,668 kB
  • sloc: python: 239,437; sh: 905; xml: 690; makefile: 60
file content (68 lines) | stat: -rw-r--r-- 2,780 bytes parent folder | download | duplicates (3)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# -*- coding: utf-8 -*-
import logging
if __name__ == '__main__':
    logging.basicConfig()
_log = logging.getLogger(__name__)
import pyxb
import unittest
import pyxb.binding.datatypes as xsd
import datetime

class Test_date (unittest.TestCase):

    def verifyTime (self, dt, with_usec=True, with_adj=(0,0), with_tzinfo=True):
        self.assertEqual(2002, dt.year)
        self.assertEqual(10, dt.month)
        self.assertEqual(27, dt.day)
        self.assertEqual(with_tzinfo, dt.tzinfo is not None)

    def testBad (self):
        self.assertRaises(pyxb.SimpleTypeValueError, xsd.date, '2002-10-27T')

    def testFromText (self):
        self.verifyTime(xsd.date('  2002-10-27', _from_xml=True), with_usec=False, with_tzinfo=False)
        self.verifyTime(xsd.date('2002-10-27  ', _from_xml=True), with_usec=False, with_tzinfo=False)
        self.verifyTime(xsd.date('2002-10-27'), with_usec=False, with_tzinfo=False)

    def testYear (self):
        # This test can't succeed because Python doesn't support negative years.
        self.assertRaises(pyxb.SimpleTypeValueError, xsd.date, '-0024-01-01')

    def testArguments (self):
        self.assertRaises(TypeError, xsd.date)
        self.assertRaises(TypeError, xsd.date, 2002)
        self.assertRaises(TypeError, xsd.date, 2002, 10)
        self.verifyTime(xsd.date(2002, 10, 27), with_tzinfo=False)

    def testXsdLiteral (self):
        dt = xsd.date('2002-10-27')
        self.assertEqual('2002-10-27', dt.xsdLiteral())

    def testTimezoned (self):
        dt = xsd.date('2002-10-10Z')
        self.assertEqual('2002-10-10T00:00:00+00:00', dt.isoformat())
        self.assertEqual('2002-10-10Z', dt.xsdLiteral())

        dt = xsd.date('2002-10-10+13:00')
        self.assertEqual('2002-10-10T00:00:00+13:00', dt.isoformat())
        self.assertEqual('2002-10-09-11:00', dt.xsdLiteral())
        dt = xsd.date('2002-10-09-11:00')
        self.assertEqual('2002-10-09T00:00:00-11:00', dt.isoformat())
        self.assertEqual('2002-10-09-11:00', dt.xsdLiteral())

        dt = xsd.date('2002-10-10+14:00')
        self.assertEqual('2002-10-10T00:00:00+14:00', dt.isoformat())
        self.assertEqual('2002-10-09-10:00', dt.xsdLiteral())
        dt = xsd.date('2002-10-09-10:00')
        self.assertEqual('2002-10-09T00:00:00-10:00', dt.isoformat())
        self.assertEqual('2002-10-09-10:00', dt.xsdLiteral())

        dt = xsd.date('2002-10-10-14:00')
        self.assertEqual('2002-10-10T00:00:00-14:00', dt.isoformat())
        self.assertEqual('2002-10-11+10:00', dt.xsdLiteral())
        dt = xsd.date('2002-10-11+10:00')
        self.assertEqual('2002-10-11T00:00:00+10:00', dt.isoformat())
        self.assertEqual('2002-10-11+10:00', dt.xsdLiteral())

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