core/tests/helpers/test_icon.py

44 lines
1.6 KiB
Python

"""Test Home Assistant icon util methods."""
def test_battery_icon():
"""Test icon generator for battery sensor."""
from homeassistant.helpers.icon import icon_for_battery_level
assert icon_for_battery_level(None, True) == 'mdi:battery-unknown'
assert icon_for_battery_level(None, False) == 'mdi:battery-unknown'
assert icon_for_battery_level(5, True) == 'mdi:battery-outline'
assert icon_for_battery_level(5, False) == 'mdi:battery-alert'
assert icon_for_battery_level(100, True) == 'mdi:battery-charging-100'
assert icon_for_battery_level(100, False) == 'mdi:battery'
iconbase = 'mdi:battery'
for level in range(0, 100, 5):
print('Level: %d. icon: %s, charging: %s'
% (level, icon_for_battery_level(level, False),
icon_for_battery_level(level, True)))
if level <= 10:
postfix_charging = '-outline'
elif level <= 30:
postfix_charging = '-charging-20'
elif level <= 50:
postfix_charging = '-charging-40'
elif level <= 70:
postfix_charging = '-charging-60'
elif level <= 90:
postfix_charging = '-charging-80'
else:
postfix_charging = '-charging-100'
if 5 < level < 95:
postfix = '-{}'.format(int(round(level / 10 - .01)) * 10)
elif level <= 5:
postfix = '-alert'
else:
postfix = ''
assert iconbase + postfix == \
icon_for_battery_level(level, False)
assert iconbase + postfix_charging == \
icon_for_battery_level(level, True)