Skip to content

Commit bfdb35f

Browse files
author
Matej Cotman
authored
Merge pull request #29 from eficode/feat/optional-oxygen
Do not throw error on suites that do not have need for oxygen
2 parents e107752 + c5860d0 commit bfdb35f

File tree

4 files changed

+36
-9
lines changed

4 files changed

+36
-9
lines changed

src/oxygen/oxygen.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from robot.api import ExecutionResult, ResultVisitor, ResultWriter
1010
from robot.libraries.BuiltIn import BuiltIn
11+
from robot.errors import DataError
1112
from yaml import load, FullLoader
1213

1314
from .config import CONFIG_FILE
@@ -85,9 +86,13 @@ def __init__(self):
8586
self.run_time_data = {}
8687

8788
def end_test(self, name, attributes):
88-
lib = BuiltIn().get_library_instance('oxygen.OxygenLibrary')
89-
if lib:
90-
self.run_time_data[attributes['longname']] = lib.data
89+
try:
90+
lib = BuiltIn()._get_context().namespace.get_library_instance(
91+
'oxygen.OxygenLibrary')
92+
if lib:
93+
self.run_time_data[attributes['longname']] = lib.data
94+
except DataError as _:
95+
pass
9196

9297
def output_file(self, path):
9398
result = ExecutionResult(path)

tests/atest/test_with_import.robot

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
*** Settings ***
2+
Library oxygen.OxygenLibrary
3+
Library OperatingSystem
4+
5+
*** Variables ***
6+
${JUNIT XML FILE}= ${CURDIR}${/}..${/}resources${/}junit-single-testsuite.xml
7+
8+
*** Test Cases ***
9+
Oxygen's unit test with dynamic import
10+
Import Library oxygen.OxygenLibrary
11+
Run JUnit ${JUNIT XML FILE}
12+
... echo Run JUnit Dynamically Imported
13+
14+
Oxygen's unit test with global import
15+
Run JUnit ${JUNIT XML FILE}
16+
... echo Run JUnit Globally Imported

tests/atest/test_without_import.robot

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
*** Test Cases ***
2+
Oxygen's unit test without import
3+
Log Some text

tests/utest/oxygen/test_oxygen_listener.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,21 @@ def test_listener_api_version_is_not_changed_accidentally(self):
1111
self.assertEqual(self.listener.ROBOT_LISTENER_API_VERSION, 2)
1212

1313
def mock_lib_instance(self, mock_builtin, return_value):
14-
m = Mock()
15-
m.get_library_instance.return_value = return_value
16-
mock_builtin.return_value = m
17-
return m
14+
m_builtin = Mock()
15+
m_get_context = Mock()
16+
m_builtin._get_context.return_value = m_get_context
17+
m_get_context.namespace.get_library_instance.return_value = \
18+
return_value
19+
mock_builtin.return_value = m_builtin
20+
return m_builtin
1821

1922
@patch('oxygen.oxygen.BuiltIn')
2023
def test_end_test_when_library_was_not_used(self, mock_builtin):
2124
m = self.mock_lib_instance(mock_builtin, None)
2225

2326
self.listener.end_test('foo', {})
2427

25-
m.get_library_instance.assert_called_once_with('oxygen.OxygenLibrary')
28+
m._get_context().namespace.get_library_instance.assert_called_once_with('oxygen.OxygenLibrary')
2629
self.assertEqual(self.listener.run_time_data, {})
2730

2831
@patch('oxygen.oxygen.BuiltIn')
@@ -33,7 +36,7 @@ def test_end_test_when_library_was_used(self, mock_builtin):
3336

3437
self.listener.end_test('oxygen.OxygenLibrary', {'longname': 'hello'})
3538

36-
m.get_library_instance.assert_called_once_with('oxygen.OxygenLibrary')
39+
m._get_context().namespace.get_library_instance.assert_called_once_with('oxygen.OxygenLibrary')
3740
self.assertEqual(self.listener.run_time_data,
3841
{'hello': ('I do not have a solution, but I do '
3942
'admire the problem')})

0 commit comments

Comments
 (0)