Skip to content

Commit a3618ed

Browse files
committedApr 16, 2021
issue_25 raise DateMathException when invalid timestamp is passed
1 parent be87139 commit a3618ed

File tree

6 files changed

+16
-11
lines changed

6 files changed

+16
-11
lines changed
 

‎.gitignore

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
*.pyc
2-
env
3-
venv
4-
arrow_test.py
5-
dm_pretty.py
6-
ranges.py
7-
tztest.py
2+
env*
3+
venv*
84

95
# general things to ignore
106
build/

‎VERSION.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.5.2
1+
1.5.3

‎datemath/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
from .helpers import parse
1+
from .helpers import parse, DateMathException
22

33
def dm(expr, **kwargs):
44
''' does our datemath and returns an arrow object '''
55
return parse(expr, **kwargs)
66

77
def datemath(expr, **kwargs):
88
''' does our datemath and returns a datetime object '''
9-
return parse(expr, **kwargs).datetime
9+
return parse(expr, **kwargs)

‎datemath/helpers.py

+4
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,7 @@ def parse(expression, now=None, tz='UTC', type=None, roundDown=True):
136136
math = expression
137137
time = now
138138
else:
139+
if debug: print('parse() - Found and expression that will hit the catchall')
139140
math = ''
140141
time = parseTime(expression, tz)
141142

@@ -174,6 +175,9 @@ def parseTime(timestamp, timezone='UTC'):
174175
ts = ts.replace(tzinfo=timezone)
175176

176177
return ts
178+
else:
179+
if debug: print('parseTime() - Doesnt look like we have a valid timestamp, raise an exception. timestamp={}'.format(timestamp))
180+
raise DateMathException('Valid length timestamp not provide, you gave me a timestamp of "{}", but I need something that has a len() >= 4'.format(timestamp))
177181

178182
def roundDate(now, unit, tz='UTC', roundDown=True):
179183
'''

‎requirements-3.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ docutils==0.15.2
99
idna==2.7
1010
linecache2==1.0.0
1111
packaging==16.8
12-
pkginfo==1.4.1
12+
pkginfo==1.4.2
1313
Pygments==2.4.2
1414
pyparsing==2.2.0
1515
python-dateutil==2.6.0

‎tests.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
iso8601 = 'YYYY-MM-DDTHH:mm:ssZZ'
1414
class TestDM(unittest.TestCase):
1515

16+
1617
def testParse(self):
1718

1819
# Baisc dates
@@ -154,7 +155,11 @@ def testParse(self):
154155
self.assertRaises(DateMathException, dm, '+1ä')
155156
self.assertRaises(DateMathException, dm, '+1ü')
156157
self.assertRaises(DateMathException, dm, '+1ß')
157-
158+
self.assertRaises(DateMathException, dm, '2')
159+
self.assertRaises(DateMathException, datemath, '2')
160+
self.assertRaises(DateMathException, dm, '123')
161+
self.assertRaises(DateMathException, datemath, '123')
162+
158163
try:
159164
dm('+1,')
160165
except DateMathException as e:

0 commit comments

Comments
 (0)