68 lines
2.1 KiB
Python
68 lines
2.1 KiB
Python
import datetime
|
|
from unittest import TestCase
|
|
|
|
from pymysql._compat import PY2
|
|
from pymysql import converters
|
|
|
|
|
|
__all__ = ["TestConverter"]
|
|
|
|
|
|
class TestConverter(TestCase):
|
|
|
|
def test_escape_string(self):
|
|
self.assertEqual(
|
|
converters.escape_string(u"foo\nbar"),
|
|
u"foo\\nbar"
|
|
)
|
|
|
|
if PY2:
|
|
def test_escape_string_bytes(self):
|
|
self.assertEqual(
|
|
converters.escape_string(b"foo\nbar"),
|
|
b"foo\\nbar"
|
|
)
|
|
|
|
def test_convert_datetime(self):
|
|
expected = datetime.datetime(2007, 2, 24, 23, 6, 20)
|
|
dt = converters.convert_datetime('2007-02-24 23:06:20')
|
|
self.assertEqual(dt, expected)
|
|
|
|
def test_convert_datetime_with_fsp(self):
|
|
expected = datetime.datetime(2007, 2, 24, 23, 6, 20, 511581)
|
|
dt = converters.convert_datetime('2007-02-24 23:06:20.511581')
|
|
self.assertEqual(dt, expected)
|
|
|
|
def _test_convert_timedelta(self, with_negate=False, with_fsp=False):
|
|
d = {'hours': 789, 'minutes': 12, 'seconds': 34}
|
|
s = '%(hours)s:%(minutes)s:%(seconds)s' % d
|
|
if with_fsp:
|
|
d['microseconds'] = 511581
|
|
s += '.%(microseconds)s' % d
|
|
|
|
expected = datetime.timedelta(**d)
|
|
if with_negate:
|
|
expected = -expected
|
|
s = '-' + s
|
|
|
|
tdelta = converters.convert_timedelta(s)
|
|
self.assertEqual(tdelta, expected)
|
|
|
|
def test_convert_timedelta(self):
|
|
self._test_convert_timedelta(with_negate=False, with_fsp=False)
|
|
self._test_convert_timedelta(with_negate=True, with_fsp=False)
|
|
|
|
def test_convert_timedelta_with_fsp(self):
|
|
self._test_convert_timedelta(with_negate=False, with_fsp=True)
|
|
self._test_convert_timedelta(with_negate=False, with_fsp=True)
|
|
|
|
def test_convert_time(self):
|
|
expected = datetime.time(23, 6, 20)
|
|
time_obj = converters.convert_time('23:06:20')
|
|
self.assertEqual(time_obj, expected)
|
|
|
|
def test_convert_time_with_fsp(self):
|
|
expected = datetime.time(23, 6, 20, 511581)
|
|
time_obj = converters.convert_time('23:06:20.511581')
|
|
self.assertEqual(time_obj, expected)
|