Skip to content

Commit 2da31da

Browse files
committed
RF Interfaces: conform to pydantic models
While implementing validation for Oxygen's handler result dictionaries, it was found out that RobotInterface.running assumed result dictionaries would have fields that are not, in fact, mandatory. Thus, add robust attribute handling to both RF3- and RF4 interfaces.
1 parent e068104 commit 2da31da

2 files changed

Lines changed: 6 additions & 6 deletions

File tree

src/oxygen/robot3_interface.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ def create_wrapper_keyword(self,
343343
class RobotRunningInterface(object):
344344
def build_suite(self, parsed_results):
345345
robot_root_suite = RobotRunningSuite(parsed_results['name'])
346-
for parsed_suite in parsed_results['suites']:
346+
for parsed_suite in parsed_results.get('suites', []):
347347
robot_suite = robot_root_suite.suites.create(parsed_suite['name'])
348348
for subsuite in parsed_suite.get('suites', []):
349349
robot_subsuite = self.build_suite(subsuite)
@@ -355,9 +355,9 @@ def build_suite(self, parsed_results):
355355
def build_tests(self, oxygen_suite, robot_suite):
356356
for parsed_test in oxygen_suite.get('tests', []):
357357
name = parsed_test['name']
358-
tags = parsed_test['tags']
358+
tags = parsed_test.get('tags', [])
359359
kw = parsed_test['keywords'][0]
360-
msg = '\n'.join(kw['messages'])
360+
msg = '\n'.join(kw.get('messages', []))
361361
test_robot_counterpart = robot_suite.tests.create(name, tags=tags)
362362
if kw['pass']:
363363
args = [msg if msg else 'Test passed :D']

src/oxygen/robot4_interface.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,7 @@ def create_wrapper_keyword(self,
343343
class RobotRunningInterface(object):
344344
def build_suite(self, parsed_results):
345345
robot_root_suite = RobotRunningSuite(parsed_results['name'])
346-
for parsed_suite in parsed_results['suites']:
346+
for parsed_suite in parsed_results.get('suites', []):
347347
robot_suite = robot_root_suite.suites.create(parsed_suite['name'])
348348
for subsuite in parsed_suite.get('suites', []):
349349
robot_subsuite = self.build_suite(subsuite)
@@ -355,9 +355,9 @@ def build_suite(self, parsed_results):
355355
def build_tests(self, oxygen_suite, robot_suite):
356356
for parsed_test in oxygen_suite.get('tests', []):
357357
name = parsed_test['name']
358-
tags = parsed_test['tags']
358+
tags = parsed_test.get('tags', [])
359359
kw = parsed_test['keywords'][0]
360-
msg = '\n'.join(kw['messages'])
360+
msg = '\n'.join(kw.get('messages', []))
361361
test_robot_counterpart = robot_suite.tests.create(name, tags=tags)
362362
if kw['pass']:
363363
args = [msg if msg else 'Test passed :D']

0 commit comments

Comments
 (0)