3
0
Fork 0

feat: add localtime() function, app method

This commit is contained in:
Lance Edgar 2025-12-15 22:05:33 -06:00
parent e76a6e5f6d
commit dac91406c7
4 changed files with 122 additions and 0 deletions

View file

@ -426,6 +426,11 @@ app_title = WuttaTest
name = self.app.make_full_name("Fred", "", "Flintstone", "")
self.assertEqual(name, "Fred Flintstone")
def test_localtime(self):
dt = self.app.localtime()
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNotNone(dt.tzinfo)
def test_make_utc(self):
dt = self.app.make_utc()
self.assertIsInstance(dt, datetime.datetime)
@ -516,6 +521,11 @@ app_title = WuttaTest
dt = datetime.datetime(2024, 12, 11, 8, 30, tzinfo=datetime.timezone.utc)
self.assertEqual(self.app.render_datetime(dt), "2024-12-11 08:30+0000")
dt = datetime.datetime(2024, 12, 11, 8, 30)
text = self.app.render_datetime(dt)
# TODO: should override local timezone for more complete test
self.assertTrue(text.startswith("2024-12-"))
def test_render_error(self):
# with description

View file

@ -165,6 +165,51 @@ class TestLoadObject(TestCase):
self.assertIs(result, TestCase)
class TestLocaltime(TestCase):
def test_current_time(self):
# has tzinfo by default
dt = mod.localtime()
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNotNone(dt.tzinfo)
now = datetime.datetime.now()
self.assertAlmostEqual(int(dt.timestamp()), int(now.timestamp()))
# no tzinfo
dt = mod.localtime(tzinfo=False)
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNone(dt.tzinfo)
now = datetime.datetime.now()
self.assertAlmostEqual(int(dt.timestamp()), int(now.timestamp()))
def test_convert_with_tzinfo(self):
sample = datetime.datetime(2024, 9, 15, 13, 30, tzinfo=datetime.timezone.utc)
# has tzinfo by default
dt = mod.localtime(sample)
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNotNone(dt.tzinfo)
# no tzinfo
dt = mod.localtime(sample, tzinfo=False)
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNone(dt.tzinfo)
def test_convert_without_tzinfo(self):
sample = datetime.datetime(2024, 9, 15, 13, 30)
# has tzinfo by default
dt = mod.localtime(sample)
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNotNone(dt.tzinfo)
# no tzinfo
dt = mod.localtime(sample, tzinfo=False)
self.assertIsInstance(dt, datetime.datetime)
self.assertIsNone(dt.tzinfo)
class TestMakeUTC(TestCase):
def test_current_time(self):