26
tests/test_models.py
Normal file
26
tests/test_models.py
Normal file
@@ -0,0 +1,26 @@
|
||||
from django.test import TestCase
|
||||
from trading.models import User, Commodity, Tx, BalanceError
|
||||
|
||||
|
||||
class TestTransactions(TestCase):
|
||||
def test_user_balances(self):
|
||||
# Create users
|
||||
user1 = User.objects.create_user(username="test1", email="test1@test.test")
|
||||
user2 = User.objects.create_user(username="test2", email="test2@test.test")
|
||||
|
||||
commodity = Commodity(created_by=user1, in_circulation=1000, name="commodity")
|
||||
commodity.save()
|
||||
|
||||
self.assertEqual(user1.balances(), {commodity: 1000})
|
||||
self.assertEqual(user2.balances(), {})
|
||||
|
||||
Tx(source=user1, dest=user2, amount=100, commodity=commodity).save()
|
||||
|
||||
self.assertEqual(user1.balances(), {commodity: 900})
|
||||
self.assertEqual(user2.balances(), {commodity: 100})
|
||||
|
||||
with self.assertRaises(BalanceError):
|
||||
Tx(source=user2, dest=user1, amount=1000, commodity=commodity).save()
|
||||
|
||||
self.assertEqual(user1.balances(), {commodity: 900})
|
||||
self.assertEqual(user2.balances(), {commodity: 100})
|
||||
Reference in New Issue
Block a user