fix: add render_date()
, render_datetime()
methods for app handler
This commit is contained in:
parent
c1108e3102
commit
80a983f812
|
@ -668,6 +668,51 @@ class AppHandler:
|
|||
|
||||
return False
|
||||
|
||||
##############################
|
||||
# common value renderers
|
||||
##############################
|
||||
|
||||
display_format_date = '%Y-%m-%d'
|
||||
"""
|
||||
Format string to use when displaying :class:`python:datetime.date`
|
||||
objects. See also :meth:`render_date()`.
|
||||
"""
|
||||
|
||||
display_format_datetime = '%Y-%m-%d %H:%M%z'
|
||||
"""
|
||||
Format string to use when displaying
|
||||
:class:`python:datetime.datetime` objects. See also
|
||||
:meth:`render_datetime()`.
|
||||
"""
|
||||
|
||||
def render_date(self, value):
|
||||
"""
|
||||
Return a human-friendly display string for the given date.
|
||||
|
||||
Uses :attr:`display_format_date` to render the value.
|
||||
|
||||
:param value: A :class:`python:datetime.date` instance (or
|
||||
``None``).
|
||||
|
||||
:returns: Display string, or ``None``.
|
||||
"""
|
||||
if value is not None:
|
||||
return value.strftime(self.display_format_date)
|
||||
|
||||
def render_datetime(self, value):
|
||||
"""
|
||||
Return a human-friendly display string for the given datetime.
|
||||
|
||||
Uses :attr:`display_format_datetime` to render the value.
|
||||
|
||||
:param value: A :class:`python:datetime.datetime` instance (or
|
||||
``None``).
|
||||
|
||||
:returns: Display string, or ``None``.
|
||||
"""
|
||||
if value is not None:
|
||||
return value.strftime(self.display_format_datetime)
|
||||
|
||||
##############################
|
||||
# getters for other handlers
|
||||
##############################
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
# -*- coding: utf-8; -*-
|
||||
|
||||
import datetime
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
|
@ -421,6 +422,18 @@ app_title = WuttaTest
|
|||
session = self.app.get_session(user)
|
||||
self.assertIs(session, mysession)
|
||||
|
||||
def test_render_date(self):
|
||||
self.assertIsNone(self.app.render_date(None))
|
||||
|
||||
dt = datetime.date(2024, 12, 11)
|
||||
self.assertEqual(self.app.render_date(dt), '2024-12-11')
|
||||
|
||||
def test_render_datetime(self):
|
||||
self.assertIsNone(self.app.render_datetime(None))
|
||||
|
||||
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')
|
||||
|
||||
def test_get_person(self):
|
||||
people = self.app.get_people_handler()
|
||||
with patch.object(people, 'get_person') as get_person:
|
||||
|
|
Loading…
Reference in a new issue