# # Copyright 2025 The InfiniFlow Authors. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # """Test cases for get_svr_queue_name and get_svr_queue_names functions in common.settings.""" from common.settings import get_svr_queue_name, get_svr_queue_names class TestGetSvrQueueName: """Test cases for get_svr_queue_name function.""" def test_default_suffix(self): """Test that default suffix is 'common'.""" result = get_svr_queue_name(0) assert result == "te.0.common" def test_priority_zero(self): """Test queue name with priority 0 (low).""" result = get_svr_queue_name(0) assert result == "te.0.common" def test_priority_one(self): """Test queue name with priority 1 (high).""" result = get_svr_queue_name(1) assert result == "te.1.common" def test_explicit_suffix_common(self): """Test with explicit 'common' suffix.""" result = get_svr_queue_name(0, "common") assert result == "te.0.common" def test_suffix_parameter_ignored(self): """Test that suffix parameter is currently ignored (hardcoded to 'common'). Note: The function signature accepts a suffix parameter but currently hardcodes 'common' in the return value. This test documents this behavior. """ # Even with different suffix values, result should be the same result_default = get_svr_queue_name(0, "common") result_resume = get_svr_queue_name(0, "resume") result_graphrag = get_svr_queue_name(0, "graphrag") # All should return the same value since suffix is hardcoded assert result_default == result_resume == result_graphrag == "te.0.common" def test_format_structure(self): """Test that queue name follows expected format: {SVR_QUEUE_NAME}.{priority}.common.""" for priority in [0, 1]: result = get_svr_queue_name(priority) parts = result.split(".") assert len(parts) == 3 assert parts[0] == "te" # SVR_QUEUE_NAME assert parts[1] == str(priority) assert parts[2] == "common" def test_different_priorities_produce_different_results(self): """Test that different priorities produce different queue names.""" result_0 = get_svr_queue_name(0) result_1 = get_svr_queue_name(1) assert result_0 != result_1 assert result_0 == "te.0.common" assert result_1 == "te.1.common" def test_with_various_priority_values(self): """Test with various priority values beyond 0 and 1.""" # Test with other priority values to ensure format is correct for priority in [2, 5, 10, 100]: result = get_svr_queue_name(priority) expected = f"te.{priority}.common" assert result == expected def test_returns_string_type(self): """Test that function returns a string.""" result = get_svr_queue_name(0) assert isinstance(result, str) def test_no_whitespace_issues(self): """Test that queue name has no unexpected whitespace.""" for priority in [0, 1]: result = get_svr_queue_name(priority) assert " " not in result assert "\t" not in result assert "\n" not in result class TestGetSvrQueueNames: """Test cases for get_svr_queue_names function.""" def test_returns_list(self): """Test that function returns a list.""" result = get_svr_queue_names("common") assert isinstance(result, list) def test_returns_two_queues(self): """Test that function returns exactly two queue names.""" result = get_svr_queue_names("common") assert len(result) == 2 def test_sorted_high_to_low(self): """Test that queue names are sorted from high priority to low priority.""" result = get_svr_queue_names("common") assert result[0] == "te.1.common" # High priority first assert result[1] == "te.0.common" # Low priority second def test_expected_values(self): """Test that returned values match expected queue names.""" result = get_svr_queue_names("common") expected = ["te.1.common", "te.0.common"] assert result == expected def test_suffix_parameter_passed_through(self): """Test that suffix parameter is passed to get_svr_queue_name. Note: Since get_svr_queue_name currently hardcodes 'common' as the suffix, different suffix values will still produce the same result. """ # All suffixes should produce same result due to hardcoded suffix in get_svr_queue_name result_common = get_svr_queue_names("common") result_resume = get_svr_queue_names("resume") result_graphrag = get_svr_queue_names("graphrag") expected = ["te.1.common", "te.0.common"] assert result_common == expected assert result_resume == expected # suffix is currently ignored assert result_graphrag == expected # suffix is currently ignored def test_all_elements_are_strings(self): """Test that all elements in the returned list are strings.""" result = get_svr_queue_names("common") for item in result: assert isinstance(item, str) def test_consistent_results(self): """Test that multiple calls return consistent results.""" result1 = get_svr_queue_names("common") result2 = get_svr_queue_names("common") result3 = get_svr_queue_names("common") assert result1 == result2 == result3 def test_with_empty_suffix(self): """Test with empty string suffix.""" result = get_svr_queue_names("") # Should still work since suffix is ignored assert result == ["te.1.common", "te.0.common"] class TestGetSvrQueueNameWithMockedConstant: """Test cases with mocked SVR_QUEUE_NAME constant.""" def test_with_custom_queue_name(self): """Test with a custom SVR_QUEUE_NAME constant.""" # Need to patch where the constant is imported in settings module import common.settings as settings_mod original_value = settings_mod.SVR_QUEUE_NAME try: settings_mod.SVR_QUEUE_NAME = "custom_queue" result = settings_mod.get_svr_queue_name(0) assert result == "custom_queue.0.common" result = settings_mod.get_svr_queue_name(1) assert result == "custom_queue.1.common" finally: settings_mod.SVR_QUEUE_NAME = original_value def test_with_custom_queue_names(self): """Test get_svr_queue_names with a custom SVR_QUEUE_NAME constant.""" import common.settings as settings_mod original_value = settings_mod.SVR_QUEUE_NAME try: settings_mod.SVR_QUEUE_NAME = "custom_queue" result = settings_mod.get_svr_queue_names("common") assert result == ["custom_queue.1.common", "custom_queue.0.common"] finally: settings_mod.SVR_QUEUE_NAME = original_value