def test_init_terms_w_fee(): """Test the terms object initialization with fee.""" ledger_id = DEFAULT_LEDGER sender_addr = "SenderAddress" counterparty_addr = "CounterpartyAddress" amount_by_currency_id = {"FET": -10} quantities_by_good_id = {"good_1": 20} is_sender_payable_tx_fee = True nonce = "somestring" fee_by_currency_id = {"FET": 1} terms = Terms( ledger_id=ledger_id, sender_address=sender_addr, counterparty_address=counterparty_addr, amount_by_currency_id=amount_by_currency_id, quantities_by_good_id=quantities_by_good_id, is_sender_payable_tx_fee=is_sender_payable_tx_fee, nonce=nonce, fee_by_currency_id=fee_by_currency_id, ) new_counterparty_address = "CounterpartyAddressNew" terms.counterparty_address = new_counterparty_address assert terms.counterparty_address == new_counterparty_address assert terms.fee == next(iter(fee_by_currency_id.values())) assert terms.fee_by_currency_id == fee_by_currency_id assert terms.counterparty_payable_amount == 0 assert terms.sender_payable_amount == -next( iter(amount_by_currency_id.values())) assert terms.sender_payable_amount_incl_fee == -next( iter(amount_by_currency_id.values())) + next( iter(fee_by_currency_id.values())) assert terms.sender_fee == next(iter(fee_by_currency_id.values())) assert terms.counterparty_fee == 0
def test_init_terms_no_amount_and_quantity(): """Test the terms object initialization with no amount.""" ledger_id = DEFAULT_LEDGER sender_addr = "SenderAddress" counterparty_addr = "CounterpartyAddress" amount_by_currency_id = {} quantities_by_good_id = {} nonce = "somestring" terms = Terms( ledger_id=ledger_id, sender_address=sender_addr, counterparty_address=counterparty_addr, amount_by_currency_id=amount_by_currency_id, quantities_by_good_id=quantities_by_good_id, nonce=nonce, ) new_counterparty_address = "CounterpartyAddressNew" terms.counterparty_address = new_counterparty_address assert terms.counterparty_address == new_counterparty_address assert not terms.has_fee assert terms.counterparty_payable_amount == 0 assert terms.counterparty_payable_amount_incl_fee == 0 assert terms.sender_payable_amount == 0 assert terms.sender_payable_amount_incl_fee == 0