File: test_datetime_parser.py

package info (click to toggle)
python-braintree 4.31.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 2,576 kB
  • sloc: python: 28,946; makefile: 9; sh: 8
file content (31 lines) | stat: -rw-r--r-- 1,584 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
import unittest
from braintree.util.datetime_parser import parse_datetime as parse
from datetime import datetime


class TestDateParser(unittest.TestCase):
    def test_parses_with_zulu_and_symbols(self):
        self.assertEqual(parse('2017-04-19T18:51:21Z'), datetime(2017, 4, 19, 18, 51, 21))
        self.assertEqual(parse('2017-04-19T18:51:21.45Z'), datetime(2017, 4, 19, 18, 51, 21, 450000))

    def test_parses_with_zulu_and_no_symbols(self):
        self.assertEqual(parse('20170419T185121Z'), datetime(2017, 4, 19, 18, 51, 21))
        self.assertEqual(parse('20170419T185121.123Z'), datetime(2017, 4, 19, 18, 51, 21, 123000))

    def test_parses_with_zero_offset(self):
        self.assertEqual(parse('2017-04-19T18:51:21+00:00'), datetime(2017, 4, 19, 18, 51, 21))
        self.assertEqual(parse('2017-04-19T18:51:21.420+00:00'), datetime(2017, 4, 19, 18, 51, 21, 420000))

    def test_parses_with_negative_offset(self):
        self.assertEqual(parse('2017-04-19T18:51:21-01:30'), datetime(2017, 4, 19, 20, 21, 21))
        self.assertEqual(parse('2017-04-19T18:51:21.987-01:30'), datetime(2017, 4, 19, 20, 21, 21, 987000))

    def test_parses_with_positive_offset(self):
        self.assertEqual(parse('2017-04-19T18:51:21+07:00'), datetime(2017, 4, 19, 11, 51, 21))
        self.assertEqual(parse('2017-04-19T18:51:21.765+07:00'), datetime(2017, 4, 19, 11, 51, 21, 765000))

    def test_raises_with_bad_input(self):
        with self.assertRaises(ValueError):
            parse('20170420')
        with self.assertRaises(ValueError):
            parse('20170420Z')