testbench2robotframework 0.9.2a1__tar.gz → 0.9.2b2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/PKG-INFO +1 -1
  2. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/__init__.py +1 -1
  3. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/model.py +24 -1
  4. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/result_writer.py +8 -4
  5. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/.gitignore +0 -0
  6. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/CreatePiPWheel.bat +0 -0
  7. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/CreatePiPWheel.sh +0 -0
  8. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/DEVELOPMENT.md +0 -0
  9. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/ExampleConfiguration/json_config.json +0 -0
  10. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/ExampleConfiguration/pyproject_example.toml +0 -0
  11. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/ExampleConfiguration/toml_config.toml +0 -0
  12. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/LICENSE +0 -0
  13. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/MANIFEST.in +0 -0
  14. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/README.md +0 -0
  15. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/README_old.md +0 -0
  16. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/json_config_tests/1_tfs.robot +0 -0
  17. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/libs/json_config.py +0 -0
  18. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/libs/pyproject_config.py +0 -0
  19. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/resources/file_management.resource +0 -0
  20. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/resources/testbench2robotframework_cli.resource +0 -0
  21. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/rf_tests/cli_interface/write/json_config.robot +0 -0
  22. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/rf_tests/cli_interface/write/no_config_argument.robot +0 -0
  23. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/atest/robot/rf_tests/cli_interface/write/toml_config.robot +0 -0
  24. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/create_json_schema.py +0 -0
  25. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/LibrarySubdivision.PNG +0 -0
  26. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/Unbenannt.PNG +0 -0
  27. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/generated.png +0 -0
  28. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/libraries.PNG +0 -0
  29. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/resources.PNG +0 -0
  30. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/rfLibraryRootsTestBench.PNG +0 -0
  31. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/testbench_rfLibraryRegex.PNG +0 -0
  32. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/testbench_rfResourceRegex.PNG +0 -0
  33. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/images/testthemen.PNG +0 -0
  34. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/oldModel.py +0 -0
  35. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/pydantic_model.py +0 -0
  36. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/pyproject.toml +0 -0
  37. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/requirements.txt +0 -0
  38. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/robot.toml +0 -0
  39. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/tasks.py +0 -0
  40. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench-tools.zip +0 -0
  41. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/__main__.py +0 -0
  42. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/cli.py +0 -0
  43. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/config.py +0 -0
  44. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/execution_artifacts.py +0 -0
  45. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/html_parser.py +0 -0
  46. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/json_reader.py +0 -0
  47. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/json_writer.py +0 -0
  48. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/log.py +0 -0
  49. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/model_utils.py +0 -0
  50. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/robotframework2testbench.py +0 -0
  51. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/testbench2rf.py +0 -0
  52. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/testbench2robotframework.py +0 -0
  53. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/testsuite_write.py +0 -0
  54. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/testbench2robotframework/utils.py +0 -0
  55. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/tests/test_data/configurations/invalid_config.json +0 -0
  56. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/tests/test_data/configurations/valid_config.json +0 -0
  57. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/tests/test_missing_files.py +0 -0
  58. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/tests/test_robot_files_should_not_contain_invalid_characters.py +0 -0
  59. {testbench2robotframework-0.9.2a1 → testbench2robotframework-0.9.2b2}/tests/test_zip_file_generation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: testbench2robotframework
3
- Version: 0.9.2a1
3
+ Version: 0.9.2b2
4
4
  Summary: Robot Framework Code Generator from Keyword-Driven Tests in imbus TestBench 3.0 and newer
5
5
  Author-email: imbus AG <support@imbus.de>
6
6
  Requires-Python: >= 3.10
@@ -17,4 +17,4 @@ suites and enhancing the TestBench report with execution results from Robot Fram
17
17
 
18
18
  from .testbench2robotframework import testbench2robotframework # noqa: F401
19
19
 
20
- __version__ = "0.9.2a1"
20
+ __version__ = "0.9.2b2"
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: openapi.yml
3
- # timestamp: 2025-12-15T08:54:07+00:00
3
+ # timestamp: 2026-03-31T06:28:07+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -172,6 +172,11 @@ class TOVExchangeFormat(Enum):
172
172
  inherited = 'inherited'
173
173
 
174
174
 
175
+ class ProjectExchangeFormat(Enum):
176
+ default_xml = 'default_xml'
177
+ default_json = 'default_json'
178
+
179
+
175
180
  class ImportResult(Enum):
176
181
  Imported = 'Imported'
177
182
  PartiallyImported = 'PartiallyImported'
