summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomi Pieviläinen <tomi.pievilainen+launchpad@iki.fi>2012-02-19 01:18:56 +0200
committerTomi Pieviläinen <tomi.pievilainen+launchpad@iki.fi>2012-02-19 01:18:56 +0200
commit87fdf7fc70e45d76422e1c321f18e9bf7f79744e (patch)
treea3eebb2cdf007e2d97a82af3dc62ae42d909e1d4
parent464d448751bb632658ca74c380689fd746bbf7c1 (diff)
downloaddateutil-87fdf7fc70e45d76422e1c321f18e9bf7f79744e.tar.gz
Ismael Carnales sent a patch to add a time format + fixing format tests
-rw-r--r--dateutil/parser.py11
-rwxr-xr-xtest.py37
2 files changed, 20 insertions, 28 deletions
diff --git a/dateutil/parser.py b/dateutil/parser.py
index 506dac6..b3ac37b 100644
--- a/dateutil/parser.py
+++ b/dateutil/parser.py
@@ -449,6 +449,17 @@ class parser(object):
newidx = info.hms(l[i])
if newidx is not None:
idx = newidx
+ elif i == len_l and l[i-2] == ' ' and info.hms(l[i-3]) is not None:
+ # X h MM or X m SS
+ idx = info.hms(l[i-3]) + 1
+ if idx == 1:
+ res.minute = int(value)
+ if value%1:
+ res.second = int(60*(value%1))
+ elif idx == 2:
+ res.second, res.microsecond = \
+ _parsems(value_repr)
+ i += 1
elif i+1 < len_l and l[i] == ':':
# HH:MM[:SS[.ss]]
res.hour = int(value)
diff --git a/test.py b/test.py
index a1a4a9b..c30b52e 100755
--- a/test.py
+++ b/test.py
@@ -5,7 +5,6 @@ from __future__ import unicode_literals
from six import StringIO, BytesIO, PY3
import unittest
import calendar
-import time
import base64
import os
@@ -425,16 +424,6 @@ class RRuleTest(unittest.TestCase):
datetime(2004, 12, 27, 9, 0),
datetime(2009, 12, 28, 9, 0)])
- def testYearlyByWeekNoAndWeekDay53(self):
- self.assertEqual(list(rrule(YEARLY,
- count=3,
- byweekno=53,
- byweekday=MO,
- dtstart=parse("19970902T090000"))),
- [datetime(1998, 12, 28, 9, 0),
- datetime(2004, 12, 27, 9, 0),
- datetime(2009, 12, 28, 9, 0)])
-
def testYearlyByHour(self):
self.assertEqual(list(rrule(YEARLY,
count=3,
@@ -3080,15 +3069,15 @@ class ParserTest(unittest.TestCase):
self.assertEqual(parse("Sep 25 2003"),
datetime(2003, 9, 25))
- def testDateCommandFormatStrip9(self):
+ def testDateCommandFormatStrip10(self):
self.assertEqual(parse("Sep 2003", default=self.default),
datetime(2003, 9, 25))
- def testDateCommandFormatStrip10(self):
+ def testDateCommandFormatStrip11(self):
self.assertEqual(parse("Sep", default=self.default),
datetime(2003, 9, 25))
- def testDateCommandFormatStrip11(self):
+ def testDateCommandFormatStrip12(self):
self.assertEqual(parse("2003", default=self.default),
datetime(2003, 9, 25))
@@ -3289,14 +3278,6 @@ class ParserTest(unittest.TestCase):
self.assertEqual(parse("10/09/03", yearfirst=True),
datetime(2010, 9, 3))
- def testDateWithSpace12(self):
- self.assertEqual(parse("25 09 03"),
- datetime(2003, 9, 25))
-
- def testDateWithSpace13(self):
- self.assertEqual(parse("25 09 03"),
- datetime(2003, 9, 25))
-
def testDateWithSpace1(self):
self.assertEqual(parse("2003 09 25"),
datetime(2003, 9, 25))
@@ -3345,10 +3326,6 @@ class ParserTest(unittest.TestCase):
self.assertEqual(parse("25 09 03"),
datetime(2003, 9, 25))
- def testDateWithSpace13(self):
- self.assertEqual(parse("25 09 03"),
- datetime(2003, 9, 25))
-
def testStrangelyOrderedDate1(self):
self.assertEqual(parse("03 25 Sep"),
datetime(2003, 9, 25))
@@ -3369,14 +3346,18 @@ class ParserTest(unittest.TestCase):
self.assertEqual(parse("10h36m28s", default=self.default),
datetime(2003, 9, 25, 10, 36, 28))
- def testHourWithLettersStrip1(self):
+ def testHourWithLettersStrip2(self):
self.assertEqual(parse("10h36m", default=self.default),
datetime(2003, 9, 25, 10, 36))
- def testHourWithLettersStrip2(self):
+ def testHourWithLettersStrip3(self):
self.assertEqual(parse("10h", default=self.default),
datetime(2003, 9, 25, 10))
+ def testHourWithLettersStrip4(self):
+ self.assertEqual(parse("10 h 36", default=self.default),
+ datetime(2003, 9, 25, 10, 36))
+
def testHourAmPm1(self):
self.assertEqual(parse("10h am", default=self.default),
datetime(2003, 9, 25, 10))