Esempio n. 1
0
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'])
Esempio n. 2
0
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
    )
Esempio n. 3
0
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
    )
Esempio n. 5
0
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__)