def test_update_budget_invalid_meta(wallet_3hf: Wallet, budget, json_metadata): update_budget_time(wallet_3hf, budget) wallet_3hf.create_budget(**budget) update_budget_balance(wallet_3hf, budget) response = wallet_3hf.update_budget(budget['uuid'], budget['owner'], json_metadata, budget['type']) validate_error_response(response, wallet_3hf.update_budget.__name__, RE_PARSE_ERROR) budget_obj = wallet_3hf.get_budget(budget['uuid'], budget['type']) assert budget_obj['json_metadata'] == budget["json_metadata"]
def test_update_budget(wallet_3hf: Wallet, budget, json_metadata): update_budget_time(wallet_3hf, budget) wallet_3hf.create_budget(**budget) update_budget_balance(wallet_3hf, budget) response = wallet_3hf.update_budget(budget['uuid'], budget['owner'], json_metadata, budget['type']) validate_response(response, wallet_3hf.update_budget.__name__, [('block_num', int)]) check_virt_ops(wallet_3hf, response["block_num"], response["block_num"], {'update_budget'}) budget_obj = wallet_3hf.get_budget(budget['uuid'], budget['type']) assert budget_obj['json_metadata'] == json_metadata assert Amount(budget_obj['balance']) == Amount(budget['balance']) - Amount( budget['per_block']) assert Amount(budget_obj['budget_pending_outgo']) == Amount(budget['budget_pending_outgo']) + \ Amount(budget['per_block']) changed = {"json_metadata", 'balance', 'budget_pending_outgo'} assert all(budget[k] == budget_obj[k] for k in set(budget.keys()).difference(changed)), \ 'Not only budget metadata changed after update\n' \ 'before: {}\n' \ 'after: {}'.format(budget, budget_obj)