1 | import datetime |
---|
2 | from unittest import TestCase |
---|
3 | |
---|
4 | from pymysql._compat import PY2 |
---|
5 | from pymysql import converters |
---|
6 | |
---|
7 | |
---|
8 | __all__ = ["TestConverter"] |
---|
9 | |
---|
10 | |
---|
11 | class TestConverter(TestCase): |
---|
12 | |
---|
13 | def test_escape_string(self): |
---|
14 | self.assertEqual( |
---|
15 | converters.escape_string(u"foo\nbar"), |
---|
16 | u"foo\\nbar" |
---|
17 | ) |
---|
18 | |
---|
19 | if PY2: |
---|
20 | def test_escape_string_bytes(self): |
---|
21 | self.assertEqual( |
---|
22 | converters.escape_string(b"foo\nbar"), |
---|
23 | b"foo\\nbar" |
---|
24 | ) |
---|
25 | |
---|
26 | def test_convert_datetime(self): |
---|
27 | expected = datetime.datetime(2007, 2, 24, 23, 6, 20) |
---|
28 | dt = converters.convert_datetime('2007-02-24 23:06:20') |
---|
29 | self.assertEqual(dt, expected) |
---|
30 | |
---|
31 | def test_convert_datetime_with_fsp(self): |
---|
32 | expected = datetime.datetime(2007, 2, 24, 23, 6, 20, 511581) |
---|
33 | dt = converters.convert_datetime('2007-02-24 23:06:20.511581') |
---|
34 | self.assertEqual(dt, expected) |
---|
35 | |
---|
36 | def _test_convert_timedelta(self, with_negate=False, with_fsp=False): |
---|
37 | d = {'hours': 789, 'minutes': 12, 'seconds': 34} |
---|
38 | s = '%(hours)s:%(minutes)s:%(seconds)s' % d |
---|
39 | if with_fsp: |
---|
40 | d['microseconds'] = 511581 |
---|
41 | s += '.%(microseconds)s' % d |
---|
42 | |
---|
43 | expected = datetime.timedelta(**d) |
---|
44 | if with_negate: |
---|
45 | expected = -expected |
---|
46 | s = '-' + s |
---|
47 | |
---|
48 | tdelta = converters.convert_timedelta(s) |
---|
49 | self.assertEqual(tdelta, expected) |
---|
50 | |
---|
51 | def test_convert_timedelta(self): |
---|
52 | self._test_convert_timedelta(with_negate=False, with_fsp=False) |
---|
53 | self._test_convert_timedelta(with_negate=True, with_fsp=False) |
---|
54 | |
---|
55 | def test_convert_timedelta_with_fsp(self): |
---|
56 | self._test_convert_timedelta(with_negate=False, with_fsp=True) |
---|
57 | self._test_convert_timedelta(with_negate=False, with_fsp=True) |
---|
58 | |
---|
59 | def test_convert_time(self): |
---|
60 | expected = datetime.time(23, 6, 20) |
---|
61 | time_obj = converters.convert_time('23:06:20') |
---|
62 | self.assertEqual(time_obj, expected) |
---|
63 | |
---|
64 | def test_convert_time_with_fsp(self): |
---|
65 | expected = datetime.time(23, 6, 20, 511581) |
---|
66 | time_obj = converters.convert_time('23:06:20.511581') |
---|
67 | self.assertEqual(time_obj, expected) |
---|