Skip to content

Commit e09de76

Browse files
re-introduce unit test for string values of session conf
Signed-off-by: varun-edachali-dbx <[email protected]>
1 parent 3594836 commit e09de76

File tree

1 file changed

+68
-0
lines changed

1 file changed

+68
-0
lines changed

tests/unit/test_sea_backend.py

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -621,6 +621,74 @@ def test_utility_methods(self, sea_client):
621621
assert description[1][1] == "INT" # type_code
622622
assert description[1][6] is False # null_ok
623623

624+
def test_filter_session_configuration_string_values(self):
625+
"""Test that _filter_session_configuration converts all values to strings."""
626+
session_config = {
627+
"ANSI_MODE": True,
628+
"statement_timeout": 3600,
629+
"TIMEZONE": "UTC",
630+
"enable_photon": False,
631+
"MAX_FILE_PARTITION_BYTES": 128.5,
632+
"unsupported_param": "value",
633+
"ANOTHER_UNSUPPORTED": 42,
634+
}
635+
636+
result = _filter_session_configuration(session_config)
637+
638+
# Verify result is not None
639+
assert result is not None
640+
641+
# Verify all returned values are strings
642+
for key, value in result.items():
643+
assert isinstance(
644+
value, str
645+
), f"Value for key '{key}' is not a string: {type(value)}"
646+
647+
# Verify specific conversions
648+
expected_result = {
649+
"ansi_mode": "True", # boolean True -> "True", key lowercased
650+
"statement_timeout": "3600", # int -> "3600", key lowercased
651+
"timezone": "UTC", # string -> "UTC", key lowercased
652+
"enable_photon": "False", # boolean False -> "False", key lowercased
653+
"max_file_partition_bytes": "128.5", # float -> "128.5", key lowercased
654+
}
655+
656+
assert result == expected_result
657+
658+
# Test with None input
659+
assert _filter_session_configuration(None) is None
660+
661+
# Test with empty dict
662+
assert _filter_session_configuration({}) is None
663+
664+
# Test with only unsupported parameters
665+
unsupported_config = {
666+
"unsupported_param1": "value1",
667+
"unsupported_param2": 123,
668+
}
669+
result = _filter_session_configuration(unsupported_config)
670+
assert result == {}
671+
672+
# Test case insensitivity for keys
673+
case_insensitive_config = {
674+
"ansi_mode": "false", # lowercase key
675+
"STATEMENT_TIMEOUT": 7200, # uppercase key
676+
"TiMeZoNe": "America/New_York", # mixed case key
677+
}
678+
result = _filter_session_configuration(case_insensitive_config)
679+
expected_case_result = {
680+
"ansi_mode": "false",
681+
"statement_timeout": "7200",
682+
"timezone": "America/New_York",
683+
}
684+
assert result == expected_case_result
685+
686+
# Verify all values are strings in case insensitive test
687+
for key, value in result.items():
688+
assert isinstance(
689+
value, str
690+
), f"Value for key '{key}' is not a string: {type(value)}"
691+
624692
def test_results_message_to_execute_response_is_staging_operation(self, sea_client):
625693
"""Test that is_staging_operation is correctly set from manifest.is_volume_operation."""
626694
# Test when is_volume_operation is True

0 commit comments

Comments
 (0)