Feat: Add quetiapine support to medication tracking
- Implement migration script to add quetiapine and quetiapine_doses columns to existing CSV data. - Update DataManager to include quetiapine and quetiapine_doses in data handling. - Modify MedTrackerApp to manage quetiapine entries and doses. - Enhance UIManager to include quetiapine in the user interface for medication selection and display. - Update tests to cover new quetiapine functionality, including sample data and DataManager tests.
This commit is contained in:
@@ -40,7 +40,8 @@ class TestDataManager:
|
||||
expected_headers = [
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses", "note"
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
]
|
||||
assert headers == expected_headers
|
||||
|
||||
@@ -78,7 +79,9 @@ class TestDataManager:
|
||||
# Write headers first
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
# Write sample data
|
||||
writer.writerows(sample_data)
|
||||
@@ -90,7 +93,9 @@ class TestDataManager:
|
||||
assert len(df) == 3
|
||||
assert list(df.columns) == [
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
]
|
||||
# Check data types
|
||||
assert df["depression"].dtype == int
|
||||
@@ -101,16 +106,18 @@ class TestDataManager:
|
||||
"""Test that loaded data is sorted by date."""
|
||||
# Write data in random order
|
||||
unsorted_data = [
|
||||
["2024-01-03", 1, 1, 1, 1, 1, 1, 1, 1, "third"],
|
||||
["2024-01-01", 2, 2, 2, 2, 2, 2, 2, 2, "first"],
|
||||
["2024-01-02", 3, 3, 3, 3, 3, 3, 3, 3, "second"],
|
||||
["2024-01-03", 1, 1, 1, 1, 1, "", 1, "", 1, "", 1, "", 0, "", "third"],
|
||||
["2024-01-01", 2, 2, 2, 2, 2, "", 2, "", 2, "", 2, "", 1, "", "first"],
|
||||
["2024-01-02", 3, 3, 3, 3, 3, "", 3, "", 3, "", 3, "", 0, "", "second"],
|
||||
]
|
||||
|
||||
with open(temp_csv_file, 'w', newline='') as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(unsorted_data)
|
||||
|
||||
@@ -143,13 +150,15 @@ class TestDataManager:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(sample_data)
|
||||
|
||||
dm = DataManager(temp_csv_file, mock_logger)
|
||||
# Try to add entry with existing date
|
||||
duplicate_entry = ["2024-01-01", 5, 5, 5, 5, 1, 1, 1, 1, "Duplicate"]
|
||||
duplicate_entry = ["2024-01-01", 5, 5, 5, 5, 1, "", 1, "", 1, "", 1, "", 0, "", "Duplicate"]
|
||||
|
||||
result = dm.add_entry(duplicate_entry)
|
||||
assert result is False
|
||||
@@ -162,12 +171,14 @@ class TestDataManager:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(sample_data)
|
||||
|
||||
dm = DataManager(temp_csv_file, mock_logger)
|
||||
updated_values = ["2024-01-01", 5, 5, 5, 5, 2, 2, 2, 2, "Updated note"]
|
||||
updated_values = ["2024-01-01", 5, 5, 5, 5, 2, "", 2, "", 2, "", 2, "", 1, "", "Updated note"]
|
||||
|
||||
result = dm.update_entry("2024-01-01", updated_values)
|
||||
assert result is True
|
||||
@@ -185,12 +196,14 @@ class TestDataManager:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(sample_data)
|
||||
|
||||
dm = DataManager(temp_csv_file, mock_logger)
|
||||
updated_values = ["2024-01-05", 5, 5, 5, 5, 2, 2, 2, 2, "Updated note"]
|
||||
updated_values = ["2024-01-05", 5, 5, 5, 5, 2, "", 2, "", 2, "", 2, "", 1, "", "Updated note"]
|
||||
|
||||
result = dm.update_entry("2024-01-01", updated_values)
|
||||
assert result is True
|
||||
@@ -207,13 +220,15 @@ class TestDataManager:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(sample_data)
|
||||
|
||||
dm = DataManager(temp_csv_file, mock_logger)
|
||||
# Try to change date to one that already exists
|
||||
updated_values = ["2024-01-02", 5, 5, 5, 5, 2, 2, 2, 2, "Updated note"]
|
||||
updated_values = ["2024-01-02", 5, 5, 5, 5, 2, "", 2, "", 2, "", 2, "", 1, "", "Updated note"]
|
||||
|
||||
result = dm.update_entry("2024-01-01", updated_values)
|
||||
assert result is False
|
||||
@@ -228,7 +243,9 @@ class TestDataManager:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(sample_data)
|
||||
|
||||
@@ -249,7 +266,9 @@ class TestDataManager:
|
||||
writer = csv.writer(f)
|
||||
writer.writerow([
|
||||
"date", "depression", "anxiety", "sleep", "appetite",
|
||||
"bupropion", "hydroxyzine", "gabapentin", "propranolol", "note"
|
||||
"bupropion", "bupropion_doses", "hydroxyzine", "hydroxyzine_doses",
|
||||
"gabapentin", "gabapentin_doses", "propranolol", "propranolol_doses",
|
||||
"quetiapine", "quetiapine_doses", "note"
|
||||
])
|
||||
writer.writerows(sample_data)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user