Tests and helpers

This commit is contained in:
2026-06-02 15:25:32 +02:00
parent faf5d440f3
commit d249c6a013
9 changed files with 372 additions and 121 deletions
+19 -7
View File
@@ -6,7 +6,6 @@ from core.item import Item
import shutil
import os
class TestTracker(unittest.TestCase):
def setUp(self):
self.test_dir = "test_data"
@@ -24,7 +23,6 @@ class TestTracker(unittest.TestCase):
shutil.rmtree(self.test_dir)
def test_adjust_debt_new_user(self):
# Verify adjust_debt does not raise KeyError on uninitialized user debt
res = self.tracker.adjust_debt("test_user", 2.0, "admin123")
self.assertEqual(res["status"], "success")
self.assertEqual(self.tracker.get_user_debt("test_user"), -2.0)
@@ -35,15 +33,12 @@ class TestTracker(unittest.TestCase):
self.assertEqual(self.tracker.get_user_debt("test_user"), 2.50)
self.assertEqual(len(self.tracker.transactions), 1)
def test_default_pin(self):
user = User("new_user", "New User")
self.assertEqual(user.pin, "4242")
def test_add_user(self):
res = self.tracker.add_user("test_user_2", "Test Bob")
self.assertEqual(res["status"], "success")
self.assertEqual(self.tracker.users["test_user_2"].name, "Test Bob")
self.assertEqual(self.tracker.users["test_user_2"].pin, "4242")
def test_remove_user(self):
res = self.tracker.remove_user("test_user")
self.assertEqual(res["status"], "success")
@@ -56,12 +51,26 @@ class TestTracker(unittest.TestCase):
self.assertEqual(self.tracker.users["test_user"].name, "Updated Name")
self.assertEqual(self.tracker.users["test_user"].pin, "9999")
def test_set_user_pin_validation(self):
res = self.tracker.set_user_pin("test_user", "invalid_pin")
self.assertEqual(res["status"], "error")
self.assertEqual(self.tracker.users["test_user"].pin, "4242") # Unchanged
res2 = self.tracker.set_user_pin("test_user", "1234")
self.assertEqual(res2["status"], "success")
self.assertEqual(self.tracker.users["test_user"].pin, "1234")
def test_add_item(self):
res = self.tracker.add_item("new_item", "Donut", 1.80)
self.assertEqual(res["status"], "success")
self.assertEqual(self.tracker.items["new_item"].name, "Donut")
self.assertEqual(self.tracker.items["new_item"].price, 1.80)
def test_add_item_invalid_price(self):
res = self.tracker.add_item("invalid_item", "Cake", "-2.50")
self.assertEqual(res["status"], "error")
self.assertNotIn("invalid_item", self.tracker.items)
def test_remove_item(self):
res = self.tracker.remove_item("test_item")
self.assertEqual(res["status"], "success")
@@ -73,7 +82,10 @@ class TestTracker(unittest.TestCase):
self.assertEqual(self.tracker.items["test_item"].name, "Premium Coffee")
self.assertEqual(self.tracker.items["test_item"].price, 3.20)
def test_edit_item_invalid_price(self):
res = self.tracker.edit_item("test_item", "Premium Coffee", "not_a_number")
self.assertEqual(res["status"], "error")
self.assertEqual(self.tracker.items["test_item"].price, 2.50) # Unchanged
if __name__ == "__main__":
unittest.main()