Tests and helpers
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import unittest
|
||||
from core.transaction import Transaction
|
||||
|
||||
|
||||
class TestTransaction(unittest.TestCase):
|
||||
def test_transaction_initialization_with_timestamp(self):
|
||||
timestamp = "2026-06-02T15:00:00.000000"
|
||||
t = Transaction("tx_1", "user_1", "item_1", 2.50, timestamp)
|
||||
self.assertEqual(t.id, "tx_1")
|
||||
self.assertEqual(t.user_id, "user_1")
|
||||
self.assertEqual(t.item_id, "item_1")
|
||||
self.assertEqual(t.amount, 2.50)
|
||||
self.assertEqual(t.timestamp, timestamp)
|
||||
|
||||
def test_transaction_auto_timestamp(self):
|
||||
t = Transaction("tx_2", "user_2", "item_2", 1.50)
|
||||
self.assertIsNotNone(t.timestamp)
|
||||
# Check if timestamp format is valid ISO string (at least parses or contains dates)
|
||||
self.assertIn("-", t.timestamp)
|
||||
self.assertIn("T", t.timestamp)
|
||||
|
||||
def test_to_json(self):
|
||||
timestamp = "2026-06-02T15:00:00"
|
||||
t = Transaction("tx_1", "user_1", "item_1", 2.50, timestamp)
|
||||
expected = {
|
||||
"id": "tx_1",
|
||||
"user_id": "user_1",
|
||||
"item_id": "item_1",
|
||||
"amount": 2.50,
|
||||
"timestamp": timestamp,
|
||||
}
|
||||
self.assertEqual(t.to_json(), expected)
|
||||
|
||||
def test_from_json(self):
|
||||
data = {
|
||||
"id": "tx_1",
|
||||
"user_id": "user_1",
|
||||
"item_id": "item_1",
|
||||
"amount": 2.50,
|
||||
"timestamp": "2026-06-02T15:00:00",
|
||||
}
|
||||
t = Transaction.from_json(data)
|
||||
self.assertEqual(t.id, "tx_1")
|
||||
self.assertEqual(t.user_id, "user_1")
|
||||
self.assertEqual(t.item_id, "item_1")
|
||||
self.assertEqual(t.amount, 2.50)
|
||||
self.assertEqual(t.timestamp, "2026-06-02T15:00:00")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user