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)
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)
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))
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
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])
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)
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])
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])
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))
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])
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)