def test_balance_deposit(self): get_or_create_balance(self.user) self.assertTrue(self.user.balance.deposit(100)) self.assertEqual(self.user.balance.get_balance(), 100) self.assertTrue(self.user.balance.deposit(-50)) self.assertEqual(self.user.balance.get_balance(), 50) self.assertTrue(self.user.balance.withdraw(50)) self.assertEqual(self.user.balance.get_balance(), 0)
def test_transactions(self): get_or_create_balance(self.user) Transaction.objects.create(user=self.user, amount=100.0) self.assertTrue(self.user.balance.get_balance(), 100.0) Transaction.objects.create(user=self.user, amount=-100.0) self.assertEqual(self.user.balance.get_balance(), 0.0) self.assertEqual(self.user.transaction_set.count(), 2)
def test_validate_users_funds_one_unsufficient(self): user_sufficient = G(User) user_unsufficient = G(User) get_or_create_balance(user_sufficient).deposit(50) unsufficient_funds_users = validate_users_funds([user_sufficient, user_unsufficient], 25) self.assertEquals([user_unsufficient], unsufficient_funds_users, "Got %s, expected %s." % (unsufficient_funds_users, [user_unsufficient]))
def test_validate_users_funds_one_unsufficient(self): user_sufficient = G(User) user_unsufficient = G(User) get_or_create_balance(user_sufficient).deposit(50) unsufficient_funds_users = validate_users_funds( [user_sufficient, user_unsufficient], 25) self.assertEquals([user_unsufficient], unsufficient_funds_users, "Got %s, expected %s." % (unsufficient_funds_users, [user_unsufficient]))
def test_validate_user_funds(self): get_or_create_balance(self.user) self.user.balance.deposit(100) self.user.balance.save() self.assertTrue(validate_user_funds(self.user, 99), 'Should evaluate to True when user.balance >= funds.') self.assertTrue(validate_user_funds(self.user, 100), 'Should evaluate to True when user.balance >= funds.') self.assertFalse(validate_user_funds(self.user, 101), 'User does not have enough funds')
def test_get_user_balance(self): balance = Balance.objects.get(user=self.user) goc_balance = get_or_create_balance(self.user) self.assertEquals(self.user, balance.user, 'User should match balance.user') self.assertEquals( self.user, goc_balance.user, 'User should match balance_user from get_or_create()')
def order(request, group=None): group = get_object_or_404(Group, name=group) active_order = get_order(group) context = {} context['api_url'] = '/feedme-api/' context['balance'] = get_or_create_balance(request.user) context['order'] = active_order context['user'] = request.user if not active_order: return render(request, 'feedme/404.html', context) return render(request, 'feedme/react/index.html', context)
def test_transaction_validation_on_validation_disabled(self): get_or_create_balance(self.user) self.assertEqual(self.user.balance.get_balance(), 0) self.assertTrue(self.user, 100)
def test_negative_transactions(self): # It is expected that people CAN go below zero! get_or_create_balance(self.user) Transaction.objects.create(user=self.user, amount=-1) self.assertEqual(self.user.balance.get_balance(), -1.0)
def test_get_user_balance(self): balance = Balance.objects.get(user=self.user) goc_balance = get_or_create_balance(self.user) self.assertEquals(self.user, balance.user, 'User should match balance.user') self.assertEquals(self.user, goc_balance.user, 'User should match balance_user from get_or_create()')