def test_parse_duration_combined(self):
        resultduration = _parse_duration_combined('P0003-06-04T12:30:05')
        self.assertEqual(resultduration.days, 1279)
        self.assertEqual(resultduration.seconds, 45005)
        self.assertEqual(resultduration.microseconds, 0)

        resultduration = _parse_duration_combined('P0003-06-04T12:30:05.5')
        self.assertEqual(resultduration.days, 1279)
        self.assertEqual(resultduration.seconds, 45005)
        self.assertEqual(resultduration.microseconds, 500000)
Exemplo n.º 2
0
    def test_parse_duration_combined(self):
        resultduration = _parse_duration_combined('P0003-06-04T12:30:05')
        self.assertEqual(resultduration.days, 1279)
        self.assertEqual(resultduration.seconds, 45005)
        self.assertEqual(resultduration.microseconds, 0)

        resultduration = _parse_duration_combined('P0003-06-04T12:30:05.5')
        self.assertEqual(resultduration.days, 1279)
        self.assertEqual(resultduration.seconds, 45005)
        self.assertEqual(resultduration.microseconds, 500000)
Exemplo n.º 3
0
    def test_parse_duration_combined(self):
        resultduration = _parse_duration_combined('P0003-06-04T12:30:05',
                                                  False)
        self.assertEqual(
            resultduration,
            datetime.timedelta(days=1279, hours=12, minutes=30, seconds=5))

        resultduration = _parse_duration_combined('P0003-06-04T12:30:05.5',
                                                  False)
        self.assertEqual(
            resultduration,
            datetime.timedelta(days=1279, hours=12, minutes=30, seconds=5.5))
Exemplo n.º 4
0
    def test_parse_duration_combined_relative_nodateutil(self):
        import sys
        import dateutil

        dateutil_import = dateutil

        sys.modules['dateutil'] = None

        with self.assertRaises(RuntimeError):
            _parse_duration_combined('P0003-06-04T12:30:05', True)

        #Reinstall dateutil
        sys.modules['dateutil'] = dateutil
Exemplo n.º 5
0
    def test_parse_duration_combined(self):
        testtuples = (('P0003-06-04T12:30:05', {
            'PnY': '0003',
            'PnM': '06',
            'PnD': '04',
            'TnH': '12',
            'TnM': '30',
            'TnS': '05'
        }), ('P0003-06-04T12:30:05.5', {
            'PnY': '0003',
            'PnM': '06',
            'PnD': '04',
            'TnH': '12',
            'TnM': '30',
            'TnS': '05.5'
        }), ('P0001-02-03T14:43:59.9999997', {
            'PnY': '0001',
            'PnM': '02',
            'PnD': '03',
            'TnH': '14',
            'TnM': '43',
            'TnS': '59.9999997'
        }))

        for testtuple in testtuples:
            mockBuilder = mock.Mock()
            mockBuilder.build_duration.return_value = testtuple[1]

            result = _parse_duration_combined(testtuple[0], mockBuilder)

            self.assertEqual(result, testtuple[1])
            mockBuilder.build_duration.assert_called_once_with(**testtuple[1])
Exemplo n.º 6
0
    def test_parse_duration_combined_relative(self):
        resultduration = _parse_duration_combined('P0003-06-04T12:30:05', True)
        self.assertEqual(resultduration.years, 3)
        self.assertEqual(resultduration.months, 6)
        self.assertEqual(resultduration.days, 4)
        self.assertEqual(resultduration.hours, 12)
        self.assertEqual(resultduration.minutes, 30)
        self.assertEqual(resultduration.seconds, 5)

        resultduration = _parse_duration_combined('P0003-06-04T12:30:05.5',
                                                  True)
        self.assertEqual(resultduration.years, 3)
        self.assertEqual(resultduration.months, 6)
        self.assertEqual(resultduration.days, 4)
        self.assertEqual(resultduration.hours, 12)
        self.assertEqual(resultduration.minutes, 30)
        self.assertEqual(resultduration.seconds, 5)
        self.assertEqual(resultduration.microseconds, 500000)
