31 lines
1.1 KiB
Python
31 lines
1.1 KiB
Python
import pytest
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
from slic.utils.trinary import *
|
|
|
|
def test_check_trinary_valid_values():
|
|
# These calls should not raise any exception and return None
|
|
assert check_trinary(True) is None
|
|
assert check_trinary(False) is None
|
|
assert check_trinary(None) is None
|
|
assert check_trinary(0) is None
|
|
assert check_trinary(1) is None
|
|
|
|
def test_check_trinary_invalid_value():
|
|
# These values are not allowed and should raise ValueError
|
|
with pytest.raises(ValueError, match=r"Trinary .+ not in"):
|
|
check_trinary("yes")
|
|
|
|
with pytest.raises(ValueError):
|
|
check_trinary([])
|
|
|
|
def test_check_trinary_with_custom_allowed_values():
|
|
# Valid custom values should pass without error
|
|
assert check_trinary("maybe", allowed_values=("yes", "no", "maybe")) is None
|
|
assert check_trinary("yes", allowed_values=("yes", "no", "maybe")) is None
|
|
|
|
# Invalid custom value should raise ValueError
|
|
with pytest.raises(ValueError):
|
|
check_trinary("never", allowed_values=("yes", "no", "maybe"))
|