コード例 #1
0
ファイル: Blockchain.py プロジェクト: nickyfoster/pychain
    def get_address_balance(self, address):
        balance = 0
        for block in self.chain:
            if block.transactions:
                if len(block.transactions) > 0:
                    for transaction in block.transactions:
                        _transaction = Transaction.from_dict(transaction)
                        if _transaction.from_address == address:
                            balance -= _transaction.amount
                        if _transaction.to_address == address:
                            balance += _transaction.amount

        return balance
コード例 #2
0
    def test_from_dict(self):
        """
        Test Transaction.from_dict constructor
        """
        some_data_list = [
            "12/11/2017", "Some Transaction Description",
            "Some Transaction Description Original with Fancy Chars (*&*^*%&^!@#",
            "20.50", "debit", "Groceries", "Barclaycard", "labels",
            "some notes with stuff 91287312987393 17239812(@*&#!(*&#(!@#@#%&(!*&#"
        ]
        data_map = {
            "date": 0,
            "description": 1,
            "description_original": 2,
            "amount": 3,
            "transaction_type": 4,
            "category": 5,
            "account": 6,
            "labels": 7,
            "notes": 8,
        }
        some_data_dict = {
            "date": some_data_list[0],
            "description": some_data_list[1],
            "description_original": some_data_list[2],
            "amount": some_data_list[3],
            "transaction_type": some_data_list[4],
            "category": some_data_list[5],
            "account": some_data_list[6],
            "labels": some_data_list[7],
            "notes": some_data_list[8],
        }

        some_correct_results = [
            datetime.datetime(2017, 12, 11), "Some Transaction Description",
            "Some Transaction Description Original with Fancy Chars (*&*^*%&^!@#",
            20.50, "debit", "Groceries", "Barclaycard", "labels",
            "some notes with stuff 91287312987393 17239812(@*&#!(*&#(!@#@#%&(!*&#"
        ]

        trx_dict = Transaction.from_dict(some_data_dict)
        trx_csv = Transaction.from_csv(",".join(some_data_list))
        for attr, val in some_data_dict.items():
            self.assertEqual(getattr(trx_dict, attr),
                             some_correct_results[data_map[attr]])
            self.assertEqual(getattr(trx_dict, attr), getattr(trx_csv, attr))