@@ -1074,6 +1079,18 @@ class CheckedInElement:
1074
1079
  versionName: str
1075
1080
 
1076
1081
 
1082
+ @dataclass
1083
+ class CreatedDefect:
1084
+ foreignKey: str
1085
+ createdKey: str
1086
+
1087
+
1088
+ @dataclass
1089
+ class CreatedReference:
1090
+ foreignKey: str
1091
+ createdKey: str
1092
+
1093
+
1077
1094
  @dataclass
1078
1095
  class TestCaseExecutionImportResult:
1079
1096
  key: str
@@ -1320,6 +1337,7 @@ class TestCaseExecutionForImport:
1320
1337
  comments: Optional[RichTextForImport] = None
1321
1338
  defects: Optional[List[str]] = None
1322
1339
  udfs: Optional[List[UdfValueForImport]] = None
1340
+ references: Optional[List[str]] = None
1323
1341
 
1324
1342
 
1325
1343
  @dataclass
@@ -1444,6 +1462,7 @@ class TOVNode:
1444
1462
  creationTime: str
1445
1463
  status: ProjectStatus
1446
1464
  visibility: bool
1465
+ exchangeFormat: TOVExchangeFormat
1447
1466
  children: List[CycleNode]
1448
1467
 
1449
1468
 
@@ -1688,6 +1707,7 @@ class ProjectNode:
1688
1707
  creationTime: str
1689
1708
  status: ProjectStatus
1690
1709
  visibility: bool
1710
+ exchangeFormat: ProjectExchangeFormat
1691
1711
  children: List[TOVNode]
1692
1712
 
1693
1713
 
@@ -1703,6 +1723,7 @@ class ParameterSummary:
1703
1723
  representativeValue: Optional[RepresentativeValue] = None
1704
1724
  parameterValue: Optional[ParameterValue] = None
1705
1725
  instanceArrayValue: Optional[InstanceArrayValue] = None
1726
+ alias: Optional[str] = None
1706
1727
 
1707
1728
 
1708
1729
  @dataclass
@@ -1730,6 +1751,8 @@ class ExecutionImportingSuccess(ExecutionImportingResult):
1730
1751
  testCaseSets: List[TestCaseSetExecutionImportResult]
1731
1752
  checkedInTestStructureElements: List[TestStructureElement]
1732
1753
  checkedInTestElements: List[CheckedInElement]
1754
+ createdDefects: List[CreatedDefect]
1755
+ createdReferences: List[CreatedReference]
1733
1756
 
1734
1757
 
1735
1758
  @dataclass
@@ -117,6 +117,8 @@ class ResultWriter(ResultVisitor):
117
117
  self, keywords: list[KeywordCall], keyword_type: KeywordType
118
118
  ):
119
119
  for keyword in keywords:
120
+ if not keyword.spec:
121
+ continue
120
122
  if keyword.spec.keywordType == keyword_type:
121
123
  yield keyword
122
124
 
@@ -160,12 +162,12 @@ class ResultWriter(ResultVisitor):
160
162
  self._set_compound_keyword_execution_verdict(
161
163
  keyword, itb_test_case.testSequence
162
164
  )
163
- textual_interactions = list(
164
- self._get_interactions_by_type(itb_test_case.interactions, KeywordType.Textual)
165
+ textual_steps = list(
166
+ self._get_keywords_by_type(itb_test_case.testSequence, KeywordType.Textual)
165
167
  )
166
- for step in textual_interactions:
168
+ for step in textual_steps:
167
169
  if step.exec is None:
168
- step.exec = KeywordCallExecution.from_dict({})
170
+ step.exec = from_dict(KeywordCallExecution, {})
169
171
  step.exec.verdict = KeywordVerdict.Skipped
170
172
  self._set_itb_testcase_execution_result(itb_test_case, self.test_chain)
171
173
  self._set_itb_testcase_execution_comment(itb_test_case, self.test_chain)
@@ -467,6 +469,8 @@ class ResultWriter(ResultVisitor):
467
469
  child.exec = from_dict(KeywordCallExecution, {})
468
470
  if child.spec.keywordType == KeywordType.Compound:
469
471
  self._set_compound_keyword_execution_verdict(child, test_steps)
472
+ if child.spec.keywordType == KeywordType.Textual:
473
+ child.exec.verdict = KeywordVerdict.Skipped
470
474
  if child.exec.verdict is KeywordVerdict.Fail:
471
475
  compound_keyword.exec.verdict = KeywordVerdict.Fail
472
476
  break