Skip to content

Commit

Permalink
fix test
Browse files Browse the repository at this point in the history
  • Loading branch information
mmsqe committed Mar 12, 2024
1 parent f892318 commit 8145277
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 23 deletions.
9 changes: 7 additions & 2 deletions integration_tests/cosmoscli.py
Original file line number Diff line number Diff line change
Expand Up @@ -706,6 +706,7 @@ def gov_propose_v0_7(self, proposer, kind, proposal, **kwargs):

def gov_propose_legacy(self, proposer, kind, proposal, **kwargs):
kwargs.setdefault("gas_prices", DEFAULT_GAS_PRICE)
kwargs.setdefault("gas", 300000)
if kind == "software-upgrade":
return json.loads(
self.raw(
Expand Down Expand Up @@ -782,7 +783,9 @@ def gov_vote(self, voter, proposal_id, option, **kwargs):
)
)

def gov_deposit(self, depositor, proposal_id, amount):
def gov_deposit(self, depositor, proposal_id, amount, **kwargs):
kwargs.setdefault("gas_prices", DEFAULT_GAS_PRICE)
kwargs.setdefault("gas", 300000)
return json.loads(
self.raw(
"tx",
Expand All @@ -796,6 +799,7 @@ def gov_deposit(self, depositor, proposal_id, amount):
node=self.node_rpc,
keyring_backend="test",
chain_id=self.chain_id,
**kwargs,
)
)

Expand Down Expand Up @@ -1454,4 +1458,5 @@ def changeset_ingest_versiondb_sst(self, versiondb_dir, sst_dir, **kwargs):
).decode()

def query_feemarket_params(self, **kwargs):
return json.loads(self.raw( 'q', 'feemarket', 'params', home=self.data_dir, **kwargs))
res = self.raw("q", "feemarket", "params", home=self.data_dir, **kwargs)
return json.loads(res)
19 changes: 10 additions & 9 deletions integration_tests/test_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
KEYS,
Greeter,
RevertTestContract,
approve_proposal,
build_batch_tx,
contract_address,
contract_path,
Expand All @@ -26,7 +27,6 @@
send_txs,
wait_for_block,
wait_for_port,
approve_proposal,
)


Expand Down Expand Up @@ -737,24 +737,25 @@ def test_replay_protection(cronos):

def test_gov_min_gas_price(cronos):
cli = cronos.cosmos_cli()
orig = int(cli.query_feemarket_params()['MinGasPrice'])
print('orig', orig)
orig = int(float(cli.query_feemarket_params()["params"]["min_gas_price"]))

rsp = cli.gov_propose_legacy(
'community',
'param-change',
"community",
"param-change",
{
'changes': [
"title": "Update MinGasPrice",
"description": "Update MinGasPrice",
"changes": [
{
"subspace": "feemarket",
"key": "MinGasPrice",
"value": str(orig+1),
"value": str(orig + 1),
},
],
},
)

approve_proposal(cronos, rsp)

orig = int(cli.query_feemarket_params()['MinGasPrice'])
print('orig', orig)
orig = int(float(cli.query_feemarket_params()["params"]["min_gas_price"]))
assert orig == 1
41 changes: 29 additions & 12 deletions integration_tests/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import time
from collections import defaultdict
from concurrent.futures import ThreadPoolExecutor, as_completed
from datetime import timedelta
from pathlib import Path

import bech32
Expand Down Expand Up @@ -526,23 +527,39 @@ def send_txs(w3, cli, to, keys, params):
return block_num_0, sended_hash_set


def find_log_event_attrs(logs, ev_type, cond=None):
for ev in logs[0]["events"]:
if ev["type"] == ev_type:
attrs = {attr["key"]: attr["value"] for attr in ev["attributes"]}
if cond is None or cond(attrs):
return attrs
return None


def get_proposal_id(rsp, msg):
def cb(attrs):
return "proposal_id" in attrs

ev = find_log_event_attrs(rsp["logs"], "submit_proposal", cb)
assert ev["proposal_messages"] == msg, rsp
return ev["proposal_id"]


def approve_proposal(n, rsp):
# get proposal_id
ev = parse_events(rsp["logs"])["submit_proposal"]
assert ev["proposal_type"] == "SoftwareUpgrade", rsp
proposal_id = ev["proposal_id"]

proposal_id = get_proposal_id(rsp, ",/cosmos.gov.v1.MsgExecLegacyContent")
cli = n.cosmos_cli()

proposal = cli.query_proposal(proposal_id)
assert proposal["status"] == "PROPOSAL_STATUS_DEPOSIT_PERIOD", proposal
rsp = cli.gov_deposit("community", proposal_id, "1basetcro")
assert rsp["code"] == 0, rsp["raw_log"]
proposal = cli.query_proposal(proposal_id)
assert proposal["status"] == "PROPOSAL_STATUS_VOTING_PERIOD", proposal
for i in range(len(n.config["validators"])):
rsp = n.cosmos_cli(i).gov_vote("validator", proposal_id, "yes")
assert rsp["code"] == 0, rsp["raw_log"]
wait_for_new_blocks(cli, 1)
assert (
int(cli.query_tally(proposal_id)["yes_count"]) == cli.staking_pool()
), "all validators should have voted yes"
print("wait for proposal to be activated")
proposal = cli.query_proposal(proposal_id)
wait_for_block_time(cli, isoparse(proposal["voting_end_time"]))
wait_for_block_time(
cli, isoparse(proposal["voting_end_time"]) + timedelta(seconds=5)
)
proposal = cli.query_proposal(proposal_id)
assert proposal["status"] == "PROPOSAL_STATUS_PASSED", proposal

0 comments on commit 8145277

Please sign in to comment.