27 lines
1.0 KiB
Python
27 lines
1.0 KiB
Python
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})
|