feat: add comprehensive keyboard shortcuts for improved navigation and productivity
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
Some checks failed
Build and Push Docker Image / build-and-push (push) Has been cancelled
This commit is contained in:
93
scripts/test_keyboard_shortcuts.py
Normal file
93
scripts/test_keyboard_shortcuts.py
Normal file
@@ -0,0 +1,93 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Test script for keyboard shortcuts functionality.
|
||||
This script tests that the keyboard shortcuts are properly bound.
|
||||
"""
|
||||
|
||||
import os
|
||||
import sys
|
||||
import tkinter as tk
|
||||
|
||||
# Add the src directory to the path so we can import the main module
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src"))
|
||||
|
||||
from main import MedTrackerApp
|
||||
|
||||
|
||||
def test_keyboard_shortcuts():
|
||||
"""Test that keyboard shortcuts are properly bound."""
|
||||
print("Testing keyboard shortcuts...")
|
||||
|
||||
# Create a test window
|
||||
root = tk.Tk()
|
||||
root.withdraw() # Hide the window for testing
|
||||
|
||||
try:
|
||||
# Create the app instance
|
||||
app = MedTrackerApp(root)
|
||||
|
||||
# Test that the shortcuts are bound
|
||||
expected_shortcuts = [
|
||||
"<Control-s>",
|
||||
"<Control-S>",
|
||||
"<Control-q>",
|
||||
"<Control-Q>",
|
||||
"<Control-e>",
|
||||
"<Control-E>",
|
||||
"<Control-n>",
|
||||
"<Control-N>",
|
||||
"<Control-r>",
|
||||
"<Control-R>",
|
||||
"<F5>",
|
||||
"<Control-m>",
|
||||
"<Control-M>",
|
||||
"<Control-p>",
|
||||
"<Control-P>",
|
||||
"<Delete>",
|
||||
"<Escape>",
|
||||
"<F1>",
|
||||
]
|
||||
|
||||
# Check if shortcuts are bound
|
||||
bound_shortcuts = []
|
||||
for shortcut in expected_shortcuts:
|
||||
if root.bind(shortcut):
|
||||
bound_shortcuts.append(shortcut)
|
||||
|
||||
print(f"Successfully bound {len(bound_shortcuts)} keyboard shortcuts:")
|
||||
for shortcut in bound_shortcuts:
|
||||
print(f" ✓ {shortcut}")
|
||||
|
||||
# Test that methods exist
|
||||
methods_to_test = [
|
||||
"add_new_entry",
|
||||
"handle_window_closing",
|
||||
"_open_export_window",
|
||||
"_clear_entries",
|
||||
"refresh_data_display",
|
||||
"_open_medicine_manager",
|
||||
"_open_pathology_manager",
|
||||
"_delete_selected_entry",
|
||||
"_clear_selection",
|
||||
"_show_keyboard_shortcuts",
|
||||
]
|
||||
|
||||
for method_name in methods_to_test:
|
||||
if hasattr(app, method_name):
|
||||
print(f" ✓ Method {method_name} exists")
|
||||
else:
|
||||
print(f" ✗ Method {method_name} missing")
|
||||
|
||||
print("\n✅ Keyboard shortcuts test completed successfully!")
|
||||
return True
|
||||
|
||||
except Exception as e:
|
||||
print(f"❌ Error during testing: {e}")
|
||||
return False
|
||||
finally:
|
||||
root.destroy()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = test_keyboard_shortcuts()
|
||||
sys.exit(0 if success else 1)
|
||||
Reference in New Issue
Block a user