mirror of
https://github.com/bec-project/bec_widgets.git
synced 2025-07-14 03:31:50 +02:00
test(color): validation tests added
This commit is contained in:
60
tests/unit_tests/test_color_validation.py
Normal file
60
tests/unit_tests/test_color_validation.py
Normal file
@ -0,0 +1,60 @@
|
||||
import pytest
|
||||
from pydantic import ValidationError
|
||||
|
||||
from bec_widgets.utils import Colors
|
||||
from bec_widgets.widgets.figure.plots.waveform.waveform_curve import CurveConfig
|
||||
|
||||
|
||||
def test_color_validation_CSS():
|
||||
# Test valid color
|
||||
color = Colors.validate_color("teal")
|
||||
assert color == "teal"
|
||||
|
||||
# Test invalid color
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
CurveConfig(color="invalid_color")
|
||||
|
||||
errors = excinfo.value.errors()
|
||||
assert len(errors) == 1
|
||||
assert errors[0]["type"] == ("unsupported color")
|
||||
assert "The color must be a valid HEX string or CSS Color." in str(excinfo.value)
|
||||
|
||||
|
||||
def test_color_validation_hex():
|
||||
# Test valid color
|
||||
color = Colors.validate_color("#ff0000")
|
||||
assert color == "#ff0000"
|
||||
|
||||
# Test invalid color
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
CurveConfig(color="#ff00000")
|
||||
|
||||
errors = excinfo.value.errors()
|
||||
assert len(errors) == 1
|
||||
assert errors[0]["type"] == ("unsupported color")
|
||||
assert "The color must be a valid HEX string or CSS Color." in str(excinfo.value)
|
||||
|
||||
|
||||
def test_color_validation_RGBA():
|
||||
# Test valid color
|
||||
color = Colors.validate_color((255, 0, 0, 255))
|
||||
assert color == (255, 0, 0, 255)
|
||||
|
||||
# Test invalid color
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
CurveConfig(color=(255, 0, 0))
|
||||
|
||||
errors = excinfo.value.errors()
|
||||
assert len(errors) == 1
|
||||
assert errors[0]["type"] == ("unsupported color")
|
||||
assert "The color must be a tuple of 4 elements (R, G, B, A)." in str(excinfo.value)
|
||||
|
||||
with pytest.raises(ValidationError) as excinfo:
|
||||
CurveConfig(color=(255, 0, 0, 355))
|
||||
|
||||
errors = excinfo.value.errors()
|
||||
assert len(errors) == 1
|
||||
assert errors[0]["type"] == ("unsupported color")
|
||||
assert "The color values must be between 0 and 255 in RGBA format (R,G,B,A)" in str(
|
||||
excinfo.value
|
||||
)
|
Reference in New Issue
Block a user