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 | |