Initial commit with translated description

This commit is contained in:
2026-03-29 13:13:35 +08:00
commit 1d2061613e
32 changed files with 4399 additions and 0 deletions

View File

@@ -0,0 +1,51 @@
import unittest
from scripts.tesla import _fmt_minutes_hhmm, _parse_hhmm
class TestTimeHelpers(unittest.TestCase):
def test_fmt_minutes_hhmm_basic(self):
self.assertEqual(_fmt_minutes_hhmm(0), "00:00")
self.assertEqual(_fmt_minutes_hhmm(1), "00:01")
self.assertEqual(_fmt_minutes_hhmm(60), "01:00")
self.assertEqual(_fmt_minutes_hhmm(23 * 60 + 59), "23:59")
def test_fmt_minutes_hhmm_wraps_24h(self):
# Tesla sometimes uses minutes-from-midnight; be defensive.
self.assertEqual(_fmt_minutes_hhmm(24 * 60), "00:00")
self.assertEqual(_fmt_minutes_hhmm(25 * 60 + 5), "01:05")
def test_fmt_minutes_hhmm_invalid(self):
self.assertIsNone(_fmt_minutes_hhmm(-1))
self.assertIsNone(_fmt_minutes_hhmm(""))
self.assertIsNone(_fmt_minutes_hhmm(None))
def test_parse_hhmm(self):
self.assertEqual(_parse_hhmm("00:00"), 0)
self.assertEqual(_parse_hhmm("01:05"), 65)
self.assertEqual(_parse_hhmm("23:59"), 23 * 60 + 59)
def test_parse_hhmm_strips(self):
self.assertEqual(_parse_hhmm(" 07:30 "), 7 * 60 + 30)
def test_parse_hhmm_invalid(self):
for bad in [
None,
"",
" ",
"7:30", # must be zero-padded? actually current parser allows; but still has ':' so ok
]:
if bad == "7:30":
# Current implementation allows single-digit hours; keep behavior.
self.assertEqual(_parse_hhmm(bad), 7 * 60 + 30)
else:
with self.assertRaises(ValueError):
_parse_hhmm(bad)
for bad in ["24:00", "00:60", "-1:00", "ab:cd", "123"]:
with self.assertRaises(Exception):
_parse_hhmm(bad)
if __name__ == "__main__":
unittest.main()