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