From 281748ba617495541c6139274edb15c656daa00f Mon Sep 17 00:00:00 2001 From: Darren Burns Date: Fri, 11 Feb 2022 12:13:12 +0000 Subject: [PATCH] Add test for when opacity value is invalid --- src/textual/css/_style_properties.py | 2 +- tests/css/test_styles.py | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/textual/css/_style_properties.py b/src/textual/css/_style_properties.py index 6fba80edd..c8831e3a3 100644 --- a/src/textual/css/_style_properties.py +++ b/src/textual/css/_style_properties.py @@ -814,7 +814,7 @@ class FractionalProperty: if isinstance(value, float): float_value = value - elif isinstance(value, str): + elif isinstance(value, str) and value.endswith("%"): float_value = float(Scalar.parse(value).value) / 100 else: raise StyleTypeError( diff --git a/tests/css/test_styles.py b/tests/css/test_styles.py index 967f27f18..bb4417894 100644 --- a/tests/css/test_styles.py +++ b/tests/css/test_styles.py @@ -2,6 +2,7 @@ import pytest from rich.color import Color from rich.style import Style +from textual.css.errors import StyleTypeError from textual.css.styles import Styles, RenderStyles from textual.dom import DOMNode @@ -147,3 +148,9 @@ def test_opacity_set_then_get(set_value, expected): styles = RenderStyles(DOMNode(), Styles(), Styles()) styles.opacity = set_value assert styles.opacity == expected + + +def test_opacity_set_invalid_type_error(): + styles = RenderStyles(DOMNode(), Styles(), Styles()) + with pytest.raises(StyleTypeError): + styles.opacity = "invalid value"