Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
singlestore-labs
GitHub Repository: singlestore-labs/singlestoredb-python
Path: blob/main/singlestoredb/mysql/tests/test_converters.py
469 views
1
# type: ignore
2
import datetime
3
from unittest import TestCase
4
5
from singlestoredb import converters
6
from singlestoredb.mysql.converters import escape_string
7
8
9
__all__ = ['TestConverter']
10
11
12
class TestConverter(TestCase):
13
14
def test_escape_string(self):
15
self.assertEqual(escape_string('foo\nbar'), 'foo\\nbar')
16
17
def test_convert_datetime(self):
18
expected = datetime.datetime(2007, 2, 24, 23, 6, 20)
19
dt = converters.datetime_or_none('2007-02-24 23:06:20')
20
self.assertEqual(dt, expected)
21
22
def test_convert_datetime_with_fsp(self):
23
expected = datetime.datetime(2007, 2, 24, 23, 6, 20, 511581)
24
dt = converters.datetime_or_none('2007-02-24 23:06:20.511581')
25
self.assertEqual(dt, expected)
26
27
def _test_convert_timedelta(self, with_negate=False, with_fsp=False):
28
d = {'hours': 789, 'minutes': 12, 'seconds': 34}
29
s = '%(hours)s:%(minutes)s:%(seconds)s' % d
30
if with_fsp:
31
d['microseconds'] = 511581
32
s += '.%(microseconds)s' % d
33
34
expected = datetime.timedelta(**d)
35
if with_negate:
36
expected = -expected
37
s = '-' + s
38
39
tdelta = converters.timedelta_or_none(s)
40
self.assertEqual(tdelta, expected)
41
42
def test_convert_timedelta(self):
43
self._test_convert_timedelta(with_negate=False, with_fsp=False)
44
self._test_convert_timedelta(with_negate=True, with_fsp=False)
45
46
def test_convert_timedelta_with_fsp(self):
47
self._test_convert_timedelta(with_negate=False, with_fsp=True)
48
self._test_convert_timedelta(with_negate=False, with_fsp=True)
49
50
def test_convert_time(self):
51
expected = datetime.time(23, 6, 20)
52
time_obj = converters.time_or_none('23:06:20')
53
self.assertEqual(time_obj, expected)
54
55
def test_convert_time_with_fsp(self):
56
expected = datetime.time(23, 6, 20, 511581)
57
time_obj = converters.time_or_none('23:06:20.511581')
58
self.assertEqual(time_obj, expected)
59
60