Remove Tx model
There was a split between a transaction request and an actual transaction. This was kind of annoying because transactions were one-way only, while transaction requests were two-way - which is what I believe most transactions will be using. Tx model has been removed and the responsibilities of it are covered by TxRequest. It simplifies everything surrounding transactions, since we have only one model to deal with instead of two. Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
@@ -1,38 +1,8 @@
|
||||
from django.test import TestCase
|
||||
from trading.models import User, Commodity, Tx, TxRequest, BalanceError
|
||||
from trading.models import User, Commodity, TxRequest, 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")
|
||||
|
||||
# Create test commodity
|
||||
commodity = Commodity(created_by=user1, in_circulation=1000, name="commodity")
|
||||
commodity.save()
|
||||
|
||||
# Confirm balances
|
||||
self.assertEqual(user1.balances(), {commodity: 1000})
|
||||
self.assertEqual(user1.balance_of(commodity), 1000)
|
||||
self.assertEqual(user2.balances(), {})
|
||||
self.assertEqual(user2.balance_of(commodity), 0)
|
||||
|
||||
# Create transaction
|
||||
Tx(source=user1, dest=user2, amount=100, commodity=commodity).save()
|
||||
|
||||
# Confirm balances
|
||||
self.assertEqual(user1.balances(), {commodity: 900})
|
||||
self.assertEqual(user2.balances(), {commodity: 100})
|
||||
|
||||
# Ensure we can't trade when there's missing balance
|
||||
with self.assertRaises(BalanceError):
|
||||
Tx(source=user2, dest=user1, amount=1000, commodity=commodity).save()
|
||||
|
||||
# Confirm balances
|
||||
self.assertEqual(user1.balances(), {commodity: 900})
|
||||
self.assertEqual(user2.balances(), {commodity: 100})
|
||||
|
||||
def test_tx_requests(self):
|
||||
# Create users
|
||||
user1 = User.objects.create_user(username="test1", email="test1@test.test")
|
||||
|
||||
Reference in New Issue
Block a user