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