Exemplo n.º 7
0
    def test_parse_duration_combined(self):
        testtuples = (
            (
                "P0003-06-04T12:30:05",
                {
                    "PnY": "0003",
                    "PnM": "06",
                    "PnD": "04",
                    "TnH": "12",
                    "TnM": "30",
                    "TnS": "05",
                },
            ),
            (
                "P0003-06-04T12:30:05,5",
                {
                    "PnY": "0003",
                    "PnM": "06",
                    "PnD": "04",
                    "TnH": "12",
                    "TnM": "30",
                    "TnS": "05.5",
                },
            ),
            (
                "P0003-06-04T12:30:05.5",
                {
                    "PnY": "0003",
                    "PnM": "06",
                    "PnD": "04",
                    "TnH": "12",
                    "TnM": "30",
                    "TnS": "05.5",
                },
            ),
            (
                "P0001-02-03T14:43:59.9999997",
                {
                    "PnY": "0001",
                    "PnM": "02",
                    "PnD": "03",
                    "TnH": "14",
                    "TnM": "43",
                    "TnS": "59.9999997",
                },
            ),
        )

        for testtuple in testtuples:
            mockBuilder = mock.Mock()
            mockBuilder.build_duration.return_value = testtuple[1]

            result = _parse_duration_combined(testtuple[0], mockBuilder)

            self.assertEqual(result, testtuple[1])
            mockBuilder.build_duration.assert_called_once_with(**testtuple[1])
Exemplo n.º 8
0
    def test_parse_duration_combined(self):
        testtuples = (
            (
                "P0003-06-04T12:30:05",
                {
                    "PnY": "0003",
                    "PnM": "06",
                    "PnD": "04",
                    "TnH": "12",
                    "TnM": "30",
                    "TnS": "05",
                },
            ),
            (
                "P0003-06-04T12:30:05,5",
                {
                    "PnY": "0003",
                    "PnM": "06",
                    "PnD": "04",
                    "TnH": "12",
                    "TnM": "30",
                    "TnS": "05.5",
                },
            ),
            (
                "P0003-06-04T12:30:05.5",
                {
                    "PnY": "0003",
                    "PnM": "06",
                    "PnD": "04",
                    "TnH": "12",
                    "TnM": "30",
                    "TnS": "05.5",
                },
            ),
            (
                "P0001-02-03T14:43:59.9999997",
                {
                    "PnY": "0001",
                    "PnM": "02",
                    "PnD": "03",
                    "TnH": "14",
                    "TnM": "43",
                    "TnS": "59.9999997",
                },
            ),
        )

        for testtuple in testtuples:
            result = _parse_duration_combined(testtuple[0])

            self.assertEqual(result, testtuple[1])
Exemplo n.º 9
0
    def test_parse_duration_combined_relative(self):
        resultduration = _parse_duration_combined('P0003-06-04T12:30:05', True)
        self.assertEqual(
            resultduration,
            dateutil.relativedelta.relativedelta(years=3,
                                                 months=6,
                                                 days=4,
                                                 hours=12,
                                                 minutes=30,
                                                 seconds=5))

        resultduration = _parse_duration_combined('P0003-06-04T12:30:05.5',
                                                  True)
        self.assertEqual(
            resultduration,
            dateutil.relativedelta.relativedelta(years=3,
                                                 months=6,
                                                 days=4,
                                                 hours=12,
                                                 minutes=30,
                                                 seconds=5,
                                                 microseconds=500000))
Exemplo n.º 10
0
    def test_parse_duration_combined(self):
        testtuples = (('P0003-06-04T12:30:05', {'PnY': '0003', 'PnM': '06',
                                                'PnD': '04', 'TnH': '12',
                                                'TnM': '30', 'TnS': '05'}),
                      ('P0003-06-04T12:30:05,5', {'PnY': '0003', 'PnM': '06',
                                                  'PnD': '04', 'TnH': '12',
                                                  'TnM': '30', 'TnS': '05.5'}),
                      ('P0003-06-04T12:30:05.5', {'PnY': '0003', 'PnM': '06',
                                                  'PnD': '04', 'TnH': '12',
                                                  'TnM': '30', 'TnS': '05.5'}),
                      ('P0001-02-03T14:43:59.9999997', {'PnY': '0001',
                                                        'PnM': '02',
                                                        'PnD': '03',
                                                        'TnH': '14',
                                                        'TnM': '43',
                                                        'TnS':
                                                        '59.9999997'}))

        for testtuple in testtuples:
            result = _parse_duration_combined(testtuple[0])

            self.assertEqual(result, testtuple[1])
Exemplo n.º 11
0
 def test_parse_duration_combined_suffixgarbage(self):
     #Don't allow garbage after the duration
     #https://bitbucket.org/nielsenb/aniso8601/issues/9/durations-with-trailing-garbage-are-parsed
     with self.assertRaises(ISOFormatError):
         _parse_duration_combined('P0003-06-04T12:30:05.5asdfasdf', None)