From cc346e57e608afd6af42f4c7da52ee6065fb7b24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Arnauts?= Date: Tue, 26 Nov 2019 03:01:24 +0100 Subject: [PATCH] Cast the volume_level of a universal media_player to a float (#29045) * Make sure to cast the volume_level of a universal media_player to a float * Fix test that expects the wrong bahaviour * Catch exception instead of checking for None --- homeassistant/components/universal/media_player.py | 5 ++++- tests/components/universal/test_media_player.py | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/universal/media_player.py b/homeassistant/components/universal/media_player.py index 09771b551ac..63e3ff7448d 100644 --- a/homeassistant/components/universal/media_player.py +++ b/homeassistant/components/universal/media_player.py @@ -255,7 +255,10 @@ class UniversalMediaPlayer(MediaPlayerDevice): @property def volume_level(self): """Volume level of entity specified in attributes or active child.""" - return self._override_or_child_attr(ATTR_MEDIA_VOLUME_LEVEL) + try: + return float(self._override_or_child_attr(ATTR_MEDIA_VOLUME_LEVEL)) + except (TypeError, ValueError): + return None @property def is_volume_muted(self): diff --git a/tests/components/universal/test_media_player.py b/tests/components/universal/test_media_player.py index 67d826f576b..22ec96c3a21 100644 --- a/tests/components/universal/test_media_player.py +++ b/tests/components/universal/test_media_player.py @@ -539,10 +539,10 @@ class TestMediaPlayer(unittest.TestCase): ump = universal.UniversalMediaPlayer(self.hass, **config) - assert "0" == ump.volume_level + assert 0 == ump.volume_level self.hass.states.set(self.mock_volume_id, 100) - assert "100" == ump.volume_level + assert 100 == ump.volume_level def test_is_volume_muted_children_and_attr(self): """Test is volume muted property w/ children and attrs."""