Download tests/utils/cpu_tests/test_import_utils.py from LiangYan3612/guage: direct link, hf CLI and curl.
- Browser
- Download file 3.13 kB
-
https://huggingface.co/LiangYan3612/guage/resolve/main/tests/utils/cpu_tests/test_import_utils.py
- Command line
-
hf download hf://LiangYan3612/guage/tests/utils/cpu_tests/test_import_utils.py
-
curl -L -o test_import_utils.py https://huggingface.co/LiangYan3612/guage/resolve/main/tests/utils/cpu_tests/test_import_utils.py
3.13 kB
| # Copyright 2024 Bytedance Ltd. and/or its affiliates | |
| # | |
| # 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. | |
| import os | |
| import pytest | |
| from verl.utils.import_utils import load_extern_type | |
| # Path to the test module | |
| TEST_MODULE_PATH = os.path.join(os.path.dirname(__file__), "_test_module.py") | |
| def test_load_extern_type_class(): | |
| """Test loading a class from an external file""" | |
| TestClass = load_extern_type(TEST_MODULE_PATH, "TestClass") | |
| # Verify the class was loaded correctly | |
| assert TestClass is not None | |
| assert TestClass.__name__ == "TestClass" | |
| # Test instantiation and functionality | |
| instance = TestClass() | |
| assert instance.value == "default" | |
| # Test with a custom value | |
| custom_instance = TestClass("custom") | |
| assert custom_instance.get_value() == "custom" | |
| def test_load_extern_type_function(): | |
| """Test loading a function from an external file""" | |
| test_function = load_extern_type(TEST_MODULE_PATH, "test_function") | |
| # Verify the function was loaded correctly | |
| assert test_function is not None | |
| assert callable(test_function) | |
| # Test function execution | |
| result = test_function() | |
| assert result == "test_function_result" | |
| def test_load_extern_type_constant(): | |
| """Test loading a constant from an external file""" | |
| constant = load_extern_type(TEST_MODULE_PATH, "TEST_CONSTANT") | |
| # Verify the constant was loaded correctly | |
| assert constant is not None | |
| assert constant == "test_constant_value" | |
| def test_load_extern_type_nonexistent_file(): | |
| """Test behavior when file doesn't exist""" | |
| with pytest.raises(FileNotFoundError): | |
| load_extern_type("/nonexistent/path.py", "SomeType") | |
| def test_load_extern_type_nonexistent_type(): | |
| """Test behavior when type doesn't exist in the file""" | |
| with pytest.raises(AttributeError): | |
| load_extern_type(TEST_MODULE_PATH, "NonExistentType") | |
| def test_load_extern_type_none_path(): | |
| """Test behavior when file path is None""" | |
| result = load_extern_type(None, "SomeType") | |
| assert result is None | |
| def test_load_extern_type_invalid_module(): | |
| """Test behavior when module has syntax errors""" | |
| # Create a temporary file with syntax errors | |
| import tempfile | |
| with tempfile.NamedTemporaryFile(suffix=".py", mode="w+", delete=False) as temp_file: | |
| temp_file.write("This is not valid Python syntax :") | |
| temp_path = temp_file.name | |
| try: | |
| with pytest.raises(RuntimeError): | |
| load_extern_type(temp_path, "SomeType") | |
| finally: | |
| # Clean up the temporary file | |
| if os.path.exists(temp_path): | |
| os.remove(temp_path) | |