From 151c730cbf2c7f57bc7b8ae4716c20e1f2afc864 Mon Sep 17 00:00:00 2001 From: Patrik Date: Sat, 28 Oct 2017 18:46:38 +0200 Subject: [PATCH] Fixing device.py so that Travis doesn't fail and added test for set_predefined_color (#80) * Add logging and fix bug in set_predefined_color * Add test of set_predefined_color * Bump version to prepare for new release --- pytradfri/device.py | 8 +++++--- setup.py | 2 +- tests/test_light.py | 10 ++++++++++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/pytradfri/device.py b/pytradfri/device.py index 61b1046a..cae46ab6 100644 --- a/pytradfri/device.py +++ b/pytradfri/device.py @@ -20,6 +20,9 @@ xy_brightness_to_rgb, COLORS, MIN_KELVIN, MAX_KELVIN,\ MIN_KELVIN_WS, MAX_KELVIN_WS from .resource import ApiResource +import logging + +_LOGGER = logging.getLogger(__name__) class Device(ApiResource): @@ -216,10 +219,9 @@ def set_kelvin_color(self, kelvins, *, index=0): def set_predefined_color(self, colorname, *, index=0): try: color = COLORS[colorname.lower().replace(" ", "_")] - except: - pass - else: return self.set_hex_color(color, index=index) + except KeyError: + _LOGGER.debug('Could not match color name') def set_rgb_color(self, r, g, b, *, index=0): return self.set_values(rgb_to_xyY(r, g, b), index=index) diff --git a/setup.py b/setup.py index 99f4398d..0db0993c 100644 --- a/setup.py +++ b/setup.py @@ -1,6 +1,6 @@ from setuptools import setup, find_packages -VERSION = "3.0.3" +VERSION = "3.0.4" DOWNLOAD_URL = \ 'https://github.com/ggravlingen/pytradfri/archive/{}.zip'.format(VERSION) diff --git a/tests/test_light.py b/tests/test_light.py index c4e15762..3d83e965 100644 --- a/tests/test_light.py +++ b/tests/test_light.py @@ -227,3 +227,13 @@ def test_color_device_control(): assert light_control.can_set_kelvin assert light_control.min_kelvin == 1667 assert light_control.max_kelvin == 25000 + + +def test_setters(): + cmd = Device(LIGHT_CWS).light_control \ + .set_predefined_color('Warm glow') + assert cmd.data == {'3311': [{'5706': 'efd275'}]} + + cmd = Device(LIGHT_CWS).light_control \ + .set_predefined_color('Ggravlingen') + assert hasattr(cmd, 'data') is False