baldertest 0.1.0b9__py3-none-any.whl → 0.1.0b11__py3-none-any.whl
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.
- _balder/_version.py +1 -1
- _balder/balder_session.py +4 -2
- _balder/cnnrelations/__init__.py +7 -0
- _balder/cnnrelations/and_connection_relation.py +149 -0
- _balder/cnnrelations/base_connection_relation.py +270 -0
- _balder/cnnrelations/or_connection_relation.py +65 -0
- _balder/collector.py +116 -14
- _balder/connection.py +400 -881
- _balder/connection_metadata.py +255 -0
- _balder/console/balder.py +1 -1
- _balder/controllers/device_controller.py +26 -12
- _balder/controllers/feature_controller.py +63 -99
- _balder/controllers/normal_scenario_setup_controller.py +7 -7
- _balder/controllers/scenario_controller.py +97 -7
- _balder/controllers/setup_controller.py +2 -3
- _balder/decorator_connect.py +12 -10
- _balder/decorator_fixture.py +4 -7
- _balder/decorator_for_vdevice.py +21 -31
- _balder/decorator_gateway.py +3 -3
- _balder/decorator_parametrize.py +31 -0
- _balder/decorator_parametrize_by_feature.py +36 -0
- _balder/exceptions.py +6 -0
- _balder/executor/basic_executable_executor.py +126 -0
- _balder/executor/basic_executor.py +1 -78
- _balder/executor/executor_tree.py +7 -5
- _balder/executor/parametrized_testcase_executor.py +52 -0
- _balder/executor/scenario_executor.py +5 -2
- _balder/executor/setup_executor.py +5 -2
- _balder/executor/testcase_executor.py +41 -9
- _balder/executor/unresolved_parametrized_testcase_executor.py +209 -0
- _balder/executor/variation_executor.py +148 -123
- _balder/feature.py +1 -1
- _balder/fixture_definition_scope.py +19 -0
- _balder/fixture_execution_level.py +22 -0
- _balder/fixture_manager.py +170 -182
- _balder/fixture_metadata.py +26 -0
- _balder/objects/connections/osi_3_network.py +2 -2
- _balder/objects/connections/osi_4_transport.py +2 -2
- _balder/parametrization.py +75 -0
- _balder/routing_path.py +18 -25
- _balder/solver.py +52 -32
- _balder/testresult.py +1 -1
- _balder/utils.py +27 -1
- balder/__init__.py +6 -0
- balder/exceptions.py +4 -3
- balder/parametrization.py +8 -0
- {baldertest-0.1.0b9.dist-info → baldertest-0.1.0b11.dist-info}/METADATA +2 -2
- baldertest-0.1.0b11.dist-info/RECORD +83 -0
- {baldertest-0.1.0b9.dist-info → baldertest-0.1.0b11.dist-info}/WHEEL +1 -1
- baldertest-0.1.0b9.dist-info/RECORD +0 -68
- {baldertest-0.1.0b9.dist-info → baldertest-0.1.0b11.dist-info}/LICENSE +0 -0
- {baldertest-0.1.0b9.dist-info → baldertest-0.1.0b11.dist-info}/entry_points.txt +0 -0
- {baldertest-0.1.0b9.dist-info → baldertest-0.1.0b11.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
from typing import Type, Dict, Any, TypeVar, List
|
|
3
|
+
import dataclasses
|
|
4
|
+
|
|
5
|
+
from _balder.device import Device
|
|
6
|
+
|
|
7
|
+
ValueTypeT = TypeVar("ValueTypeT")
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@dataclasses.dataclass
|
|
11
|
+
class FeatureAccessSelector:
|
|
12
|
+
"""helper object for dynamic parametrizing by feature method/property"""
|
|
13
|
+
device: Type[Device]
|
|
14
|
+
device_property_name: str
|
|
15
|
+
feature_property_name: str
|
|
16
|
+
parameters: Dict[str, FeatureAccessSelector | Value] = dataclasses.field(default_factory=dict)
|
|
17
|
+
|
|
18
|
+
def get_value(self, available_parameters: Dict[str, Any]) -> List[Any]:
|
|
19
|
+
"""accesses the configured method/property"""
|
|
20
|
+
resolved_parameters = {}
|
|
21
|
+
for cur_key, cur_value in self.parameters.items():
|
|
22
|
+
if isinstance(cur_value, FeatureAccessSelector):
|
|
23
|
+
resolved_parameters[cur_key] = cur_value.get_value(available_parameters)
|
|
24
|
+
elif isinstance(cur_value, Parameter):
|
|
25
|
+
resolved_parameters[cur_key] = available_parameters[cur_value.name]
|
|
26
|
+
elif isinstance(cur_value, Value):
|
|
27
|
+
resolved_parameters[cur_key] = cur_value.value
|
|
28
|
+
else:
|
|
29
|
+
raise TypeError(f'go unexpected parameter type {type(cur_value)} in FeatureAccessSelector')
|
|
30
|
+
|
|
31
|
+
feature = getattr(self.device, self.device_property_name)
|
|
32
|
+
|
|
33
|
+
if isinstance(getattr(feature.__class__, self.feature_property_name), property):
|
|
34
|
+
return getattr(feature, self.feature_property_name)
|
|
35
|
+
|
|
36
|
+
return getattr(feature, self.feature_property_name)(**resolved_parameters)
|
|
37
|
+
|
|
38
|
+
def get_parameters(
|
|
39
|
+
self,
|
|
40
|
+
of_type: Type[FeatureAccessSelector | Parameter | Value] | None = None
|
|
41
|
+
) -> Dict[str, FeatureAccessSelector | Parameter | Value]:
|
|
42
|
+
"""
|
|
43
|
+
Returns the parameters of this access selector
|
|
44
|
+
|
|
45
|
+
:param of_type: allows to filter the parameters by the value's type
|
|
46
|
+
"""
|
|
47
|
+
result = {}
|
|
48
|
+
for cur_attr, cur_value in self.parameters.items():
|
|
49
|
+
if of_type is None or isinstance(cur_value, of_type):
|
|
50
|
+
result[cur_attr] = cur_value
|
|
51
|
+
return result
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
class Parameter:
|
|
55
|
+
"""allows to parametrize a parametrization by another parametrization value"""
|
|
56
|
+
|
|
57
|
+
def __init__(self, name: str) -> None:
|
|
58
|
+
self._name = name
|
|
59
|
+
|
|
60
|
+
@property
|
|
61
|
+
def name(self) -> str:
|
|
62
|
+
"""returns the name of the parameter"""
|
|
63
|
+
return self._name
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
class Value:
|
|
67
|
+
"""allows to parametrize a parametrization by a fix value"""
|
|
68
|
+
|
|
69
|
+
def __init__(self, value: ValueTypeT) -> None:
|
|
70
|
+
self._value = value
|
|
71
|
+
|
|
72
|
+
@property
|
|
73
|
+
def value(self) -> ValueTypeT:
|
|
74
|
+
"""returns the value of the parametrization"""
|
|
75
|
+
return self._value
|
_balder/routing_path.py
CHANGED
|
@@ -79,17 +79,13 @@ class RoutingPath:
|
|
|
79
79
|
if alternative_setup_device_cnns is None:
|
|
80
80
|
setup_devices_cnns = []
|
|
81
81
|
for cur_setup_device in device_mapping.values():
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
from_scenario_device = scenario_connection.from_device
|
|
90
|
-
to_scenario_device = scenario_connection.to_device
|
|
91
|
-
from_setup_device = device_mapping[from_scenario_device]
|
|
92
|
-
to_setup_device = device_mapping[to_scenario_device]
|
|
82
|
+
for cur_cnn_list in DeviceController.get_for(cur_setup_device).get_all_absolute_connections().values():
|
|
83
|
+
setup_devices_cnns.extend(cur_cnn_list)
|
|
84
|
+
# remove duplicates
|
|
85
|
+
setup_devices_cnns = list(set(setup_devices_cnns))
|
|
86
|
+
|
|
87
|
+
from_setup_device = device_mapping[scenario_connection.from_device]
|
|
88
|
+
to_setup_device = device_mapping[scenario_connection.to_device]
|
|
93
89
|
|
|
94
90
|
# contains a list with all routes that start and end correctly
|
|
95
91
|
all_completed_routes = []
|
|
@@ -111,16 +107,14 @@ class RoutingPath:
|
|
|
111
107
|
while len(all_possible_routes) > 0:
|
|
112
108
|
|
|
113
109
|
# remove all routings that have a loop
|
|
114
|
-
for
|
|
115
|
-
if cur_routing.has_loop():
|
|
116
|
-
all_possible_routes.remove(cur_routing)
|
|
110
|
+
all_possible_routes = [route for route in all_possible_routes.copy() if not route.has_loop()]
|
|
117
111
|
|
|
118
|
-
# remove all
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
112
|
+
# remove all not working routing because they have the wrong connection type, by checking that one part
|
|
113
|
+
# connection matches the requirements of the given `scenario_connection`
|
|
114
|
+
all_possible_routes = [
|
|
115
|
+
r for r in all_possible_routes
|
|
116
|
+
if scenario_connection.contained_in(r.get_virtual_connection(), ignore_metadata=True)
|
|
117
|
+
]
|
|
124
118
|
|
|
125
119
|
# move all completely routed connections to `all_completed_routes`
|
|
126
120
|
for cur_routing in all_possible_routes.copy():
|
|
@@ -167,7 +161,7 @@ class RoutingPath:
|
|
|
167
161
|
# ---------------------------------- PROPERTIES --------------------------------------------------------------------
|
|
168
162
|
|
|
169
163
|
@property
|
|
170
|
-
def elements(self) -> List[Connection, NodeGateway]:
|
|
164
|
+
def elements(self) -> List[Union[Connection, NodeGateway]]:
|
|
171
165
|
"""returns all elements that belongs to this routing path"""
|
|
172
166
|
return self._routing_elems
|
|
173
167
|
|
|
@@ -269,7 +263,7 @@ class RoutingPath:
|
|
|
269
263
|
"""
|
|
270
264
|
copied_elem = copy.copy(self)
|
|
271
265
|
# also copy list reference
|
|
272
|
-
copied_elem._routing_elems = self._routing_elems.copy()
|
|
266
|
+
copied_elem._routing_elems = self._routing_elems.copy() # pylint: disable=protected-access
|
|
273
267
|
return copied_elem
|
|
274
268
|
|
|
275
269
|
def append_element(self, elem: Union[Connection, NodeGateway]) -> None:
|
|
@@ -324,8 +318,7 @@ class RoutingPath:
|
|
|
324
318
|
# todo
|
|
325
319
|
pass
|
|
326
320
|
# set metadata based on this routing
|
|
327
|
-
virtual_connection.
|
|
328
|
-
virtual_connection.
|
|
329
|
-
to_device_node_name=self.end_node_name)
|
|
321
|
+
virtual_connection.metadata.set_from(from_device=self.start_device, from_device_node_name=self.start_node_name)
|
|
322
|
+
virtual_connection.metadata.set_to(to_device=self.end_device, to_device_node_name=self.end_node_name)
|
|
330
323
|
|
|
331
324
|
return virtual_connection
|
_balder/solver.py
CHANGED
|
@@ -2,13 +2,14 @@ from __future__ import annotations
|
|
|
2
2
|
from typing import List, Dict, Tuple, Type, Union, Callable, TYPE_CHECKING
|
|
3
3
|
|
|
4
4
|
import itertools
|
|
5
|
-
from _balder.utils import inspect_method
|
|
6
5
|
from _balder.fixture_manager import FixtureManager
|
|
7
6
|
from _balder.executor.executor_tree import ExecutorTree
|
|
8
7
|
from _balder.executor.setup_executor import SetupExecutor
|
|
9
8
|
from _balder.executor.scenario_executor import ScenarioExecutor
|
|
10
9
|
from _balder.executor.testcase_executor import TestcaseExecutor
|
|
11
10
|
from _balder.executor.variation_executor import VariationExecutor
|
|
11
|
+
from _balder.executor.parametrized_testcase_executor import ParametrizedTestcaseExecutor
|
|
12
|
+
from _balder.executor.unresolved_parametrized_testcase_executor import UnresolvedParametrizedTestcaseExecutor
|
|
12
13
|
from _balder.previous_executor_mark import PreviousExecutorMark
|
|
13
14
|
from _balder.controllers import ScenarioController, SetupController
|
|
14
15
|
|
|
@@ -27,7 +28,7 @@ class Solver:
|
|
|
27
28
|
"""
|
|
28
29
|
|
|
29
30
|
def __init__(self, setups: List[Type[Setup]], scenarios: List[Type[Scenario]], connections: List[Type[Connection]],
|
|
30
|
-
|
|
31
|
+
fixture_manager: Union[FixtureManager, None]):
|
|
31
32
|
#: contains all available setup classes
|
|
32
33
|
self._all_existing_setups = setups
|
|
33
34
|
#: contains all available scenario classes
|
|
@@ -40,8 +41,7 @@ class Solver:
|
|
|
40
41
|
self._mapping: List[Tuple[Type[Setup], Type[Scenario], Dict[Type[Device], Type[Device]]]] = []
|
|
41
42
|
self._resolving_was_executed = False
|
|
42
43
|
|
|
43
|
-
self.
|
|
44
|
-
self._fixture_manager: Union[FixtureManager, None] = None
|
|
44
|
+
self._fixture_manager = fixture_manager
|
|
45
45
|
|
|
46
46
|
# ---------------------------------- STATIC METHODS ----------------------------------------------------------------
|
|
47
47
|
|
|
@@ -117,23 +117,7 @@ class Solver:
|
|
|
117
117
|
|
|
118
118
|
# ---------------------------------- METHODS -----------------------------------------------------------------------
|
|
119
119
|
|
|
120
|
-
def
|
|
121
|
-
"""
|
|
122
|
-
Resolves all fixtures and returns the fixture manager for this session
|
|
123
|
-
:return: the fixture manager that is valid for this session
|
|
124
|
-
"""
|
|
125
|
-
resolved_dict = {}
|
|
126
|
-
for cur_level, cur_module_fixture_dict in self._raw_fixtures.items():
|
|
127
|
-
resolved_dict[cur_level] = {}
|
|
128
|
-
for cur_fn in cur_module_fixture_dict:
|
|
129
|
-
cls, func_type = inspect_method(cur_fn)
|
|
130
|
-
# mechanism also works for balderglob fixtures (`func_type` is 'function' and `cls` is None)
|
|
131
|
-
if cls not in resolved_dict[cur_level].keys():
|
|
132
|
-
resolved_dict[cur_level][cls] = []
|
|
133
|
-
resolved_dict[cur_level][cls].append((func_type, cur_fn))
|
|
134
|
-
return FixtureManager(resolved_dict)
|
|
135
|
-
|
|
136
|
-
def get_initial_mapping(self) -> List[Tuple[Type[Setup], Type[Scenario], Dict[Device, Device]]]:
|
|
120
|
+
def get_initial_mapping(self) -> List[Tuple[Type[Setup], Type[Scenario], Dict[Type[Device], Type[Device]]]]:
|
|
137
121
|
"""
|
|
138
122
|
This method creates the initial amount of data for `self._mapping`. Only those elements are returned where the
|
|
139
123
|
:meth:`Setup` class has more or the same amount of :meth:`Device`'s than the :meth:`Scenario` class.
|
|
@@ -163,13 +147,44 @@ class Solver:
|
|
|
163
147
|
This method carries out the entire resolve process and saves the end result in the object property
|
|
164
148
|
`self._mapping`.
|
|
165
149
|
"""
|
|
166
|
-
self._fixture_manager = self.get_fixture_manager()
|
|
167
150
|
# reset mapping list
|
|
168
151
|
self._mapping = []
|
|
169
152
|
initial_mapping = self.get_initial_mapping()
|
|
170
153
|
self._mapping = initial_mapping
|
|
171
154
|
self._resolving_was_executed = True
|
|
172
155
|
|
|
156
|
+
def get_static_parametrized_testcase_executor_for(
|
|
157
|
+
self,
|
|
158
|
+
variation_executor: VariationExecutor,
|
|
159
|
+
testcase: Callable
|
|
160
|
+
) -> List[UnresolvedParametrizedTestcaseExecutor | ParametrizedTestcaseExecutor]:
|
|
161
|
+
"""
|
|
162
|
+
returns a list of all testcase executors, with already resolved static parametrization -
|
|
163
|
+
:class:`UnresolvedParametrizedTest` will be returned for unresolved dynamic parametrization
|
|
164
|
+
|
|
165
|
+
:param variation_executor: the current variation executor
|
|
166
|
+
:param testcase: the current testcase
|
|
167
|
+
"""
|
|
168
|
+
|
|
169
|
+
scenario_controller = variation_executor.parent_executor.base_scenario_controller
|
|
170
|
+
if scenario_controller.get_parametrization_for(testcase) is None:
|
|
171
|
+
raise ValueError(f'can not determine parametrization for test `{testcase.__qualname__}` because no '
|
|
172
|
+
f'parametrization exist')
|
|
173
|
+
static_parametrization = scenario_controller.get_parametrization_for(testcase, static=True, dynamic=False)
|
|
174
|
+
executor_typ = UnresolvedParametrizedTestcaseExecutor \
|
|
175
|
+
if scenario_controller.get_parametrization_for(testcase, static=False, dynamic=True) \
|
|
176
|
+
else ParametrizedTestcaseExecutor
|
|
177
|
+
|
|
178
|
+
if not static_parametrization:
|
|
179
|
+
return [executor_typ(testcase, parent=variation_executor)]
|
|
180
|
+
|
|
181
|
+
# generate product
|
|
182
|
+
result = []
|
|
183
|
+
for cur_product in itertools.product(*static_parametrization.values()):
|
|
184
|
+
cur_product_parametrization = dict(zip(static_parametrization.keys(), cur_product))
|
|
185
|
+
result.append(executor_typ(testcase, variation_executor, cur_product_parametrization))
|
|
186
|
+
return result
|
|
187
|
+
|
|
173
188
|
# pylint: disable-next=unused-argument
|
|
174
189
|
def get_executor_tree(self, plugin_manager: PluginManager, add_discarded=False) -> ExecutorTree:
|
|
175
190
|
"""
|
|
@@ -204,17 +219,22 @@ class Solver:
|
|
|
204
219
|
variation_executor = VariationExecutor(device_mapping=cur_device_mapping, parent=scenario_executor)
|
|
205
220
|
variation_executor.verify_applicability()
|
|
206
221
|
|
|
222
|
+
if not variation_executor.can_be_applied():
|
|
223
|
+
continue
|
|
224
|
+
|
|
207
225
|
scenario_executor.add_variation_executor(variation_executor)
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
226
|
+
|
|
227
|
+
for cur_testcase in scenario_executor.base_scenario_controller.get_all_test_methods():
|
|
228
|
+
# we have a parametrization for this test case
|
|
229
|
+
if scenario_executor.base_scenario_controller.get_parametrization_for(cur_testcase):
|
|
230
|
+
testcase_executors = self.get_static_parametrized_testcase_executor_for(
|
|
231
|
+
variation_executor, cur_testcase
|
|
232
|
+
)
|
|
233
|
+
for cur_testcase_executor in testcase_executors:
|
|
234
|
+
variation_executor.add_testcase_executor(cur_testcase_executor)
|
|
235
|
+
else:
|
|
236
|
+
testcase_executor = TestcaseExecutor(cur_testcase, parent=variation_executor)
|
|
237
|
+
variation_executor.add_testcase_executor(testcase_executor)
|
|
218
238
|
|
|
219
239
|
# now filter all elements that have no child elements
|
|
220
240
|
# -> these are items that have no valid matching, because no variation can be applied for it (there are no
|
_balder/testresult.py
CHANGED
|
@@ -95,7 +95,7 @@ class BranchBodyResult(_Result):
|
|
|
95
95
|
"""
|
|
96
96
|
|
|
97
97
|
def __init__(self, executor: BasicExecutor):
|
|
98
|
-
from _balder.executor.testcase_executor import TestcaseExecutor
|
|
98
|
+
from _balder.executor.testcase_executor import TestcaseExecutor # pylint: disable=import-outside-toplevel
|
|
99
99
|
|
|
100
100
|
if isinstance(executor, TestcaseExecutor):
|
|
101
101
|
raise TypeError("testcase executors are not allowed to use in `BranchBodyResult`")
|
_balder/utils.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
|
-
from typing import List, Type, Tuple, Union, Literal
|
|
2
|
+
from typing import List, Type, Tuple, Union, Literal, TYPE_CHECKING
|
|
3
3
|
|
|
4
4
|
import sys
|
|
5
5
|
import inspect
|
|
@@ -8,6 +8,10 @@ from _balder.exceptions import InheritanceError
|
|
|
8
8
|
|
|
9
9
|
MethodLiteralType = Literal["function", "classmethod", "staticmethod", "instancemethod"]
|
|
10
10
|
|
|
11
|
+
if TYPE_CHECKING:
|
|
12
|
+
from _balder.connection import Connection
|
|
13
|
+
from _balder.cnnrelations.base_connection_relation import BaseConnectionRelationT
|
|
14
|
+
|
|
11
15
|
|
|
12
16
|
def get_scenario_inheritance_list_of(scenario: Type[Scenario]) -> List[Type[Scenario]]:
|
|
13
17
|
"""
|
|
@@ -45,6 +49,28 @@ def get_class_that_defines_method(meth):
|
|
|
45
49
|
return None # not required since None would have been implicitly returned anyway
|
|
46
50
|
|
|
47
51
|
|
|
52
|
+
def cnn_type_check_and_convert(elem: Union[Connection, Type[Connection], BaseConnectionRelationT]) \
|
|
53
|
+
-> Union[Connection, BaseConnectionRelationT]:
|
|
54
|
+
"""
|
|
55
|
+
converts possible type object to instance and checks if the element is a connection type
|
|
56
|
+
|
|
57
|
+
:param elem: the connection object to be converted/checked
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
from .connection import Connection # pylint: disable=import-outside-toplevel
|
|
61
|
+
from .cnnrelations.and_connection_relation import AndConnectionRelation # pylint: disable=import-outside-toplevel
|
|
62
|
+
from .cnnrelations.or_connection_relation import OrConnectionRelation # pylint: disable=import-outside-toplevel
|
|
63
|
+
|
|
64
|
+
if isinstance(elem, type):
|
|
65
|
+
if issubclass(elem, Connection):
|
|
66
|
+
return elem()
|
|
67
|
+
elif isinstance(elem, (Connection, AndConnectionRelation, OrConnectionRelation)):
|
|
68
|
+
# okay
|
|
69
|
+
return elem
|
|
70
|
+
raise TypeError(f'object needs to be a `Connection`, a connection relation or a `Type[Connection]` - no '
|
|
71
|
+
f'`{elem}`')
|
|
72
|
+
|
|
73
|
+
|
|
48
74
|
def inspect_method(func) -> Tuple[Union[type, None], MethodLiteralType]:
|
|
49
75
|
"""
|
|
50
76
|
This helper function returns the related class and the type of the method (`staticmethod`, `classmethod`,
|
balder/__init__.py
CHANGED
|
@@ -13,6 +13,8 @@ from _balder.decorator_connect import connect
|
|
|
13
13
|
from _balder.decorator_covered_by import covered_by
|
|
14
14
|
from _balder.decorator_for_vdevice import for_vdevice
|
|
15
15
|
from _balder.decorator_insert_into_tree import insert_into_tree
|
|
16
|
+
from _balder.decorator_parametrize import parametrize
|
|
17
|
+
from _balder.decorator_parametrize_by_feature import parametrize_by_feature
|
|
16
18
|
|
|
17
19
|
|
|
18
20
|
__all__ = [
|
|
@@ -30,6 +32,10 @@ __all__ = [
|
|
|
30
32
|
|
|
31
33
|
'covered_by',
|
|
32
34
|
|
|
35
|
+
'parametrize',
|
|
36
|
+
|
|
37
|
+
'parametrize_by_feature',
|
|
38
|
+
|
|
33
39
|
'Setup',
|
|
34
40
|
|
|
35
41
|
'Device',
|
balder/exceptions.py
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
from _balder.exceptions import BalderException, BalderWarning
|
|
2
|
-
from _balder.exceptions import FixtureScopeError, FixtureReferenceError, UnclearSetupScopedFixtureReference, \
|
|
2
|
+
from _balder.exceptions import (FixtureScopeError, FixtureReferenceError, UnclearSetupScopedFixtureReference, \
|
|
3
3
|
UnclearUniqueClassReference, LostInExecutorTreeException, DeviceResolvingException, NodeNotExistsError, \
|
|
4
4
|
DuplicateForVDeviceError, DuplicateBalderSettingError, DeviceOverwritingError, VDeviceOverwritingError, \
|
|
5
5
|
AccessToUnmappedVDeviceException, FeatureOverwritingError, UnknownVDeviceException, RoutingBrokenChainError, \
|
|
6
6
|
IllegalConnectionTypeError, ConnectionMetadataConflictError, DeviceScopeError, ConnectionIntersectionError, \
|
|
7
7
|
UnclearAssignableFeatureConnectionError, InheritanceError, MultiInheritanceError, InnerFeatureResolvingError, \
|
|
8
|
-
VDeviceResolvingError, IllegalVDeviceMappingError,
|
|
9
|
-
UnexpectedPluginMethodReturnValue
|
|
8
|
+
VDeviceResolvingError, IllegalVDeviceMappingError, MissingFeaturesOfVDeviceError, NotApplicableVariationException, \
|
|
9
|
+
UnclearMethodVariationError, UnexpectedPluginMethodReturnValue)
|
|
10
10
|
|
|
11
11
|
__all__ = [
|
|
12
12
|
|
|
@@ -37,6 +37,7 @@ __all__ = [
|
|
|
37
37
|
"InnerFeatureResolvingError",
|
|
38
38
|
"VDeviceResolvingError",
|
|
39
39
|
"IllegalVDeviceMappingError",
|
|
40
|
+
"MissingFeaturesOfVDeviceError",
|
|
40
41
|
"NotApplicableVariationException",
|
|
41
42
|
"UnclearMethodVariationError",
|
|
42
43
|
"UnexpectedPluginMethodReturnValue",
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
_balder/__init__.py,sha256=Qk4wkVInPlXLFV36Yco5K7PDawJoeeWQVakzj6g5pmA,195
|
|
2
|
+
_balder/_version.py,sha256=fgSwP5K0NJOmhZpDfiqSUfFysLGqMES9LZQlLZ92X9Q,414
|
|
3
|
+
_balder/balder_plugin.py,sha256=EQzJP1dwwVDydhMLJtAmTCXOczlDuXBJur05lalmK_k,3136
|
|
4
|
+
_balder/balder_session.py,sha256=ezT86gC_VzPQZOQ4r5qQ75IEm6rXZHiIpEqZDczkRsE,16149
|
|
5
|
+
_balder/balder_settings.py,sha256=U96PVep7dGSaTXrMfeZMYf6oCIcEDPEqrBlFcoX476s,582
|
|
6
|
+
_balder/collector.py,sha256=uymS7CwymrZNxzKDG9_kPOK7HGKtnX3FNwX7Dk2LuC0,47567
|
|
7
|
+
_balder/connection.py,sha256=j6wI7m3h23q9aCApRDmLyeerxUXQ0j267v4FgjP4p6E,41770
|
|
8
|
+
_balder/connection_metadata.py,sha256=FrTj6NNBBUl6QuFx8DWy6HRueufXB93WTBkdc41uFaE,13632
|
|
9
|
+
_balder/decorator_connect.py,sha256=67CojFZH9dZ_qwnvb6rkqxe3adtQlgHVi_0etmP5Hyw,5881
|
|
10
|
+
_balder/decorator_covered_by.py,sha256=Y6WMUuyn_uvFkjGfbts8OE5Bsir_7LTRB-jxYGaYk4Y,4069
|
|
11
|
+
_balder/decorator_fixture.py,sha256=vVd3pXVWEaaVP2rxgW4nKoskmDByafHuSFHC0v_LMoI,1045
|
|
12
|
+
_balder/decorator_for_vdevice.py,sha256=adEzLc0otuvCpj2TntuJWMQX_mq2oLtYRXFFbIhQVYo,5917
|
|
13
|
+
_balder/decorator_gateway.py,sha256=Qa8Cjm50I1OSHhADU8LmeSQh2QSuH9qGRuedWAlLfu4,1381
|
|
14
|
+
_balder/decorator_insert_into_tree.py,sha256=l3nkaTzKzt3TIFYLJoehYwT3xxRRNz83fq8JhvR6DfQ,2069
|
|
15
|
+
_balder/decorator_parametrize.py,sha256=lHxADbHZVnWOhvQTUQgaYU1hQ8NF3ghMU57Z3r_oWVE,912
|
|
16
|
+
_balder/decorator_parametrize_by_feature.py,sha256=r0iySfWcFxXIVu0BNWIRU_E6_o2-lSzpL5aUifoqiyU,1381
|
|
17
|
+
_balder/device.py,sha256=5O3tqj_iLKfHb5Zi_viJ76VH82cMOzX58OzRrMRRv0k,833
|
|
18
|
+
_balder/exceptions.py,sha256=_zQFUK4kYKaVGUtH9IcH0q-GOyBb9qzqSU6BOsUnG7Y,4375
|
|
19
|
+
_balder/exit_code.py,sha256=P0oFWKfjMo36Frv13ADRcm8eSPN3kE-WmZBE9qZJHdA,513
|
|
20
|
+
_balder/feature.py,sha256=Da6BP4H1X0eKm0DyQKRdSnrQeqV8QeCFE4JybI_wYSc,3888
|
|
21
|
+
_balder/fixture_definition_scope.py,sha256=0MP0U2fcM9iS28Ytkfuu3TzZ4cUNG5u81GBWGBm9ucw,709
|
|
22
|
+
_balder/fixture_execution_level.py,sha256=-y7-4bihTSMzhYvM2O1Qc40ovyvW7SP25rHvWHZpD6g,655
|
|
23
|
+
_balder/fixture_manager.py,sha256=RjAQjpvBBGy-loCVCHlkArvyr35rr4shNWUpeY-0QP4,29227
|
|
24
|
+
_balder/fixture_metadata.py,sha256=4vls8-I0bsRxLDNbD5Du4Cm2ZPYwxqfuSeEY6D654jE,872
|
|
25
|
+
_balder/node_gateway.py,sha256=64mv7Nx82JVknnQ09UXC-AcdDl6i_OB6NOsq_uBxeYo,4710
|
|
26
|
+
_balder/parametrization.py,sha256=SnaGeGpf7-5H-y107CBDx5V-onX-oiLS1KU1IquZwcU,2678
|
|
27
|
+
_balder/plugin_manager.py,sha256=Ev2jnx4NtFHDsZ3C6h0HrJtQisqLO-V34JRM3wzTnFM,6921
|
|
28
|
+
_balder/previous_executor_mark.py,sha256=gwpGu7d-kwPzQT8CmaPfuEG6fess2Upf5Q-zX6Oi6NY,835
|
|
29
|
+
_balder/routing_path.py,sha256=cHDjIIZbCeFHe_JX3kp3XADg3CApxGaKwTYQAPpCYZA,16767
|
|
30
|
+
_balder/scenario.py,sha256=ATowBUl2HYQBmJHZ-eBpliqjPsWPnZAme9kwIeX3Tak,840
|
|
31
|
+
_balder/setup.py,sha256=zSgtzNIWTVBjiZ5mn-qfpqIAnP3Im73t3Lqoaw0gWEI,763
|
|
32
|
+
_balder/solver.py,sha256=NbpAdvrGWdJTY6eZmNZFr7YDubyggY0yW64rDB3JkT0,13121
|
|
33
|
+
_balder/testresult.py,sha256=Tm5m0Rnpn3JgdQp22izsMIPoVxRU0ngJjUuS73eRboM,6826
|
|
34
|
+
_balder/unmapped_vdevice.py,sha256=oKr01YVTLViWtZkYz8kx8ccTx-KmwgNrHuQqqD4eLQw,513
|
|
35
|
+
_balder/utils.py,sha256=7bfjap7KKpFaRFusCimMpk-UYR4X1LR-pdA_q7DN28E,4271
|
|
36
|
+
_balder/vdevice.py,sha256=fc2xuMnTuN1RyfWh9mqFgLdSO9yGA75eERobTXUQ9JA,215
|
|
37
|
+
_balder/cnnrelations/__init__.py,sha256=LDnjVlJmclxmfKs3snKsK2RDMg8N7Xc6OeDVioxHR58,187
|
|
38
|
+
_balder/cnnrelations/and_connection_relation.py,sha256=mrio_jyMuJ2VmJtiFAKQ8BMqjHYiKIpWmuc4KpgcIMM,8048
|
|
39
|
+
_balder/cnnrelations/base_connection_relation.py,sha256=s9DufjB9EHkqVUHhjDurMGiPxtTte-yvwCQ2nFAHZeY,11402
|
|
40
|
+
_balder/cnnrelations/or_connection_relation.py,sha256=hPqC86qXRRgaOA6SeIzGnqxY6zd9OJ1KU5jwKbERo7s,2730
|
|
41
|
+
_balder/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
+
_balder/console/balder.py,sha256=rF1qgW6h35hKqGijGbZgGD2_y0Sd9Mbs_EXF2v_EUCk,2581
|
|
43
|
+
_balder/controllers/__init__.py,sha256=UNb6QzMj4TqPI15OSvXyUJlA-NSai0CKkQhV5JIsba0,570
|
|
44
|
+
_balder/controllers/base_device_controller.py,sha256=g-vY2SqKFUC9yGOvHLfbdmILT3sK2YyaWKSfvTRcC0o,3174
|
|
45
|
+
_balder/controllers/controller.py,sha256=XGRE5LKWxxftEf-bZODvKxXwULu09iG131wMwRoz4Fk,803
|
|
46
|
+
_balder/controllers/device_controller.py,sha256=MXX_Jr7MFhsEq-2GzneA0c09X-wdcPGEPfiYLlrtiSc,23985
|
|
47
|
+
_balder/controllers/feature_controller.py,sha256=ve7t9zwhkPP-L_LZbKghdD6An2LO2TYWErAfN9dfRdQ,41405
|
|
48
|
+
_balder/controllers/normal_scenario_setup_controller.py,sha256=w7VBxnrFu7_NBeTRD-XZBRflBjA8MPD_aL0DTh7w_pU,21924
|
|
49
|
+
_balder/controllers/scenario_controller.py,sha256=sfCpR4NfWgEIksVV3dP8gko95vu_6FBMseU5Pb_CBZk,22354
|
|
50
|
+
_balder/controllers/setup_controller.py,sha256=1jX_K_7iHQ2jWBZv-urC0_9lCi4RjrwxvtW7oWMVb7s,7082
|
|
51
|
+
_balder/controllers/vdevice_controller.py,sha256=6-PidCKgvUteZVJsbGkKX69f3cYYYnolONl5Gja16W8,5777
|
|
52
|
+
_balder/executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
|
+
_balder/executor/basic_executable_executor.py,sha256=Mta7a9stCiKPMQ6Hafe4jhlhLSeP6Bk7EWIPXUzrwNE,5135
|
|
54
|
+
_balder/executor/basic_executor.py,sha256=zX9lMkWThFXcqPzYaVMiELdg5WhjvvfxL_37j9vB5EA,8130
|
|
55
|
+
_balder/executor/executor_tree.py,sha256=I3zy5qOrQWoT3_3YnGDvGvfJE829J0X9xT7WtSru-pI,10618
|
|
56
|
+
_balder/executor/parametrized_testcase_executor.py,sha256=uR_CwdIRxiL1vqJP2P2htc0JPPevMGarIQs7cqHNzmU,2106
|
|
57
|
+
_balder/executor/scenario_executor.py,sha256=3-CkamjyIatDxS3INcYGTXDOtGR-bokcMLaMxC10Ytg,11344
|
|
58
|
+
_balder/executor/setup_executor.py,sha256=Icn-b3MHLMCGGOIGAPB01KWC6LkkZ-ikD_0XqcQjK0Y,8570
|
|
59
|
+
_balder/executor/testcase_executor.py,sha256=xSOjDexvcUET6vfwn1ogOs1Xi-9yeCt2AsnivXZkTao,7702
|
|
60
|
+
_balder/executor/unresolved_parametrized_testcase_executor.py,sha256=nwScqqiJD7Clkk3YcrPqXJnGEWjvunAlUYAwYvpUI2s,9075
|
|
61
|
+
_balder/executor/variation_executor.py,sha256=lfBVnGC5O8DeS8e9rJQjDlRauAMa7Vrhtcd7Smrwagg,53649
|
|
62
|
+
_balder/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
_balder/objects/connections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
+
_balder/objects/connections/osi_1_physical.py,sha256=74lKWJd6ETEtvNXH0_dmTbkZlStJ_af218pQkUht0aA,2189
|
|
65
|
+
_balder/objects/connections/osi_2_datalink.py,sha256=0k1imyx6x_YeSvtf5CG27rcLeDzpmz76DUbjWyIGJqg,875
|
|
66
|
+
_balder/objects/connections/osi_3_network.py,sha256=7s4gEYxR38LE3yUTPoDaYT6kJiWBQdcU9OBFO29E2j0,1175
|
|
67
|
+
_balder/objects/connections/osi_4_transport.py,sha256=9INPME_TWiZQ9rXUzIV__yOPsLQXcdf-7F336WijFOo,983
|
|
68
|
+
_balder/objects/connections/osi_5_session.py,sha256=cMSIBMGk80VSgmFdqWaYI3HQLOvJHi4uTaqDMqWaU5Q,390
|
|
69
|
+
_balder/objects/connections/osi_6_presentation.py,sha256=zCQXocR14CC8rFONFHUethvsoHh4b92e0CC3nLDqNZs,394
|
|
70
|
+
_balder/objects/connections/osi_7_application.py,sha256=VPTlKKCEd9FFusce2wVbScIBPzpikPQtpSPE7PHxMUI,2304
|
|
71
|
+
_balder/objects/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
72
|
+
_balder/objects/devices/this_device.py,sha256=Ah0UNIqgUbtZ_B85fROjKbQS-NTDH1F3gscshB8UBsc,442
|
|
73
|
+
balder/__init__.py,sha256=PvPDJT9-mnDt3PuidCkPM6mB6wvcETIoINld3Jt1TUU,1184
|
|
74
|
+
balder/connections.py,sha256=H6rf7UsiVY_FeZLngZXCT9WDw9cQqpiDiPbz_0J4yjM,2331
|
|
75
|
+
balder/devices.py,sha256=zupHtz8yaiEjzR8CrvgZU-RzsDQcZFeN5mObfhtjwSw,173
|
|
76
|
+
balder/exceptions.py,sha256=iaR4P2L7K3LggYSDnjCGLheZEaGgnMilxDQdoYD5KHQ,1954
|
|
77
|
+
balder/parametrization.py,sha256=R8U67f6DEnXdDc9cGOgS8yFTEAfhglv1v9mnAUAExUg,150
|
|
78
|
+
baldertest-0.1.0b11.dist-info/LICENSE,sha256=Daz9qTpqbiq-klWb2Q9lYOmn3rJ5oIQnbs62sGcqOZ4,1084
|
|
79
|
+
baldertest-0.1.0b11.dist-info/METADATA,sha256=zFBAEOFb5RiSNIk31ATneqnYvTrqD6d-oLZjG_vOklU,15784
|
|
80
|
+
baldertest-0.1.0b11.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
|
81
|
+
baldertest-0.1.0b11.dist-info/entry_points.txt,sha256=hzqu_nrMKTCi5IJqzS1fhIXWEiL7mTGZ-kgj2lUYlRU,65
|
|
82
|
+
baldertest-0.1.0b11.dist-info/top_level.txt,sha256=RUkIBkNLqHMemx2C9aEpoS65dpqb6_jU-oagIPxGQEA,15
|
|
83
|
+
baldertest-0.1.0b11.dist-info/RECORD,,
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
_balder/__init__.py,sha256=Qk4wkVInPlXLFV36Yco5K7PDawJoeeWQVakzj6g5pmA,195
|
|
2
|
-
_balder/_version.py,sha256=xdDxoDc8nbJHb9-aJOnXPcJO9u_wtajm1m932_7HjoI,413
|
|
3
|
-
_balder/balder_plugin.py,sha256=EQzJP1dwwVDydhMLJtAmTCXOczlDuXBJur05lalmK_k,3136
|
|
4
|
-
_balder/balder_session.py,sha256=WPOcarZQhTzMeAQt-hRqI8GtXN5TdMIqzyhgYD2h4rw,16079
|
|
5
|
-
_balder/balder_settings.py,sha256=U96PVep7dGSaTXrMfeZMYf6oCIcEDPEqrBlFcoX476s,582
|
|
6
|
-
_balder/collector.py,sha256=T_7LO8ZNty8EyOmM-U-uhU9-umdAv1fbuMVNjQWUwj0,42156
|
|
7
|
-
_balder/connection.py,sha256=MNazK97CIEJCA4o1krjKjtilVhOYMWD8TZT0YT5nCJs,71778
|
|
8
|
-
_balder/decorator_connect.py,sha256=TvyJNIslBAYVQWhsfSeFgXKp_DP7sZF1BmcP6RhIdKo,5988
|
|
9
|
-
_balder/decorator_covered_by.py,sha256=Y6WMUuyn_uvFkjGfbts8OE5Bsir_7LTRB-jxYGaYk4Y,4069
|
|
10
|
-
_balder/decorator_fixture.py,sha256=Nvr3H-r8LlPiGSGEst3D1M-KQaBqSA1u1u13qzZrSwk,1138
|
|
11
|
-
_balder/decorator_for_vdevice.py,sha256=j92TNH6kAz6jtQhOPcNszzmEAWezEFbX8KAh3HaNvSU,6643
|
|
12
|
-
_balder/decorator_gateway.py,sha256=w6-1UFh8ydt81U6ymGxeBUFAIh2aaZ3U9pHpEANMlj8,1284
|
|
13
|
-
_balder/decorator_insert_into_tree.py,sha256=l3nkaTzKzt3TIFYLJoehYwT3xxRRNz83fq8JhvR6DfQ,2069
|
|
14
|
-
_balder/device.py,sha256=5O3tqj_iLKfHb5Zi_viJ76VH82cMOzX58OzRrMRRv0k,833
|
|
15
|
-
_balder/exceptions.py,sha256=d0YSw8zVax2bFakG_1hcLlAXlyQh5jXnOuIPL1HLfI4,4202
|
|
16
|
-
_balder/exit_code.py,sha256=P0oFWKfjMo36Frv13ADRcm8eSPN3kE-WmZBE9qZJHdA,513
|
|
17
|
-
_balder/feature.py,sha256=B3yPc-WZwLt1Q4dO9s2j9g1MBTcMBjn6oWoLnRgrwSs,3845
|
|
18
|
-
_balder/fixture_manager.py,sha256=_fJZAaBK8Pej96juvdkigi7rjKJ-RTbfxhkSs78OBvg,28656
|
|
19
|
-
_balder/node_gateway.py,sha256=64mv7Nx82JVknnQ09UXC-AcdDl6i_OB6NOsq_uBxeYo,4710
|
|
20
|
-
_balder/plugin_manager.py,sha256=Ev2jnx4NtFHDsZ3C6h0HrJtQisqLO-V34JRM3wzTnFM,6921
|
|
21
|
-
_balder/previous_executor_mark.py,sha256=gwpGu7d-kwPzQT8CmaPfuEG6fess2Upf5Q-zX6Oi6NY,835
|
|
22
|
-
_balder/routing_path.py,sha256=6MJkhzBTHow2ESXzKQ2otwRFbPcKhLTYVy-zh7c5HeE,17172
|
|
23
|
-
_balder/scenario.py,sha256=ATowBUl2HYQBmJHZ-eBpliqjPsWPnZAme9kwIeX3Tak,840
|
|
24
|
-
_balder/setup.py,sha256=zSgtzNIWTVBjiZ5mn-qfpqIAnP3Im73t3Lqoaw0gWEI,763
|
|
25
|
-
_balder/solver.py,sha256=qgcCRyLg3nsO2d3H0pukxmm2oe_h6t0pBGyZ-FgQYKc,11998
|
|
26
|
-
_balder/testresult.py,sha256=byJD3F84TNH40k30pjnxeLHXAAE-lqbVlk1JOSBtdNo,6783
|
|
27
|
-
_balder/unmapped_vdevice.py,sha256=oKr01YVTLViWtZkYz8kx8ccTx-KmwgNrHuQqqD4eLQw,513
|
|
28
|
-
_balder/utils.py,sha256=2kcX6bZIJW9Z8g-Hv0ue2mdOLBQYq4T2XSZpH2in1MQ,3092
|
|
29
|
-
_balder/vdevice.py,sha256=fc2xuMnTuN1RyfWh9mqFgLdSO9yGA75eERobTXUQ9JA,215
|
|
30
|
-
_balder/console/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
31
|
-
_balder/console/balder.py,sha256=0Ezl6KMXqmayLweyj6wLDctuq2JWs52UA6DxO_HmkDc,2539
|
|
32
|
-
_balder/controllers/__init__.py,sha256=UNb6QzMj4TqPI15OSvXyUJlA-NSai0CKkQhV5JIsba0,570
|
|
33
|
-
_balder/controllers/base_device_controller.py,sha256=g-vY2SqKFUC9yGOvHLfbdmILT3sK2YyaWKSfvTRcC0o,3174
|
|
34
|
-
_balder/controllers/controller.py,sha256=XGRE5LKWxxftEf-bZODvKxXwULu09iG131wMwRoz4Fk,803
|
|
35
|
-
_balder/controllers/device_controller.py,sha256=bT8c0_9UmrAmzuZ-dsleSnw2pIppfITDG4ttEZjWlC8,23477
|
|
36
|
-
_balder/controllers/feature_controller.py,sha256=jaIbKbiEOdYRpYWuGdaByQBtlThK-u7OAr_xYhAfnEg,43737
|
|
37
|
-
_balder/controllers/normal_scenario_setup_controller.py,sha256=cF2U-tC3LEyWdZDqZP_mN3Q_7uIzg9jiY_J--Pi5kk8,21877
|
|
38
|
-
_balder/controllers/scenario_controller.py,sha256=gpN_wxEYcHlh6DVk7pRbPj_x2cmM6iIAskcpLstQo2g,17973
|
|
39
|
-
_balder/controllers/setup_controller.py,sha256=iNIMFjawYJWaSToUUfpmRK6ssycPyZGNlcvms8c7GKM,7135
|
|
40
|
-
_balder/controllers/vdevice_controller.py,sha256=6-PidCKgvUteZVJsbGkKX69f3cYYYnolONl5Gja16W8,5777
|
|
41
|
-
_balder/executor/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
42
|
-
_balder/executor/basic_executor.py,sha256=PYuQ1TKXKnbnQirCmayjDSyPyBmqJws1HWqkHmGKZtw,11137
|
|
43
|
-
_balder/executor/executor_tree.py,sha256=nEZ2bwWuayPZQrGSucFiDzuFSrYDnUVzqnVCtDLq2Ys,10439
|
|
44
|
-
_balder/executor/scenario_executor.py,sha256=3j5lAFCA4zCxhivjMPFGlWMi_ieZGkdwnZ_JQoAt4Rw,11094
|
|
45
|
-
_balder/executor/setup_executor.py,sha256=FsPTPsXZMoVB7xibEpCcwjC-BpkfGVZmx5lVbuebduw,8326
|
|
46
|
-
_balder/executor/testcase_executor.py,sha256=jNfACO-AuOktIgCVcsavh0rHbUr5MmI-jML-LPMvo0w,6639
|
|
47
|
-
_balder/executor/variation_executor.py,sha256=Ms8dfZPIL5-sYzMg2c1-WANDz8ZBHqNHXgegDobm7Gg,53106
|
|
48
|
-
_balder/objects/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
-
_balder/objects/connections/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
50
|
-
_balder/objects/connections/osi_1_physical.py,sha256=74lKWJd6ETEtvNXH0_dmTbkZlStJ_af218pQkUht0aA,2189
|
|
51
|
-
_balder/objects/connections/osi_2_datalink.py,sha256=0k1imyx6x_YeSvtf5CG27rcLeDzpmz76DUbjWyIGJqg,875
|
|
52
|
-
_balder/objects/connections/osi_3_network.py,sha256=qbDAIdgvQu7gs_BTYKeWug3bSWLVDPX2-W57I5Tygw0,1173
|
|
53
|
-
_balder/objects/connections/osi_4_transport.py,sha256=dXp4pbEK6VW9FaKQbH1utEEfut-XwlwEX0h2xVSts3k,981
|
|
54
|
-
_balder/objects/connections/osi_5_session.py,sha256=cMSIBMGk80VSgmFdqWaYI3HQLOvJHi4uTaqDMqWaU5Q,390
|
|
55
|
-
_balder/objects/connections/osi_6_presentation.py,sha256=zCQXocR14CC8rFONFHUethvsoHh4b92e0CC3nLDqNZs,394
|
|
56
|
-
_balder/objects/connections/osi_7_application.py,sha256=VPTlKKCEd9FFusce2wVbScIBPzpikPQtpSPE7PHxMUI,2304
|
|
57
|
-
_balder/objects/devices/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
58
|
-
_balder/objects/devices/this_device.py,sha256=Ah0UNIqgUbtZ_B85fROjKbQS-NTDH1F3gscshB8UBsc,442
|
|
59
|
-
balder/__init__.py,sha256=BfbdkW_CZCXWGqtdg1gpAjO0AY8b4h-P-flWsIMG-X0,1003
|
|
60
|
-
balder/connections.py,sha256=H6rf7UsiVY_FeZLngZXCT9WDw9cQqpiDiPbz_0J4yjM,2331
|
|
61
|
-
balder/devices.py,sha256=zupHtz8yaiEjzR8CrvgZU-RzsDQcZFeN5mObfhtjwSw,173
|
|
62
|
-
balder/exceptions.py,sha256=z_vlipJIsFwwJy9Ae_oGDJGPTINiAInMNZuCvEy6SUE,1884
|
|
63
|
-
baldertest-0.1.0b9.dist-info/LICENSE,sha256=Daz9qTpqbiq-klWb2Q9lYOmn3rJ5oIQnbs62sGcqOZ4,1084
|
|
64
|
-
baldertest-0.1.0b9.dist-info/METADATA,sha256=HzdUqwAR2FIIYoAWg6RxXoFOJzUOqpkxcA7q-V3SHbM,15783
|
|
65
|
-
baldertest-0.1.0b9.dist-info/WHEEL,sha256=mguMlWGMX-VHnMpKOjjQidIo1ssRlCFu4a4mBpz1s2M,91
|
|
66
|
-
baldertest-0.1.0b9.dist-info/entry_points.txt,sha256=hzqu_nrMKTCi5IJqzS1fhIXWEiL7mTGZ-kgj2lUYlRU,65
|
|
67
|
-
baldertest-0.1.0b9.dist-info/top_level.txt,sha256=RUkIBkNLqHMemx2C9aEpoS65dpqb6_jU-oagIPxGQEA,15
|
|
68
|
-
baldertest-0.1.0b9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|