Skip to content

Commit 289fcc4

Browse files
committed
Merge branch 'msopko81-patch-1'
2 parents 66d5470 + e0903a4 commit 289fcc4

File tree

2 files changed

+36
-0
lines changed

2 files changed

+36
-0
lines changed

dateparser/timezone_parser.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@ def localize(self, dt, is_dst=False):
2828
raise ValueError('Not naive datetime (tzinfo is already set)')
2929
return dt.replace(tzinfo=self)
3030

31+
def __getinitargs__(self):
32+
return self.__name, self.__offset
33+
3134

3235
def pop_tz_offset_from_string(date_string, as_offset=True):
3336
for name, info in _tz_offsets:

tests/test_pickle.py

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import pickle
2+
from dateparser import parse
3+
from dateparser.timezone_parser import StaticTzInfo
4+
from datetime import datetime
5+
from tests import BaseTestCase
6+
7+
8+
class TestPickle(BaseTestCase):
9+
def test_pickling_basic_parsed_object(self):
10+
now = parse('now')
11+
self.assertIsInstance(now, datetime)
12+
pickle_dumps = pickle.dumps(now)
13+
self.assertIsInstance(pickle_dumps, bytes)
14+
15+
def test_pickling_parsed_object_with_tz(self):
16+
now_in_utc = parse('now in UTC')
17+
self.assertIsInstance(now_in_utc, datetime)
18+
self.assertIsInstance(now_in_utc.tzinfo, StaticTzInfo)
19+
pickle_dumps = pickle.dumps(now_in_utc)
20+
self.assertIsInstance(pickle_dumps, bytes)
21+
22+
def test_unpickling_basic_parsed_object(self):
23+
now = parse('now')
24+
pickle_dumps = pickle.dumps(now)
25+
pickle_loads = pickle.loads(pickle_dumps)
26+
self.assertIsInstance(pickle_loads, datetime)
27+
28+
def test_unpickling_parsed_object_with_tz(self):
29+
now_in_utc = parse('now in UTC')
30+
pickle_dumps = pickle.dumps(now_in_utc)
31+
pickle_loads = pickle.loads(pickle_dumps)
32+
self.assertIsInstance(pickle_loads, datetime)
33+
self.assertIsInstance(pickle_loads.tzinfo, StaticTzInfo)

0 commit comments

Comments
 (0)