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