@@ -242,6 +242,17 @@ def test___set_int_type___get_value_with_bool_default___raises_exception(
242242 panel .get_value (value_id , False )
243243
244244
245+ def test___set_string_enum_type___get_value_with_int_enum_default___raises_exception (
246+ fake_panel_channel : grpc .Channel ,
247+ ) -> None :
248+ panel = StreamlitPanel ("my_panel" , "path/to/script" , grpc_channel = fake_panel_channel )
249+ value_id = "test_id"
250+ panel .set_value (value_id , test_types .MyStrEnum .VALUE3 )
251+
252+ with pytest .raises (ValueError ):
253+ panel .get_value (value_id , test_types .MyIntEnum .VALUE10 )
254+
255+
245256@pytest .mark .parametrize (
246257 "value_payload" ,
247258 [
@@ -341,6 +352,53 @@ def test___sequence_of_builtin_type___set_value___gets_same_value(
341352 assert list (received_value ) == list (value_payload ) # type: ignore [call-overload]
342353
343354
355+ def test___set_int_enum_value___get_value___returns_int_enum (
356+ fake_panel_channel : grpc .Channel ,
357+ ) -> None :
358+ panel = StreamlitPanel ("my_panel" , "path/to/script" , grpc_channel = fake_panel_channel )
359+ value_id = "test_id"
360+ enum_value = test_types .MyIntEnum .VALUE20
361+ panel .set_value (value_id , enum_value )
362+
363+ retrieved_value = panel .get_value (value_id , test_types .MyIntEnum .VALUE10 )
364+
365+ assert_type (retrieved_value , test_types .MyIntEnum )
366+ assert retrieved_value is test_types .MyIntEnum .VALUE20
367+ assert retrieved_value .value == enum_value .value
368+ assert retrieved_value .name == enum_value .name
369+
370+
371+ def test___set_string_enum_value___get_value___returns_string_enum (
372+ fake_panel_channel : grpc .Channel ,
373+ ) -> None :
374+ panel = StreamlitPanel ("my_panel" , "path/to/script" , grpc_channel = fake_panel_channel )
375+ value_id = "test_id"
376+ enum_value = test_types .MyStrEnum .VALUE3
377+ panel .set_value (value_id , enum_value )
378+
379+ retrieved_value = panel .get_value (value_id , test_types .MyStrEnum .VALUE1 )
380+
381+ assert_type (retrieved_value , test_types .MyStrEnum )
382+ assert retrieved_value is test_types .MyStrEnum .VALUE3
383+ assert retrieved_value .value == enum_value .value
384+ assert retrieved_value .name == enum_value .name
385+
386+
387+ def test___set_int_flags_value___get_value___returns_int_flags (
388+ fake_panel_channel : grpc .Channel ,
389+ ) -> None :
390+ panel = StreamlitPanel ("my_panel" , "path/to/script" , grpc_channel = fake_panel_channel )
391+ value_id = "test_id"
392+ flags_value = test_types .MyIntFlags .VALUE1 | test_types .MyIntFlags .VALUE4
393+ panel .set_value (value_id , flags_value )
394+
395+ retrieved_value = panel .get_value (value_id , test_types .MyIntFlags .VALUE2 )
396+
397+ assert_type (retrieved_value , test_types .MyIntFlags )
398+ assert retrieved_value == (test_types .MyIntFlags .VALUE1 | test_types .MyIntFlags .VALUE4 )
399+ assert retrieved_value .value == flags_value .value
400+
401+
344402def test___panel___panel_is_running_and_in_memory (
345403 fake_panel_channel : grpc .Channel ,
346404) -> None :
0 commit comments