10000 Adding some unit tests for the timestamp_parameter util · Web5design/github3.py@138952b · GitHub
[go: up one dir, main page]

Skip to content

Commit 138952b

Browse files
committed
Adding some unit tests for the timestamp_parameter util
1 parent 44f6af5 commit 138952b

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

github3/utils.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
# with thanks to https://code.google.com/p/jquery-localtime/issues/detail?id=4
55
ISO_8601 = re.compile("^(-?(?:[1-9][0-9]*)?[0-9]{4})-(1[0-2]|0[1-9])-(3[0-1]|0[1-9]|[1-2][0-9])"
6-
"T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?"
7-
"(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?$")
6+
"(T(2[0-3]|[0-1][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?"
7+
"(Z|[+-](?:2[0-3]|[0-1][0-9]):[0-5][0-9])?)?$")
88

99

1010
def timestamp_parameter(timestamp, allow_none=True):

tests/test_utils.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
from github3.utils import timestamp_parameter
2+
from tests.utils import BaseCase
3+
from datetime import datetime
4+
5+
6+
class TestTimestampParameter(BaseCase):
7+
8+
def test_datetimes(self):
9+
timestamp = datetime(2010, 6, 1, 12, 15, 30)
10+
self.assertEqual('2010-06-01T12:15:30', timestamp_parameter(timestamp))
11+
12+
def test_valid_datestring(self):
13+
testvals = (
14+
'2010-06-01',
15+
'2010-06-01T12:15:30',
16+
'2010-06-01T12:14:30.12321+02:00',
17+
'2010-06-01T12:14:30.12321-02:00',
18+
'2010-06-01T12:14:30.2115Z',
19+
)
20+
for timestamp in testvals:
21+
self.assertEqual(timestamp, timestamp_parameter(timestamp))
22+
23+
def test_invalid_datestring(self):
24+
testvals = (
25+
'2012-16-04',
26+
'2012-06-01v!',
27+
'fish',
28+
'2010-06-01T12:14:30.12321+02',
29+
'2010-06-01T12:70:30.12321+02',
30+
)
31+
for timestamp in testvals:
32+
self.assertRaises(ValueError, timestamp_parameter, timestamp)
33+
34+
def test_none_handling(self):
35+
self.assertIsNone(timestamp_parameter(None, allow_none=True))
36+
self.assertRaises(ValueError, timestamp_parameter, None, allow_none=False)

0 commit comments

Comments
 (0)
0