def getRequestByBID(self, bid): adao = AccountDao() buyer = adao.getBuyerByID(bid) if not buyer: return jsonify(ERROR = 'Buyer Not Found'),404 dao = RequestDAO() requestList = dao.getRequestByBID(bid) resultList = [] for row in requestList: result = self._build_request_dict(row) resultList.append(result) for dict in resultList:#Why? dict['AName'] = AccountHandler().getFNameByID(bid) dict['ALastName'] = AccountHandler().getLNameByID(bid) return jsonify(Requests = resultList)
class TestBlock(unittest.TestCase): def setUp(self): storage_factory = StorageFactory(MemoryStorage) self.account_handler = AccountHandler(storage_factory) self.block_handler = BlockHandler(storage_factory, self.account_handler) self.maxDiff = None def test_balance_after_a_block_added(self): accounts = {} for block in block_subset_h02: self.block_handler.add_block(block) if has_block_balances(block): for address, amount in get_block_balances(block).items(): accounts[address] = amount if has_block_transfers(block): for transfer in get_block_transfers(block): amount = get_amount(transfer) accounts[get_sender(transfer)] -= amount accounts[get_receiver(transfer)] += amount self.assertEqual(self.account_handler.get_balances(), accounts) def test_median_after_a_block_added(self): accounts = {} for block in block_subset_h02: self.block_handler.add_block(block) if has_block_balances(block): for address in get_block_balances(block).keys(): accounts[address] = [] if has_block_transfers(block): for transfer in get_block_transfers(block): amount = get_amount(transfer) accounts[get_sender(transfer)].append(amount * -1) accounts[get_receiver(transfer)].append(amount) medians = self.account_handler.get_medians() for key, value in medians.items(): self.assertEqual(value, statistics.median(accounts[key]))
from handler.account import AccountHandler from handler.block import BlockHandler from storage.factory import StorageFactory from storage.memory import MemoryStorage storage_factory = StorageFactory(MemoryStorage) account_handler = AccountHandler(storage_factory) block_handler = BlockHandler(storage_factory, account_handler) def event_handler(block): block_handler.add_block(block) # some fake ethereum_network = { "listen": lambda fn: fn } ethereum_network.listen(event_handler)
def setUp(self): storage_factory = StorageFactory(MemoryStorage) self.account_handler = AccountHandler(storage_factory) self.block_handler = BlockHandler(storage_factory, self.account_handler) self.maxDiff = None
def findByID(id): if (not request.args): return AccountHandler().getAccountByID(id) return jsonify(Error="Malformed URL"), 404
def setUp(self): storage_factory = StorageFactory(MemoryStorage) account_handler = AccountHandler(storage_factory) self.block_handler = BlockHandler(storage_factory, account_handler)
def accounts(): if (not request.args): return AccountHandler().getAllAccounts() return jsonify(ERROR="Malformed URL"), 404
def getAccountById(id): return AccountHandler().getAccountById(id)
def getAccount(): if request.method == 'GET': return AccountHandler().getAllAccount() elif request.method == 'POST': return AccountHandler().insertAccount(request.get_json())
def setUp(self): self.account_handler = AccountHandler(StorageFactory(MemoryStorage))
class TestAccountHandler(unittest.TestCase): def setUp(self): self.account_handler = AccountHandler(StorageFactory(MemoryStorage)) def test_should_set_balance_when_non_existent(self): self.account_handler.set_balance("bar", 10) def test_should_raise_exception_on_set_balance_when_existent(self): self.account_handler.set_balance("bar", 10) with self.assertRaises(AccountSetBalanceException): self.account_handler.set_balance("bar", 10) def test_should_get_balance_when_existent(self): self.account_handler.set_balance("bar", 10) self.assertEqual(self.account_handler.get_balance("bar"), 10) def test_should_not_get_balance_when_non_existent(self): self.assertEqual(self.account_handler.get_balance("bar"), None) def test_should_properly_transfer_when_enough_funds_available(self): transfer = {"sender": "foo", "receiver": "bar", "amount": 10} self.account_handler.set_balance("foo", 10) self.account_handler.set_balance("bar", 0) self.account_handler.transfer(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 0) self.assertEqual(self.account_handler.get_balance("bar"), 10) def test_should_not_transfer_when_not_enough_funds(self): transfer = {"sender": "foo", "receiver": "bar", "amount": 10} self.account_handler.set_balance("foo", 5) self.account_handler.set_balance("bar", 0) self.account_handler.transfer(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 5) self.assertEqual(self.account_handler.get_balance("bar"), 0) def test_should_get_balances(self): transfer = {"sender": "foo", "receiver": "bar", "amount": 3} self.account_handler.set_balance("foo", 10) self.account_handler.set_balance("bar", 0) self.account_handler.transfer(transfer) balances = self.account_handler.get_balances() self.assertEqual(len(balances.items()), 2) self.assertEqual(balances["foo"], 7) self.assertEqual(balances["bar"], 3) def test_should_get_balance(self): transfer = {"sender": "foo", "receiver": "bar", "amount": 3} self.account_handler.set_balance("foo", 10) self.account_handler.set_balance("bar", 0) self.account_handler.transfer(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 7) self.assertEqual(self.account_handler.get_balance("bar"), 3) def test_should_get_statement(self): transfer = {"sender": "foo", "receiver": "bar", "amount": 3} self.account_handler.set_balance("foo", 10) self.account_handler.set_balance("bar", 0) self.account_handler.transfer(transfer) self.account_handler.transfer(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 4) self.assertEqual(self.account_handler.get_balance("bar"), 6) self.assertEqual(self.account_handler.get_statement("foo"), [transfer, transfer]) self.assertEqual(self.account_handler.get_statement("bar"), [transfer, transfer]) def test_should_revert_a_transfer(self): transfer = {"sender": "foo", "receiver": "bar", "amount": 3} self.account_handler.set_balance("foo", 10) self.account_handler.set_balance("bar", 0) self.account_handler.transfer(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 7) self.assertEqual(self.account_handler.get_balance("bar"), 3) self.account_handler.revert(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 10) self.assertEqual(self.account_handler.get_balance("bar"), 0) def test_should_revert_a_transfer_even_without_enough_funds(self): # the reason this is allowed is that it's only gonna happen given # a chain ov events incoming from new blocks. # after a successfull block revert chain, and the new transfer coming # in the amount value will be correct transfer = {"sender": "foo", "receiver": "bar", "amount": 3} self.account_handler.set_balance("foo", 0) self.account_handler.set_balance("bar", 0) self.account_handler.revert(transfer) self.assertEqual(self.account_handler.get_balance("foo"), 3) self.assertEqual(self.account_handler.get_balance("bar"), -3) def test_should_calculate_median(self): transfers = [ { "sender": "foo", "receiver": "bar", "amount": 1 }, { "sender": "foo", "receiver": "baz", "amount": 2 }, { "sender": "bar", "receiver": "foo", "amount": 3 }, { "sender": "bar", "receiver": "baz", "amount": 4 }, { "sender": "baz", "receiver": "foo", "amount": 5 }, { "sender": "baz", "receiver": "bar", "amount": 6 }, ] foo = [-1, -2, 3, 5] bar = [1, -3, -4, 6] baz = [2, 4, -5, -6] self.account_handler.set_balance("foo", 100) self.account_handler.set_balance("bar", 100) self.account_handler.set_balance("baz", 100) for transfer in transfers: self.account_handler.transfer(transfer) self.assertEqual(self.account_handler.get_median("foo"), statistics.median(foo)) self.assertEqual(self.account_handler.get_median("bar"), statistics.median(bar)) self.assertEqual(self.account_handler.get_median("baz"), statistics.median(baz))