File: test_iso8601.py

package info (click to toggle)
python-parsley 1.3-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,048 kB
  • sloc: python: 9,897; makefile: 127
file content (56 lines) | stat: -rw-r--r-- 1,888 bytes parent folder | download | duplicates (2)
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
import datetime
import unittest

import pytest

pytz = pytest.importorskip('pytz')
from iso8601 import DateTimeParser


class TestDatetimeParsing(unittest.TestCase):
    def test_date(self):
        self.assertEqual(
            datetime.date(2001, 12, 25),
            DateTimeParser('2001-12-25').date())

    def test_naive_time(self):
        self.assertEqual(
            datetime.time(13, 59, 43),
            DateTimeParser('13:59:43').naive_time())

    def test_fractional_naive_time(self):
        self.assertEqual(
            datetime.time(13, 59, 43, 880000),
            DateTimeParser('13:59:43.88').naive_time())

    def test_utc_time(self):
        self.assertEqual(
            datetime.time(13, 59, 43, tzinfo=pytz.UTC),
            DateTimeParser('13:59:43Z').time())

    def test_fractional_utc_time(self):
        self.assertEqual(
            datetime.time(13, 59, 43, 880000, tzinfo=pytz.UTC),
            DateTimeParser('13:59:43.88Z').time())

    def test_timezone_time(self):
        self.assertEqual(
            datetime.time(13, 59, 43, tzinfo=pytz.FixedOffset(60)),
            DateTimeParser('13:59:43+01:00').time())

    def test_fractional_timezone_time(self):
        self.assertEqual(
            datetime.time(13, 59, 43, 770000, tzinfo=pytz.FixedOffset(60)),
            DateTimeParser('13:59:43.77+01:00').time())

    def test_numeric_offset(self):
        get_offset = lambda x: DateTimeParser(x).numeric_offset()
        self.assertEqual(pytz.FixedOffset(0), get_offset('+00:00'))
        self.assertEqual(pytz.FixedOffset(90), get_offset('+01:30'))
        self.assertEqual(pytz.FixedOffset(-150), get_offset('-02:30'))

    def test_datetime(self):
        self.assertEqual(
            datetime.datetime(
                2001, 12, 25, 13, 59, 43, 770000, tzinfo=pytz.UTC),
            DateTimeParser('2001-12-25T13:59:43.77Z').datetime())