125 lines
3.6 KiB
Python
125 lines
3.6 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Final verification test for the fixed multiple dose functionality.
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import tkinter as tk
|
|
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "src"))
|
|
|
|
import logging
|
|
|
|
from ui_manager import UIManager
|
|
|
|
|
|
def final_verification_test():
|
|
"""Final test to verify the multiple dose fix works correctly."""
|
|
print("🎯 Final Multiple Dose Verification")
|
|
print("=" * 40)
|
|
|
|
root = tk.Tk()
|
|
root.title("Final Verification")
|
|
root.geometry("800x600")
|
|
|
|
logger = logging.getLogger("final_test")
|
|
ui_manager = UIManager(root, logger)
|
|
|
|
sample_values = (
|
|
"07/29/2025",
|
|
5,
|
|
3,
|
|
7,
|
|
6,
|
|
1,
|
|
"",
|
|
0,
|
|
"",
|
|
0,
|
|
"",
|
|
0,
|
|
"",
|
|
"Final verification test",
|
|
)
|
|
|
|
save_result = None
|
|
|
|
def capture_save(*args):
|
|
nonlocal save_result
|
|
save_result = args[-1] if len(args) >= 12 else {}
|
|
|
|
print("\n✅ FINAL RESULTS:")
|
|
for med, doses in save_result.items():
|
|
if doses:
|
|
count = len(doses.split("|")) if "|" in doses else 1
|
|
print(f" {med}: {count} dose(s)")
|
|
if count > 1:
|
|
print(f" └─ Multiple doses: {doses}")
|
|
else:
|
|
print(f" └─ Single dose: {doses}")
|
|
else:
|
|
print(f" {med}: No doses")
|
|
|
|
if args and hasattr(args[0], "destroy"):
|
|
args[0].destroy()
|
|
|
|
callbacks = {"save": capture_save, "delete": lambda x: x.destroy()}
|
|
|
|
try:
|
|
edit_window = ui_manager.create_edit_window(sample_values, callbacks)
|
|
edit_window.lift()
|
|
edit_window.focus_force()
|
|
|
|
print("\n📋 FINAL TEST INSTRUCTIONS:")
|
|
print("1. Choose any medicine (e.g., Bupropion)")
|
|
print("2. Enter a dose amount (e.g., '100mg')")
|
|
print("3. Click 'Take [Medicine]' button")
|
|
print("4. Enter another dose amount (e.g., '200mg')")
|
|
print("5. Click 'Take [Medicine]' button again")
|
|
print("6. Enter a third dose amount (e.g., '300mg')")
|
|
print("7. Click 'Take [Medicine]' button a third time")
|
|
print("8. Verify you see THREE doses in the text area")
|
|
print("9. Click 'Save' to see the final results")
|
|
print("\n🎯 The fix should now properly accumulate multiple doses!")
|
|
|
|
edit_window.wait_window()
|
|
|
|
if save_result:
|
|
# Check if any medicine has multiple doses
|
|
multiple_doses_found = False
|
|
for med, doses in save_result.items():
|
|
if doses and "|" in doses:
|
|
count = len(doses.split("|"))
|
|
if count > 1:
|
|
multiple_doses_found = True
|
|
print(f"\n🎉 SUCCESS: {med} has {count} doses saved!")
|
|
break
|
|
|
|
if multiple_doses_found:
|
|
print("\n✅ MULTIPLE DOSE FUNCTIONALITY IS WORKING CORRECTLY!")
|
|
return True
|
|
else:
|
|
print("\n⚠️ Only single doses were tested")
|
|
return True # Still success if save worked
|
|
else:
|
|
print("\n❌ Save was not called")
|
|
return False
|
|
|
|
except Exception as e:
|
|
print(f"❌ Error: {e}")
|
|
return False
|
|
finally:
|
|
root.destroy()
|
|
|
|
|
|
if __name__ == "__main__":
|
|
os.chdir("/home/will/Code/thechart")
|
|
success = final_verification_test()
|
|
|
|
if success:
|
|
print("\n🏆 FINAL VERIFICATION PASSED!")
|
|
print("📝 Multiple dose punch button functionality has been fixed!")
|
|
else:
|
|
print("\n❌ Final verification failed")
|