nodditestrunner.py (2135B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\nodditestrunner.py 2 import uuid 3 import blue 4 from carbon.common.script.sys.service import Service 5 from carbonui.uicore import uicore 6 from nodegraph.common.nodedata import get_node_graph_ids_with_tags 7 from nodditests.client.arguments import Arguments 8 from nodditests.client.logger import logger 9 from nodditests.client.reporting.teamcityreporter import TeamCityReporter 10 from nodditests.client.runner import Runner 11 12 class NoddiTestRunner(Service): 13 __guid__ = 'svc.noddiTestRunner' 14 15 def Run(self, *args, **kwargs): 16 super(NoddiTestRunner, self).Run(*args, **kwargs) 17 self.runner = None 18 arguments = Arguments(blue.pyos.GetArg()[1:]) 19 if arguments.has_argument('/noddi_test'): 20 if arguments.has_argument('/test_report_folder'): 21 report_folder = arguments.get_string_value('/test_report_folder') 22 else: 23 report_folder = '.' 24 reporter = TeamCityReporter(str(uuid.uuid4()), report_folder) 25 self.runner = Runner(arguments, self.SelectCharacter, self.RunNodeGraph, reporter, self.GetTestNodeGraphByTag) 26 sm.RegisterNotify(self.runner) 27 28 @property 29 def node_graph(self): 30 return sm.GetService('node_graph') 31 32 def SelectCharacter(self, characterID): 33 cs = uicore.layer.charsel 34 cs.TryEnterGame(int(characterID), secondChoiceID=None, skipTutorial=True) 35 36 def GetTestNodeGraphByTag(self, node_graph_tag): 37 required_tags = ['client', 'test-orchestrator', node_graph_tag] 38 node_graph_ids = get_node_graph_ids_with_tags(required_tags) 39 if not node_graph_ids: 40 logger.warning('Failed to find any node graphs with tags %s', required_tags) 41 return None 42 if len(node_graph_ids) > 1: 43 logger.warning('Found multiple node graphs with tags %s: %s', required_tags, node_graph_ids) 44 return node_graph_ids[0] 45 46 def RunNodeGraph(self, testCase): 47 return self.node_graph.StartClientNodeGraph(testCase, blackboard_parameters=[])