diff --git a/tests/test_generator.py b/tests/test_generator.py index e0c7ebc..842cae5 100644 --- a/tests/test_generator.py +++ b/tests/test_generator.py @@ -1009,3 +1009,33 @@ def patched_read_text(self, *args, **kwargs): errors = validate_init_file(init_file) assert len(errors) > 0 assert "Permission denied" in errors[0] + + +def test_has_preserved_definition_function(generator: CodeGenerator): + """Test _has_preserved_definition detects a function.""" + assert generator._has_preserved_definition("def my_func(): pass", "my_func") + assert not generator._has_preserved_definition("def my_func(): pass", "other_func") + +def test_has_preserved_definition_async_function(generator: CodeGenerator): + """Test _has_preserved_definition detects an async function.""" + assert generator._has_preserved_definition("async def my_async_func(): pass", "my_async_func") + +def test_has_preserved_definition_assign(generator: CodeGenerator): + """Test _has_preserved_definition detects a variable assignment.""" + assert generator._has_preserved_definition("my_var = 1", "my_var") + assert generator._has_preserved_definition("my_var = my_other_var = 1", "my_var") + assert generator._has_preserved_definition("my_var = my_other_var = 1", "my_other_var") + +def test_has_preserved_definition_ann_assign(generator: CodeGenerator): + """Test _has_preserved_definition detects an annotated assignment.""" + assert generator._has_preserved_definition("my_var: int = 1", "my_var") + assert not generator._has_preserved_definition("my_var: int = 1", "other_var") + +def test_has_preserved_definition_syntax_error(generator: CodeGenerator): + """Test _has_preserved_definition handles syntax errors gracefully.""" + # Invalid syntax will be suppressed, resulting in False + assert not generator._has_preserved_definition("def my_func(:: pass", "my_func") + +def test_has_preserved_definition_empty(generator: CodeGenerator): + """Test _has_preserved_definition handles empty preserved sections.""" + assert not generator._has_preserved_definition("", "my_func")