def test_single_winner_pending_payments(wallet_3hf: Wallet, budget): change_auction_coeffs(wallet_3hf, [100], budget['type']) update_budget_time(wallet_3hf, budget, start=3, deadline=300) winner = copy(budget) winner.update({"owner": "test.test1", 'uuid': gen_uid()}) potato = copy(budget) # e.g. not winner (4th place: gold, silver, bronze, potato) potato.update({"owner": "test.test2", 'uuid': gen_uid()}) looser = copy(budget) looser.update({"owner": "test.test3", 'uuid': gen_uid(), 'balance': "0.100000000 SCR"}) budgets = [winner, potato, looser] wallet_3hf.broadcast_multiple_ops( "create_budget_operation", budgets, {winner['owner'], potato['owner'], looser['owner']} ) [update_budget_balance(wallet_3hf, b) for b in budgets] assert winner['per_block'] == potato['per_block'] assert looser['per_block'] != winner['per_block'] assert Amount(winner[OUTGO]) == Amount(potato['per_block']) and Amount(winner[INCOME]) == Amount() assert Amount(potato[OUTGO]) == Amount() and Amount(potato[INCOME]) == Amount(potato['per_block']) assert Amount(looser[OUTGO]) == Amount() and Amount(looser[INCOME]) == Amount(looser['per_block'])
def test_invalid_signing(wallet_3hf: Wallet, budget, account): update_budget_time(wallet_3hf, budget) validate_error_response( wallet_3hf.broadcast_multiple_ops('create_budget_operation', [budget], {account}), 'create_budget_operation', RE_MISSING_AUTHORITY )
def test_invalid_signing(wallet_3hf: Wallet, budget, account): update_budget_time(wallet_3hf, budget) data = {'uuid': budget['uuid'], 'owner': budget['owner'], 'type': budget['type']} validate_error_response( wallet_3hf.broadcast_multiple_ops('close_budget_operation', [data], {account}), 'close_budget_operation', RE_MISSING_AUTHORITY )
def test_invalid_signing(wallet_3hf: Wallet, account, budget): data = { 'initiator': DEFAULT_WITNESS, 'coeffs': [100, 99, 98], 'lifetime': 86400, 'type': budget['type'] } validate_error_response( wallet_3hf.broadcast_multiple_ops('development_committee_change_budgets_auction_properties', [data], {account}), 'development_committee_change_budgets_auction_properties', RE_MISSING_AUTHORITY )
def test_create_max_budgets(wallet_3hf: Wallet, budget): re_budgets_limit = r"Can't create more then .* budgets per owner." limit = wallet_3hf.get_config()["SCORUM_BUDGETS_LIMIT_PER_OWNER"] balance = "0.000000001 SCR" update_budget_time(wallet_3hf, budget, start=5, deadline=300) budgets = [] for i in range(1, limit + 1): budget_cp = copy(budget) budget_cp.update({'uuid': gen_uid(), 'balance': balance}) budgets.append(budget_cp) validate_response( wallet_3hf.broadcast_multiple_ops('create_budget_operation', budgets, {budget['owner']}), 'create_budget_operation' ) update_budget_time(wallet_3hf, budget, start=5, deadline=300) validate_error_response( wallet_3hf.create_budget(**budget), wallet_3hf.create_budget.__name__, re_budgets_limit ) wallet_3hf.close_budget(str(budgets[0]['uuid']), budget['owner'], budget['type']) update_budget_time(wallet_3hf, budget, start=5, deadline=300) validate_response(wallet_3hf.create_budget(**budget), wallet_3hf.create_budget.__name__)