86 lines
3.0 KiB
Python
86 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
Simple test to trace button creation without running full TUI
|
||
"""
|
||
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
# Add analyzer to path
|
||
sys.path.insert(0, str(Path(__file__).parent))
|
||
|
||
from analyzer.tui.textual.widgets.filtered_flow_view import FilteredFlowView
|
||
from analyzer.analysis.core import EthernetAnalyzer
|
||
|
||
def test_button_creation():
|
||
"""Test button creation step by step"""
|
||
print("🧪 Testing Button Creation Step-by-Step")
|
||
print("=" * 50)
|
||
|
||
# Create analyzer
|
||
print("1. Creating analyzer...")
|
||
analyzer = EthernetAnalyzer()
|
||
|
||
# Create FilteredFlowView
|
||
print("2. Creating FilteredFlowView...")
|
||
try:
|
||
view = FilteredFlowView(analyzer)
|
||
print(" ✅ FilteredFlowView created successfully")
|
||
print(f" ✅ Initial buttons dict: {len(view.frame_type_buttons)} entries")
|
||
for name, btn in view.frame_type_buttons.items():
|
||
print(f" - {name}: {btn}")
|
||
except Exception as e:
|
||
print(f" ❌ Failed to create FilteredFlowView: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
return False
|
||
|
||
# Test predefined frame types
|
||
print("3. Checking predefined frame types...")
|
||
print(f" ✅ Predefined types: {view.predefined_frame_types}")
|
||
|
||
# Test compose method (this is where buttons should be created)
|
||
print("4. Testing compose method...")
|
||
try:
|
||
# This would normally be called by Textual, but we can't easily test it
|
||
# without the full TUI framework
|
||
print(" ⚠️ Compose method can't be tested without TUI framework")
|
||
print(" ℹ️ This is where buttons should be created during widget composition")
|
||
except Exception as e:
|
||
print(f" ❌ Compose method failed: {e}")
|
||
|
||
# Test refresh_frame_types
|
||
print("5. Testing refresh_frame_types...")
|
||
try:
|
||
# This should be safe to call even without TUI
|
||
view.refresh_frame_types()
|
||
print(" ✅ refresh_frame_types completed without error")
|
||
except Exception as e:
|
||
print(f" ❌ refresh_frame_types failed: {e}")
|
||
import traceback
|
||
traceback.print_exc()
|
||
|
||
return True
|
||
|
||
def main():
|
||
print("🔍 Simple Debug Test for Button Issues")
|
||
print("This test checks button creation logic without running the full TUI")
|
||
print("=" * 60)
|
||
|
||
success = test_button_creation()
|
||
|
||
if success:
|
||
print("\n✅ Basic components created successfully")
|
||
print("\n🎯 Key Findings:")
|
||
print(" • FilteredFlowView can be instantiated")
|
||
print(" • Predefined frame types are configured")
|
||
print(" • refresh_frame_types can be called")
|
||
print("\n💡 Next Steps:")
|
||
print(" • The issue likely occurs during compose() or on_mount()")
|
||
print(" • These methods interact with the Textual widget system")
|
||
print(" • Need to debug within the running TUI app")
|
||
else:
|
||
print("\n❌ Issues found in basic component creation")
|
||
|
||
if __name__ == "__main__":
|
||
main() |