testbench2robotframework 0.9.2b5__tar.gz → 0.9.2b6__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.
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/PKG-INFO +1 -1
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/__init__.py +1 -1
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/model.py +1 -4
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/model_utils.py +6 -27
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/.gitignore +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/DEVELOPMENT.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/ExampleConfiguration/json_config.json +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/ExampleConfiguration/pyproject_example.toml +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/ExampleConfiguration/toml_config.toml +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/LICENSE +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/MANIFEST.in +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/README.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/README_old.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/json_config_tests/1_tfs.robot +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/libs/json_config.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/libs/pyproject_config.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/resources/file_management.resource +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/resources/testbench2robotframework_cli.resource +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/rf_tests/cli_interface/write/json_config.robot +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/rf_tests/cli_interface/write/no_config_argument.robot +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/atest/robot/rf_tests/cli_interface/write/toml_config.robot +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/create_json_schema.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/configuration/_category_.json +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/configuration/cli_options.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/configuration/overview.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/configuration/pyproject_config.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/getting_started/_category_.json +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/getting_started/installation.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/getting_started/quick_start.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/intro.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/usage/_category_.json +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/usage/fetch_results.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/usage/generate_tests.md +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/LibrarySubdivision.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/Unbenannt.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/generated.png +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/libraries.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/resources.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/rfLibraryRootsTestBench.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/testbench_rfLibraryRegex.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/testbench_rfResourceRegex.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/testthemen.PNG +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/pyproject.toml +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/requirements.txt +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/robot.toml +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/tasks.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench-tools.zip +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/__main__.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/cli.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/config.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/execution_artifacts.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/html_parser.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/json_reader.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/json_writer.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/log.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/result_writer.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/robotframework2testbench.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/testbench2rf.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/testbench2robotframework.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/testsuite_write.py +0 -0
- {testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/testbench2robotframework/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# generated by datamodel-codegen:
|
|
2
2
|
# filename: openapi.yml
|
|
3
|
-
# timestamp: 2026-05-
|
|
3
|
+
# timestamp: 2026-05-21T13:56:04+00:00
|
|
4
4
|
|
|
5
5
|
from __future__ import annotations
|
|
6
6
|
|
|
@@ -1562,9 +1562,6 @@ class TestStructureTreeNode:
|
|
|
1562
1562
|
class RootNode(TestStructureTreeNode):
|
|
1563
1563
|
base: TestStructureItemBaseInformation
|
|
1564
1564
|
filters: list[AttachedFilter]
|
|
1565
|
-
spec: TestStructureItemSpecification | None = None
|
|
1566
|
-
aut: TestStructureAutomation | None = None
|
|
1567
|
-
exec: TestStructureItemExecution | None = None
|
|
1568
1565
|
|
|
1569
1566
|
|
|
1570
1567
|
@dataclass
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
from dataclasses import MISSING, fields, is_dataclass
|
|
1
|
+
from dataclasses import fields, is_dataclass
|
|
3
2
|
from enum import Enum
|
|
4
3
|
from types import UnionType as TypesUnion
|
|
5
4
|
from typing import Any, TypeVar, get_args, get_origin, get_type_hints
|
|
@@ -7,15 +6,13 @@ from typing import Union as TypingUnion
|
|
|
7
6
|
|
|
8
7
|
T = TypeVar("T")
|
|
9
8
|
|
|
10
|
-
logger = logging.getLogger(__name__)
|
|
11
|
-
|
|
12
9
|
ERROR_NOT_A_DATACLASS = "The provided class '{dataclass}' is not a dataclass."
|
|
13
10
|
ERROR_UNKNOWN_TYPE_HINT_ORIGIN = "Unknown type hint origin."
|
|
14
11
|
ERROR_UNION_MISMATCH = "Value does not match any of the union types."
|
|
15
12
|
ERROR_NOT_A_LIST = "Value is not of type list."
|
|
16
13
|
ERROR_LIST_ARGUMENTS_MISMATCH = "List type hint must have exactly one argument, got {args}."
|
|
17
14
|
ERROR_UNION_WITHOUT_ARGUMENTS = "Union type hint must have at least one argument."
|
|
18
|
-
|
|
15
|
+
ERROR_TOO_MANY_DATA_FIELDS = "Data dictionary contains more fields than the dataclass has."
|
|
19
16
|
ERROR_NONETYPE_DATA = "Data cannot be None."
|
|
20
17
|
|
|
21
18
|
|
|
@@ -39,35 +36,17 @@ def get_origin_from_type_hint(type_hint):
|
|
|
39
36
|
raise ValueError(ERROR_UNKNOWN_TYPE_HINT_ORIGIN)
|
|
40
37
|
|
|
41
38
|
|
|
42
|
-
def _has_default(cls_field) -> bool:
|
|
43
|
-
return cls_field.default is not MISSING or cls_field.default_factory is not MISSING
|
|
44
|
-
|
|
45
|
-
|
|
46
39
|
def from_dict(cls: type[T], data: dict) -> T:
|
|
47
40
|
if not is_dataclass(cls):
|
|
48
41
|
raise ValueError(ERROR_NOT_A_DATACLASS.format(dataclass=cls.__name__))
|
|
49
42
|
if data is None:
|
|
50
43
|
raise ValueError(ERROR_NONETYPE_DATA)
|
|
44
|
+
cls_dict = {}
|
|
51
45
|
class_type_hints = get_type_hints(cls)
|
|
52
46
|
class_fields = fields(cls)
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if extra_keys:
|
|
56
|
-
logger.warning(
|
|
57
|
-
"%s: ignoring unknown fields: %s", cls.__name__, ", ".join(sorted(extra_keys))
|
|
58
|
-
)
|
|
59
|
-
mandatory_fields = {f.name for f in class_fields if f.init and not _has_default(f)}
|
|
60
|
-
missing_fields = mandatory_fields - set(data.keys())
|
|
61
|
-
if missing_fields:
|
|
62
|
-
raise ValueError(
|
|
63
|
-
ERROR_MISSING_FIELDS.format(
|
|
64
|
-
dataclass=cls.__name__, fields=", ".join(sorted(missing_fields))
|
|
65
|
-
)
|
|
66
|
-
)
|
|
67
|
-
cls_dict = {}
|
|
47
|
+
if len(class_fields) < len(data):
|
|
48
|
+
raise ValueError(ERROR_TOO_MANY_DATA_FIELDS)
|
|
68
49
|
for cls_field in class_fields:
|
|
69
|
-
if not cls_field.init:
|
|
70
|
-
continue
|
|
71
50
|
if cls_field.name not in data:
|
|
72
51
|
continue
|
|
73
52
|
field_value = data.get(cls_field.name)
|
|
@@ -125,4 +104,4 @@ def convert_value(value: Any, type_hint: Any) -> Any:
|
|
|
125
104
|
return convert_value_without_origin(value, type_hint)
|
|
126
105
|
if origin is Origin.UNION:
|
|
127
106
|
return convert_value_with_union_type(value, type_hint)
|
|
128
|
-
return convert_value_with_list_type(value, type_hint)
|
|
107
|
+
return convert_value_with_list_type(value, type_hint)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/configuration/overview.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/usage/_category_.json
RENAMED
|
File without changes
|
{testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/usage/fetch_results.md
RENAMED
|
File without changes
|
{testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/docs/usage/generate_tests.md
RENAMED
|
File without changes
|
{testbench2robotframework-0.9.2b5 → testbench2robotframework-0.9.2b6}/images/LibrarySubdivision.PNG
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|