github.com/platonnetwork/platon-go@v0.7.6/cases/tests/initialize/test_initialize.py (about) 1 import os 2 import pytest 3 import json 4 import allure 5 from tests.lib.genesis import to_genesis 6 from common.log import log 7 8 9 @pytest.fixture(scope="function", autouse=True) 10 def restart_env(global_test_env): 11 if not global_test_env.running: 12 global_test_env.deploy_all() 13 global_test_env.check_block(multiple=3) 14 15 16 @allure.title("View Creation Account") 17 @pytest.mark.P1 18 def test_CH_IN_012(global_test_env): 19 """ 20 View the creation account created in the genesis.json file 21 """ 22 log.info("View the creation account created in the genesis.json file") 23 w3_list = [one_node.web3 for one_node in global_test_env.consensus_node_list] 24 for w3 in w3_list: 25 for one_address in global_test_env.genesis_config['alloc']: 26 balance = w3.eth.getBalance(w3.toChecksumAddress(one_address)) 27 assert balance >= 0, "初始化账户错误" 28 29 30 @allure.title("Economic model parameters, governance parameters, penalty parameters, reward parameters") 31 @pytest.mark.P1 32 def test_CH_IN_015(global_test_env): 33 """ 34 View economic model parameters, governance parameters, penalty parameters, and whether the reward parameters are correctly configured parameters 35 """ 36 log.info("View economic model parameters, governance parameters, penalty parameters, and whether the reward parameters are correctly configured parameters") 37 # economic_info = global_test_env.genesis_config['EconomicModel'] 38 if not global_test_env.running: 39 global_test_env.deploy_all() 40 genesis = to_genesis(global_test_env.genesis_config) 41 w3_list = [one_node.web3 for one_node in global_test_env.consensus_node_list] 42 for w3 in w3_list: 43 info = w3.debug.economicConfig() 44 assert info['common']['maxEpochMinutes'] == genesis.economicModel.common.maxEpochMinutes 45 assert info['common']['maxConsensusVals'] == genesis.economicModel.common.maxConsensusVals 46 assert info["common"]["additionalCycleTime"] == genesis.economicModel.common.additionalCycleTime 47 48 assert info['staking']['stakeThreshold'] == genesis.economicModel.staking.stakeThreshold 49 assert info['staking']['operatingThreshold'] == genesis.economicModel.staking.operatingThreshold 50 assert info['staking']['maxValidators'] == genesis.economicModel.staking.maxValidators 51 assert info['staking']['hesitateRatio'] == genesis.economicModel.staking.hesitateRatio 52 assert info['staking']['unStakeFreezeDuration'] == genesis.economicModel.staking.unStakeFreezeDuration 53 54 assert info['slashing']['slashFractionDuplicateSign'] == genesis.economicModel.slashing.slashFractionDuplicateSign 55 assert info['slashing']['duplicateSignReportReward'] == genesis.economicModel.slashing.duplicateSignReportReward 56 assert info['slashing']['slashBlocksReward'] == genesis.economicModel.slashing.slashBlocksReward 57 assert info['slashing']['maxEvidenceAge'] == genesis.economicModel.slashing.maxEvidenceAge 58 59 assert info['gov']['versionProposalVoteDurationSeconds'] == genesis.economicModel.gov.versionProposalVoteDurationSeconds 60 assert info['gov']['versionProposalSupportRate'] == genesis.economicModel.gov.versionProposalSupportRate 61 assert info['gov']['textProposalVoteDurationSeconds'] == genesis.economicModel.gov.textProposalVoteDurationSeconds 62 assert info['gov']['textProposalVoteRate'] == genesis.economicModel.gov.textProposalVoteRate 63 assert info['gov']['textProposalSupportRate'] == genesis.economicModel.gov.textProposalSupportRate 64 assert info['gov']['cancelProposalVoteRate'] == genesis.economicModel.gov.cancelProposalVoteRate 65 assert info['gov']['cancelProposalSupportRate'] == genesis.economicModel.gov.cancelProposalSupportRate 66 assert info['gov']['paramProposalVoteDurationSeconds'] == genesis.economicModel.gov.paramProposalVoteDurationSeconds 67 assert info['gov']['paramProposalVoteRate'] == genesis.economicModel.gov.paramProposalVoteRate 68 assert info['gov']['paramProposalSupportRate'] == genesis.economicModel.gov.paramProposalSupportRate 69 70 assert info['reward']['newBlockRate'] == genesis.economicModel.reward.newBlockRate 71 assert info['reward']['platonFoundationYear'] == genesis.economicModel.reward.platONFoundationYear 72 73 assert w3.toChecksumAddress(info['innerAcc']['platonFundAccount']) == w3.toChecksumAddress(genesis.economicModel.innerAcc.platonFundAccount) 74 assert info['innerAcc']['platonFundBalance'] == genesis.economicModel.innerAcc.platonFundBalance 75 assert w3.toChecksumAddress(info['innerAcc']['cdfAccount']) == w3.toChecksumAddress(genesis.economicModel.innerAcc.cdfAccount) 76 assert info['innerAcc']['cdfBalance'] == genesis.economicModel.innerAcc.cdfBalance 77 78 79 @allure.title("Foundation lock warehouse plan inquiry") 80 @pytest.mark.P1 81 def test_CH_IN_014(global_test_env): 82 """ 83 View the foundation lock warehouse plan query 84 """ 85 log.info("View the foundation lock warehouse plan query") 86 w3_list = [one_node.web3 for one_node in global_test_env.consensus_node_list] 87 for w3 in w3_list: 88 info = w3.eth.call({"to": "0x1000000000000000000000000000000000000001", "data": "0xda8382100495941000000000000000000000000000000000000003"}, 0) 89 recive = json.loads(str(info, encoding="ISO-8859-1")) 90 pass 91 # move for 0.7.5 92 # plans = recive['Ret']['plans'] 93 # assert(8 == len(plans)) 94 # for i in range(len(plans)): 95 # if 1600 == plans[i]['blockNumber']: 96 # assert plans[i]['amount'] == "0x2e4b34f3fb9ea4f3f80000" 97 # if 3200 == plans[i]['blockNumber']: 98 # assert plans[i]['amount'] == "0x28fea171d6cdd2a4900000" 99 # if 4800 == plans[i]['blockNumber']: 100 # assert plans[i]['amount'] == "0x239023dcb60bdb30380000" 101 # if 6400 == plans[i]['blockNumber']: 102 # assert plans[i]['amount'] == "0x1dfee325efc6d87ee00000" 103 # if 8000 == plans[i]['blockNumber']: 104 # assert plans[i]['amount'] == "0x184a00c53258036e040000" 105 # if 9600 == plans[i]['blockNumber']: 106 # assert plans[i]['amount'] == "0x127098c664ba6778100000" 107 # if 11200 == plans[i]['blockNumber']: 108 # assert plans[i]['amount'] == "0xc71c15aa0d54579400000" 109 # if 12800 == plans[i]['blockNumber']: 110 # assert plans[i]['amount'] == "0x64c8af3f4e97afe680000" 111 112 113 @allure.title("Consensus parameter") 114 @pytest.mark.P1 115 def test_CH_IN_016(global_test_env): 116 """ 117 View the number of blocks of each consensus node of the consensus 118 """ 119 log.info("View the number of outbound blocks of each consensus node and the total number of consensus nodes") 120 amount = global_test_env.genesis_config['config']['cbft']['amount'] 121 w3_list = [one_node.web3 for one_node in global_test_env.consensus_node_list] 122 for w3 in w3_list: 123 info = w3.eth.getPrepareQC(amount) 124 assert info['viewNumber'] == 0 125 info = w3.eth.getPrepareQC(amount + 1) 126 assert info['viewNumber'] == 1