diff --git a/homeassistant/components/python_script.py b/homeassistant/components/python_script.py index 85f12a18afd..a56b40f3064 100644 --- a/homeassistant/components/python_script.py +++ b/homeassistant/components/python_script.py @@ -202,4 +202,11 @@ class TimeWrapper: def __getattr__(self, attr): """Fetch an attribute from Time module.""" - return getattr(time, attr) + attribute = getattr(time, attr) + if callable(attribute): + def wrapper(*args, **kw): + """Wrapper to return callable method if callable.""" + return attribute(*args, **kw) + return wrapper + else: + return attribute diff --git a/tests/components/test_python_script.py b/tests/components/test_python_script.py index 8a7f94d7dcd..c0b7df158c5 100644 --- a/tests/components/test_python_script.py +++ b/tests/components/test_python_script.py @@ -236,6 +236,8 @@ def test_exposed_modules(hass, caplog): caplog.set_level(logging.ERROR) source = """ hass.states.set('module.time', time.strftime('%Y', time.gmtime(521276400))) +hass.states.set('module.time_strptime', + time.strftime('%H:%M', time.strptime('12:34', '%H:%M'))) hass.states.set('module.datetime', datetime.timedelta(minutes=1).total_seconds()) """ @@ -244,6 +246,7 @@ hass.states.set('module.datetime', yield from hass.async_block_till_done() assert hass.states.is_state('module.time', '1986') + assert hass.states.is_state('module.time_strptime', '12:34') assert hass.states.is_state('module.datetime', '60.0') # No errors logged = good