103 lines
3.0 KiB
Python
103 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
"""
|
|
Test the update_entry functionality with notes
|
|
"""
|
|
|
|
import logging
|
|
import os
|
|
import sys
|
|
|
|
# Add src directory to path to import modules
|
|
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src"))
|
|
|
|
from data_manager import DataManager
|
|
from medicine_manager import MedicineManager
|
|
from pathology_manager import PathologyManager
|
|
|
|
|
|
def test_update_entry_with_note():
|
|
"""Test updating an entry with a note"""
|
|
print("Testing update_entry functionality with notes...")
|
|
|
|
# Initialize logger
|
|
logger = logging.getLogger("test")
|
|
logger.setLevel(logging.DEBUG)
|
|
|
|
# Add console handler to see debug output
|
|
handler = logging.StreamHandler()
|
|
handler.setLevel(logging.DEBUG)
|
|
formatter = logging.Formatter("%(levelname)s - %(message)s")
|
|
handler.setFormatter(formatter)
|
|
logger.addHandler(handler)
|
|
|
|
# Initialize managers
|
|
medicine_manager = MedicineManager("medicines.json")
|
|
pathology_manager = PathologyManager("pathologies.json")
|
|
data_manager = DataManager(
|
|
"thechart_data.csv", logger, medicine_manager, pathology_manager
|
|
)
|
|
|
|
# Load current data
|
|
df = data_manager.load_data()
|
|
|
|
if df.empty:
|
|
print("No data found in CSV file")
|
|
return
|
|
|
|
print(f"Found {len(df)} entries in the data file")
|
|
|
|
# Find the most recent entry to test with
|
|
latest_entry = df.iloc[-1].copy()
|
|
original_date = latest_entry["date"]
|
|
|
|
print(f"Testing with entry: {original_date}")
|
|
print(f"Current note: '{latest_entry['note']}'")
|
|
|
|
# Create test values - keep everything the same but change the note
|
|
test_note = "This is a test note to verify saving functionality!"
|
|
|
|
# Build values list (same format as the UI would send)
|
|
values = [original_date] # date
|
|
|
|
# Add pathology values
|
|
pathology_keys = pathology_manager.get_pathology_keys()
|
|
for key in pathology_keys:
|
|
values.append(latest_entry.get(key, 0))
|
|
|
|
# Add medicine values and doses
|
|
medicine_keys = medicine_manager.get_medicine_keys()
|
|
for key in medicine_keys:
|
|
values.append(latest_entry.get(key, 0)) # medicine checkbox
|
|
values.append(latest_entry.get(f"{key}_doses", "")) # medicine doses
|
|
|
|
# Add the test note
|
|
values.append(test_note)
|
|
|
|
print(f"Values to save: {values}")
|
|
print(f"Note in values: '{values[-1]}'")
|
|
|
|
# Test the update
|
|
success = data_manager.update_entry(original_date, values)
|
|
|
|
if success:
|
|
print("Update successful!")
|
|
|
|
# Reload and verify
|
|
df_after = data_manager.load_data()
|
|
updated_entry = df_after[df_after["date"] == original_date].iloc[0]
|
|
|
|
print(f"Note after update: '{updated_entry['note']}'")
|
|
print(f"Note correctly saved: {updated_entry['note'] == test_note}")
|
|
|
|
# Reset the note back to original
|
|
values[-1] = latest_entry["note"]
|
|
data_manager.update_entry(original_date, values)
|
|
print("Reverted note back to original")
|
|
|
|
else:
|
|
print("Update failed!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
test_update_entry_with_note()
|