Gemini did alot of things
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
import unittest
|
||||
from core.tracker import Tracker
|
||||
from storage.data_manager import DataManager
|
||||
from core.user import User
|
||||
from core.item import Item
|
||||
import shutil
|
||||
import os
|
||||
|
||||
|
||||
class TestTracker(unittest.TestCase):
|
||||
def setUp(self):
|
||||
self.test_dir = "test_data"
|
||||
self.dm = DataManager(self.test_dir)
|
||||
self.tracker = Tracker(self.dm)
|
||||
|
||||
# Setup dummy user and item
|
||||
self.tracker.users = {"test_user": User("test_user", "Test Alice")}
|
||||
self.tracker.items = {"test_item": Item("test_item", "Test Coffee", 2.50)}
|
||||
self.tracker.debts = {}
|
||||
self.tracker.transactions = []
|
||||
|
||||
def tearDown(self):
|
||||
if os.path.exists(self.test_dir):
|
||||
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)
|
||||
|
||||
def test_add_purchase(self):
|
||||
res = self.tracker.add_purchase("test_user", "test_item")
|
||||
self.assertEqual(res["status"], "success")
|
||||
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")
|
||||
self.assertNotIn("test_user", self.tracker.users)
|
||||
self.assertNotIn("test_user", self.tracker.debts)
|
||||
|
||||
def test_edit_user(self):
|
||||
res = self.tracker.edit_user("test_user", "Updated Name", "9999")
|
||||
self.assertEqual(res["status"], "success")
|
||||
self.assertEqual(self.tracker.users["test_user"].name, "Updated Name")
|
||||
self.assertEqual(self.tracker.users["test_user"].pin, "9999")
|
||||
|
||||
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_remove_item(self):
|
||||
res = self.tracker.remove_item("test_item")
|
||||
self.assertEqual(res["status"], "success")
|
||||
self.assertNotIn("test_item", self.tracker.items)
|
||||
|
||||
def test_edit_item(self):
|
||||
res = self.tracker.edit_item("test_item", "Premium Coffee", 3.20)
|
||||
self.assertEqual(res["status"], "success")
|
||||
self.assertEqual(self.tracker.items["test_item"].name, "Premium Coffee")
|
||||
self.assertEqual(self.tracker.items["test_item"].price, 3.20)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user