Skip to content

Commit 7e80f0c

Browse files
Snooz82falk7
andauthored
Rf 5 compatibility (#11)
* fixed data types issue(s) with RF >= 5.0 , (#10) Co-authored-by: falk <[email protected]>
1 parent 6e9455b commit 7e80f0c

File tree

3 files changed

+22
-14
lines changed

3 files changed

+22
-14
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -136,3 +136,6 @@ dmypy.json
136136
*.zip
137137
*.resource
138138
*.xml
139+
140+
#REMOVE again
141+
!test/*/*xml

src/Libdoc2TestBench/__init__.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,9 @@
2323
from .testbenchwriter import Libdoc2TestBenchWriter
2424
from robot.libdocpkg import LibraryDocumentation
2525
from robot.version import get_full_version as robot_version_print
26+
from robot.libdocpkg.robotbuilder import LibraryDoc
2627

27-
__version__ = "1.0"
28+
__version__ = "1.1.0"
2829

2930

3031
def start_libdoc2testbench():
@@ -259,14 +260,16 @@ def get_libdoc_lists(lib_or_res, lib_name, lib_version, docformat, specdocformat
259260
return libraries, resources
260261

261262

262-
def print_stat(libdoc):
263+
def print_stat(libdoc: LibraryDoc):
263264
print(f"{libdoc.type.lower()}: {libdoc.name}")
264265
print(f" {len(libdoc.keywords)} Interactions")
265-
if libdoc.data_types and libdoc.data_types.enums:
266-
print(f" {len(libdoc.data_types.enums)} Data Types")
267266

267+
data_types = libdoc.to_dictionary()["dataTypes"]
268+
if data_types and data_types["enums"]:
269+
print(f" {len(data_types['enums'])} Data Types")
268270

269-
def create_libdoc(lib_or_res, lib_name, lib_version, docformat, specdocformat):
271+
272+
def create_libdoc(lib_or_res, lib_name, lib_version, docformat, specdocformat) -> LibraryDoc:
270273
try:
271274
libdoc = LibraryDocumentation(lib_or_res, lib_name, lib_version, docformat)
272275
if specdocformat == 'HTML':

src/Libdoc2TestBench/testbenchwriter.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from typing import List
2424

2525
from robot.utils import XmlWriter
26+
from robot.libdocpkg.robotbuilder import LibraryDoc
2627

2728

2829
class ElementTypes(enum.Enum):
@@ -66,9 +67,9 @@ def __init__(self, pk_generator: PKGenerator, element, parent_element=None):
6667
self.element = element
6768
self.pk = pk_generator.get_pk()
6869
self.parent = parent_element
69-
70-
if element.doc:
71-
self.html_desc = f"<html>{element.doc}</html>"
70+
71+
if element["doc"]:
72+
self.html_desc = f"<html>{element['doc']}</html>"
7273

7374
self._set_name_and_register_in_all_elements()
7475

@@ -78,7 +79,7 @@ def _set_name_and_register_in_all_elements(self):
7879
if self.parent:
7980
self.name = self.parent.name + '.' + self.element.name
8081
else:
81-
self.name = self.element.name
82+
self.name = self.element['name']
8283

8384
# Register element for later access to element's unique pk
8485
Element.all_elements[self.name] = self.pk
@@ -97,14 +98,14 @@ class DataType(Element):
9798

9899
def __init__(self, pk_generator: PKGenerator, data_type, parent_element=None):
99100
super().__init__(pk_generator, data_type)
100-
self.type = data_type.type
101+
self.type = data_type['type']
101102

102103
# Holds all enum values, typed_dics are considered to be
103104
# generic for imbus TestBench purposes.
104105
self.representatives = {}
105106

106107
if self.type == 'Enum':
107-
self.members = data_type.members
108+
self.members = data_type['members']
108109
for member in self.members:
109110
key = f"{self.name}.{member['name']}"
110111
value = f"{self.name}.{member['value']}"
@@ -362,10 +363,11 @@ def _write_interactions(self, libdoc, writer, attachment=False):
362363
writer.end('parameters')
363364
writer.end('element') # close interaction tag
364365

365-
def _write_data_types(self, libdoc, writer):
366+
def _write_data_types(self, libdoc: LibraryDoc, writer):
366367
datatypes = []
367-
if libdoc.data_types.enums:
368-
for data_type in libdoc.data_types.enums:
368+
libdoc_dic = libdoc.to_dictionary()
369+
if libdoc_dic["dataTypes"]["enums"]:
370+
for data_type in libdoc_dic["dataTypes"]["enums"]:
369371
datatypes.append(DataType(self.pk_generator, data_type))
370372

371373
writer.start('element', {'type': ElementTypes.subdivision.value})

0 commit comments

Comments
 (0)