def test_update_budget_current_winners(wallet_3hf: Wallet, opened_budgets, json_metadata): budget = opened_budgets[0] winners_before = wallet_3hf.get_current_winners(budget['type']) wallet_3hf.update_budget(budget['uuid'], budget['owner'], json_metadata, budget['type']) winners_after = wallet_3hf.get_current_winners(budget['type']) assert all(winners_before[i]['id'] == winners_after[i]['id'] for i in range(len(winners_before)))
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)
def test_update_budget_locked(wallet: Wallet, budget): response = wallet.update_budget(gen_uid(), DEFAULT_WITNESS, "{}", budget["type"]) validate_error_response(response, wallet.close_budget.__name__, RE_OP_IS_LOCKED)
def test_unknown_uuid(wallet_3hf: Wallet, opened_budgets, uuid): validate_error_response( wallet_3hf.update_budget(uuid(), opened_budgets[0]["owner"], "{}", opened_budgets[0]["type"]), wallet_3hf.update_budget.__name__, RE_BUDGET_NOT_EXIST)