Spaces:
Running
on
Zero
Running
on
Zero
"""Tests for feature flags functionality.""" | |
from comfy_api.feature_flags import ( | |
get_connection_feature, | |
supports_feature, | |
get_server_features, | |
SERVER_FEATURE_FLAGS, | |
) | |
class TestFeatureFlags: | |
"""Test suite for feature flags functions.""" | |
def test_get_server_features_returns_copy(self): | |
"""Test that get_server_features returns a copy of the server flags.""" | |
features = get_server_features() | |
# Verify it's a copy by modifying it | |
features["test_flag"] = True | |
# Original should be unchanged | |
assert "test_flag" not in SERVER_FEATURE_FLAGS | |
def test_get_server_features_contains_expected_flags(self): | |
"""Test that server features contain expected flags.""" | |
features = get_server_features() | |
assert "supports_preview_metadata" in features | |
assert features["supports_preview_metadata"] is True | |
assert "max_upload_size" in features | |
assert isinstance(features["max_upload_size"], (int, float)) | |
def test_get_connection_feature_with_missing_sid(self): | |
"""Test getting feature for non-existent session ID.""" | |
sockets_metadata = {} | |
result = get_connection_feature(sockets_metadata, "missing_sid", "some_feature") | |
assert result is False # Default value | |
def test_get_connection_feature_with_custom_default(self): | |
"""Test getting feature with custom default value.""" | |
sockets_metadata = {} | |
result = get_connection_feature( | |
sockets_metadata, "missing_sid", "some_feature", default="custom_default" | |
) | |
assert result == "custom_default" | |
def test_get_connection_feature_with_feature_flags(self): | |
"""Test getting feature from connection with feature flags.""" | |
sockets_metadata = { | |
"sid1": { | |
"feature_flags": { | |
"supports_preview_metadata": True, | |
"custom_feature": "value", | |
}, | |
} | |
} | |
result = get_connection_feature(sockets_metadata, "sid1", "supports_preview_metadata") | |
assert result is True | |
result = get_connection_feature(sockets_metadata, "sid1", "custom_feature") | |
assert result == "value" | |
def test_get_connection_feature_missing_feature(self): | |
"""Test getting non-existent feature from connection.""" | |
sockets_metadata = { | |
"sid1": {"feature_flags": {"existing_feature": True}} | |
} | |
result = get_connection_feature(sockets_metadata, "sid1", "missing_feature") | |
assert result is False | |
def test_supports_feature_returns_boolean(self): | |
"""Test that supports_feature always returns boolean.""" | |
sockets_metadata = { | |
"sid1": { | |
"feature_flags": { | |
"bool_feature": True, | |
"string_feature": "value", | |
"none_feature": None, | |
}, | |
} | |
} | |
# True boolean feature | |
assert supports_feature(sockets_metadata, "sid1", "bool_feature") is True | |
# Non-boolean values should return False | |
assert supports_feature(sockets_metadata, "sid1", "string_feature") is False | |
assert supports_feature(sockets_metadata, "sid1", "none_feature") is False | |
assert supports_feature(sockets_metadata, "sid1", "missing_feature") is False | |
def test_supports_feature_with_missing_connection(self): | |
"""Test supports_feature with missing connection.""" | |
sockets_metadata = {} | |
assert supports_feature(sockets_metadata, "missing_sid", "any_feature") is False | |
def test_empty_feature_flags_dict(self): | |
"""Test connection with empty feature flags dictionary.""" | |
sockets_metadata = {"sid1": {"feature_flags": {}}} | |
result = get_connection_feature(sockets_metadata, "sid1", "any_feature") | |
assert result is False | |
assert supports_feature(sockets_metadata, "sid1", "any_feature") is False | |