github.com/platonnetwork/platon-go@v0.7.6/cases/tests/lib/client.py (about)

     1  from environment.env import TestEnvironment
     2  from environment.node import Node
     3  from .config import StakingConfig
     4  from .economic import Economic
     5  from .restricting import Restricting
     6  from .delegate import Delegate
     7  from .staking import Staking
     8  from .pip import Pip
     9  from .duplicate_sign import DuplicateSign
    10  from typing import List
    11  
    12  
    13  class Client:
    14      """
    15      Test client, the interface call method required for the collection test
    16      example:
    17      >>>cfg = StakingConfig("1111","test-node","http://test-node.com","I'm tester")
    18      >>>client = Client(env, node, cfg)
    19      >>>client.staking.create_staking(...)
    20      """
    21  
    22      def __init__(self, env: TestEnvironment, node: Node, cfg: StakingConfig):
    23          self.node = node
    24          self.economic = Economic(env)
    25          self.staking = Staking(env, node, cfg)
    26          self.restricting = Restricting(env, node)
    27          self.delegate = Delegate(env, node)
    28          self.pip = Pip(env, node)
    29          self.duplicatesign = DuplicateSign(env, node)
    30  
    31      @property
    32      def ppos(self):
    33          """
    34          use sdk ppos object
    35          :return:
    36          """
    37          return self.node.ppos
    38  
    39  
    40  def get_client_by_nodeid(nodeid, client_obj_list: List[Client]) -> Client:
    41      """
    42      Get the client object according to the node id
    43      :param nodeid:
    44      :param client_obj_list:
    45      :return:
    46      """
    47      for client_obj in client_obj_list:
    48          if nodeid == client_obj.node.node_id:
    49              return client_obj
    50  
    51  
    52  def get_clients_by_nodeid(nodeid_list, client_obj_list: List[Client]) -> List[Client]:
    53      """
    54      Get the client object list according to the node id list
    55      :param nodeid_list:
    56      :param client_obj_list:
    57      :return:
    58      """
    59      new_client_obj_list = []
    60      for nodeid in nodeid_list:
    61          new_client_obj_list.append(get_client_by_nodeid(nodeid, client_obj_list))
    62      return new_client_obj_list