MCPcopy Create free account
hub / github.com/PyMySQL/PyMySQL / test_escape_timedelta

Method test_escape_timedelta

pymysql/tests/test_converters.py:48–70  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

46 self._test_convert_timedelta(with_negate=False, with_fsp=True)
47
48 def test_escape_timedelta(self):
49 # MySQL TIME allows negatives, and a timedelta is the registered param
50 # encoder, so a negative value must escape to its real magnitude with a
51 # single leading sign -- not with complemented sub-hour fields.
52 cases = {
53 datetime.timedelta(hours=1, minutes=30): "'01:30:00'",
54 datetime.timedelta(days=1, hours=2): "'26:00:00'",
55 -datetime.timedelta(minutes=30): "'-00:30:00'",
56 -datetime.timedelta(hours=1, minutes=30): "'-01:30:00'",
57 datetime.timedelta(seconds=83579, microseconds=51000): "'23:12:59.051000'",
58 -datetime.timedelta(
59 seconds=83579, microseconds=51000
60 ): "'-23:12:59.051000'",
61 }
62 for tdelta, expected in cases.items():
63 self.assertEqual(converters.escape_timedelta(tdelta), expected)
64 # the escaped literal must re-parse to the same duration
65 self.assertEqual(
66 converters.convert_timedelta(
67 converters.escape_timedelta(tdelta).strip("'")
68 ),
69 tdelta,
70 )
71
72 def test_convert_time(self):
73 expected = datetime.time(23, 6, 20)

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected