Spaces:
Running
on
Zero
Running
on
Zero
"""Simplified tests for WebSocket feature flags functionality.""" | |
from comfy_api import feature_flags | |
class TestWebSocketFeatureFlags: | |
"""Test suite for WebSocket feature flags integration.""" | |
def test_server_feature_flags_response(self): | |
"""Test server feature flags are properly formatted.""" | |
features = feature_flags.get_server_features() | |
# Check expected 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_progress_py_checks_feature_flags(self): | |
"""Test that progress.py checks feature flags before sending metadata.""" | |
# This simulates the check in progress.py | |
client_id = "test_client" | |
sockets_metadata = {"test_client": {"feature_flags": {}}} | |
# The actual check would be in progress.py | |
supports_metadata = feature_flags.supports_feature( | |
sockets_metadata, client_id, "supports_preview_metadata" | |
) | |
assert supports_metadata is False | |
def test_multiple_clients_different_features(self): | |
"""Test handling multiple clients with different feature support.""" | |
sockets_metadata = { | |
"modern_client": { | |
"feature_flags": {"supports_preview_metadata": True} | |
}, | |
"legacy_client": { | |
"feature_flags": {} | |
} | |
} | |
# Check modern client | |
assert feature_flags.supports_feature( | |
sockets_metadata, "modern_client", "supports_preview_metadata" | |
) is True | |
# Check legacy client | |
assert feature_flags.supports_feature( | |
sockets_metadata, "legacy_client", "supports_preview_metadata" | |
) is False | |
def test_feature_negotiation_message_format(self): | |
"""Test the format of feature negotiation messages.""" | |
# Client message format | |
client_message = { | |
"type": "feature_flags", | |
"data": { | |
"supports_preview_metadata": True, | |
"api_version": "1.0.0" | |
} | |
} | |
# Verify structure | |
assert client_message["type"] == "feature_flags" | |
assert "supports_preview_metadata" in client_message["data"] | |
# Server response format (what would be sent) | |
server_features = feature_flags.get_server_features() | |
server_message = { | |
"type": "feature_flags", | |
"data": server_features | |
} | |
# Verify structure | |
assert server_message["type"] == "feature_flags" | |
assert "supports_preview_metadata" in server_message["data"] | |
assert server_message["data"]["supports_preview_metadata"] is True | |