def analyze_scenario(self, stdout, filename, junit): """ This function is intended to be called from outside and provide the final statistics about the scenario (human-readable, in form of a junit report, etc.) """ failure = False timeout = False result = "SUCCESS" if self.scenario.test_criteria is None: print("Nothing to analyze, this scenario has no criteria") return True for criterion in self.scenario.get_criteria(): if (not criterion.optional and criterion.test_status != "SUCCESS" and criterion.test_status != "ACCEPTABLE"): failure = True result = "FAILURE" elif criterion.test_status == "ACCEPTABLE": result = "ACCEPTABLE" if self.scenario.timeout_node.timeout and not failure: timeout = True result = "TIMEOUT" output = ResultOutputProvider(self, result, stdout, filename, junit) output.write() return failure or timeout
def analyze_scenario(self, stdout, filename, junit): """ This function is intended to be called from outside and provide the final statistics about the scenario (human-readable, in form of a junit report, etc.) """ failure = False timeout = False result = "SUCCESS" if self.scenario.test_criteria is None: return True for criterion in self.scenario.get_criteria(): if (not criterion.optional and criterion.test_status != "SUCCESS" and criterion.test_status != "ACCEPTABLE"): failure = True result = "FAILURE" elif criterion.test_status == "ACCEPTABLE": result = "ACCEPTABLE" if self.scenario.timeout_node.timeout and not failure: timeout = True result = "TIMEOUT" output = ResultOutputProvider(self, result, stdout, filename, junit) output.write() if self._challenge_mode: ChallengeStatisticsManager.record_scenario_statistics() print(f'failure or timeout----f----{failure}-----t--{timeout}') return failure or timeout
def analyze_scenario(self, stdout, filename, junit): """ This function is intended to be called from outside and provide statistics about the scenario (human-readable, in form of a junit report, etc.) """ failure = False timeout = False result = "SUCCESS" if isinstance(self.scenario.test_criteria, py_trees.composites.Parallel): if self.scenario.test_criteria.status == py_trees.common.Status.FAILURE: failure = True result = "FAILURE" else: for criterion in self.scenario.test_criteria: if (not criterion.optional and criterion.test_status != "SUCCESS" and criterion.test_status != "ACCEPTABLE"): failure = True result = "FAILURE" elif criterion.test_status == "ACCEPTABLE": result = "ACCEPTABLE" if self.scenario.timeout_node.timeout and not failure: timeout = True result = "TIMEOUT" output = ResultOutputProvider(self, result, stdout, filename, junit) output.write() return failure or timeout
def analyze_scenario(self, stdout, filename, junit, numb): """ This function is intended to be called from outside and provide the final statistics about the scenario (human-readable, in form of a junit report, etc.) """ failure = False timeout = False result = "SUCCESS" if self.scenario.test_criteria is None: return True for criterion in self.scenario.get_criteria(): if (not criterion.optional and criterion.test_status != "SUCCESS" and criterion.test_status != "ACCEPTABLE"): failure = True result = "FAILURE" elif criterion.test_status == "ACCEPTABLE": result = "ACCEPTABLE" if self.scenario.timeout_node.timeout and not failure: timeout = True result = "TIMEOUT" result_score = { "FAILURE": -1.0, "TIMEOUT": -1.0, "ACCEPTABLE": 0.5, "SUCCESS": 1.0 } tmpFile = "temp_scenario_{}_results.txt".format(numb) f = open(tmpFile, 'w') #f.write(text) f.write(str(result_score[result])) f.flush() #f = open("scenario_{}_results.txt".format(numb), "w") os.fsync(f.fileno()) f.close() print(result_score[result]) os.rename(tmpFile, "scenario_{}_results.txt".format(numb)) output = ResultOutputProvider(self, result, stdout, filename, junit) output.write() return failure or timeout