"""Unit tests for import integrity of renamed/removed symbols."""

import pytest
import sys
from pathlib import Path

# Add src to path for imports
src_path = Path(__file__).parent.parent.parent / "src"
sys.path.insert(0, str(src_path))


def test_has_multiline_text_not_importable():
    """Ensure has_multiline_text was fully removed."""
    with pytest.raises(ImportError, match="cannot import name 'has_multiline_text'"):
        from utils.constants import has_multiline_text


def test_has_text_editor_not_importable():
    """Ensure has_text_editor helper was removed with the multiline feature."""
    with pytest.raises(ImportError, match="cannot import name 'has_text_editor'"):
        from utils.constants import has_text_editor


def test_new_operator_name_imports_from_operators():
    """Test that TEXT_TEXTURE_OT_edit_text (NEW name) can be imported from operators."""
    from src.operators import TEXT_TEXTURE_OT_edit_text
    
    # Verify it's a Blender operator class
    assert hasattr(TEXT_TEXTURE_OT_edit_text, 'bl_idname')
    assert TEXT_TEXTURE_OT_edit_text.bl_idname == 'text_texture.edit_text'


def test_old_operator_name_not_importable():
    """Test that TEXT_TEXTURE_OT_edit_multiline_text (OLD name) is NOT importable."""
    with pytest.raises(ImportError, match="cannot import name 'TEXT_TEXTURE_OT_edit_multiline_text'"):
        from src.operators import TEXT_TEXTURE_OT_edit_multiline_text
