ansys-fluent-core 0.29.dev0__py3-none-any.whl → 0.29.dev2__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.
Potentially problematic release.
This version of ansys-fluent-core might be problematic. Click here for more details.
- ansys/fluent/core/__init__.py +1 -1
- ansys/fluent/core/_version.py +2 -2
- ansys/fluent/core/codegen/tuigen.py +1 -1
- ansys/fluent/core/codegen/walk_api.py +45 -18
- ansys/fluent/core/generated/api_tree/api_objects.json +1 -1
- ansys/fluent/core/generated/datamodel_252/meshing.py +1 -0
- ansys/fluent/core/generated/datamodel_252/preferences.py +7 -0
- ansys/fluent/core/generated/fluent_version_252.py +3 -3
- ansys/fluent/core/generated/meshing/tui_252.py +395 -390
- ansys/fluent/core/generated/solver/settings_252.py +782 -306
- ansys/fluent/core/generated/solver/settings_252.pyi +442 -133
- ansys/fluent/core/generated/solver/tui_252.py +4046 -3737
- ansys/fluent/core/launcher/container_launcher.py +4 -3
- ansys/fluent/core/launcher/fluent_container.py +22 -19
- ansys/fluent/core/launcher/launcher.py +2 -2
- ansys/fluent/core/launcher/pim_launcher.py +2 -2
- ansys/fluent/core/launcher/slurm_launcher.py +2 -2
- ansys/fluent/core/launcher/standalone_launcher.py +2 -2
- ansys/fluent/core/logging.py +2 -0
- ansys/fluent/core/logging_config.yaml +3 -0
- ansys/fluent/core/services/app_utilities.py +2 -1
- ansys/fluent/core/services/datamodel_se.py +141 -61
- ansys/fluent/core/services/field_data.py +252 -0
- ansys/fluent/core/services/interceptors.py +28 -2
- ansys/fluent/core/session.py +7 -2
- ansys/fluent/core/session_solver.py +21 -0
- ansys/fluent/core/streaming_services/datamodel_event_streaming.py +12 -12
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/LICENSE +1 -1
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/METADATA +53 -31
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/RECORD +65 -141
- {ansys_fluent_core-0.29.dev0.dist-info → ansys_fluent_core-0.29.dev2.dist-info}/WHEEL +1 -1
- ansys/fluent/core/docs/README.rst +0 -155
- ansys/fluent/tests/conftest.py +0 -415
- ansys/fluent/tests/fluent_fixtures.py +0 -195
- ansys/fluent/tests/integration/test_optislang/test_optislang_integration.py +0 -263
- ansys/fluent/tests/parametric/test_local_parametric_run.py +0 -36
- ansys/fluent/tests/parametric/test_local_parametric_setup.py +0 -34
- ansys/fluent/tests/parametric/test_parametric_workflow.py +0 -279
- ansys/fluent/tests/test_aero_session.py +0 -88
- ansys/fluent/tests/test_batch_ops.py +0 -39
- ansys/fluent/tests/test_builtin_settings.py +0 -761
- ansys/fluent/tests/test_cad_to_post_ftm.py +0 -525
- ansys/fluent/tests/test_cad_to_post_wtm.py +0 -250
- ansys/fluent/tests/test_casereader.py +0 -324
- ansys/fluent/tests/test_codegen.py +0 -783
- ansys/fluent/tests/test_creatable.py +0 -31
- ansys/fluent/tests/test_data_model_cache.py +0 -434
- ansys/fluent/tests/test_datamodel_api.py +0 -449
- ansys/fluent/tests/test_datamodel_service.py +0 -814
- ansys/fluent/tests/test_datareader.py +0 -103
- ansys/fluent/tests/test_error_handling.py +0 -24
- ansys/fluent/tests/test_events_manager.py +0 -214
- ansys/fluent/tests/test_field_data.py +0 -466
- ansys/fluent/tests/test_file_session.py +0 -355
- ansys/fluent/tests/test_file_transfer_service.py +0 -165
- ansys/fluent/tests/test_fix_doc.py +0 -29
- ansys/fluent/tests/test_flobject.py +0 -1235
- ansys/fluent/tests/test_fluent_fixes.py +0 -106
- ansys/fluent/tests/test_fluent_session.py +0 -270
- ansys/fluent/tests/test_fluent_version.py +0 -66
- ansys/fluent/tests/test_fluent_version_marker.py +0 -65
- ansys/fluent/tests/test_icing_session.py +0 -9
- ansys/fluent/tests/test_launcher.py +0 -529
- ansys/fluent/tests/test_launcher_remote.py +0 -272
- ansys/fluent/tests/test_lispy.py +0 -40
- ansys/fluent/tests/test_logging.py +0 -16
- ansys/fluent/tests/test_mapped_api.py +0 -774
- ansys/fluent/tests/test_meshing_utilities.py +0 -2436
- ansys/fluent/tests/test_meshing_workflow.py +0 -421
- ansys/fluent/tests/test_meshingmode/test_meshing_launch.py +0 -168
- ansys/fluent/tests/test_new_meshing_workflow.py +0 -1801
- ansys/fluent/tests/test_preferences.py +0 -89
- ansys/fluent/tests/test_pure_mesh_vs_mesh_workflow.py +0 -101
- ansys/fluent/tests/test_reduction.py +0 -484
- ansys/fluent/tests/test_rp_vars.py +0 -77
- ansys/fluent/tests/test_scheduler.py +0 -471
- ansys/fluent/tests/test_scheme_eval_222.py +0 -338
- ansys/fluent/tests/test_scheme_eval_231.py +0 -243
- ansys/fluent/tests/test_search.py +0 -344
- ansys/fluent/tests/test_session.py +0 -594
- ansys/fluent/tests/test_settings_api.py +0 -606
- ansys/fluent/tests/test_settings_reader.py +0 -85
- ansys/fluent/tests/test_slurm_future.py +0 -67
- ansys/fluent/tests/test_solution_variables.py +0 -241
- ansys/fluent/tests/test_solver_monitors.py +0 -83
- ansys/fluent/tests/test_solvermode/boundaries_periodic_expDict +0 -1712
- ansys/fluent/tests/test_solvermode/test_boundaries.py +0 -127
- ansys/fluent/tests/test_solvermode/test_calculationactivities.py +0 -20
- ansys/fluent/tests/test_solvermode/test_controls.py +0 -131
- ansys/fluent/tests/test_solvermode/test_general.py +0 -109
- ansys/fluent/tests/test_solvermode/test_initialization.py +0 -83
- ansys/fluent/tests/test_solvermode/test_materials.py +0 -40
- ansys/fluent/tests/test_solvermode/test_methods.py +0 -65
- ansys/fluent/tests/test_solvermode/test_models.py +0 -99
- ansys/fluent/tests/test_solvermode/test_named_expressions.py +0 -35
- ansys/fluent/tests/test_solvermode/test_post_vector.py +0 -22
- ansys/fluent/tests/test_solvermode/test_species_model.py +0 -67
- ansys/fluent/tests/test_streaming_services.py +0 -52
- ansys/fluent/tests/test_systemcoupling.py +0 -44
- ansys/fluent/tests/test_topy.py +0 -179
- ansys/fluent/tests/test_tui_api.py +0 -70
- ansys/fluent/tests/test_type_stub.py +0 -37
- ansys/fluent/tests/test_utils.py +0 -82
- ansys/fluent/tests/util/__init__.py +0 -36
- ansys/fluent/tests/util/meshing_workflow.py +0 -33
- ansys/fluent/tests/util/solver.py +0 -72
- ansys_fluent_core-0.29.dev0.dist-info/AUTHORS +0 -12
|
@@ -1,449 +0,0 @@
|
|
|
1
|
-
import time
|
|
2
|
-
|
|
3
|
-
import pytest
|
|
4
|
-
from util import create_datamodel_root_in_server, create_root_using_datamodelgen
|
|
5
|
-
|
|
6
|
-
from ansys.fluent.core.services.datamodel_se import (
|
|
7
|
-
SubscribeEventError,
|
|
8
|
-
convert_path_to_se_path,
|
|
9
|
-
)
|
|
10
|
-
from ansys.fluent.core.utils.execution import timeout_loop
|
|
11
|
-
|
|
12
|
-
rule_str = (
|
|
13
|
-
"RULES:\n"
|
|
14
|
-
" STRING: X\n"
|
|
15
|
-
" default = ijk\n"
|
|
16
|
-
" END\n"
|
|
17
|
-
" SINGLETON: ROOT\n"
|
|
18
|
-
" members = A, B, D, G\n"
|
|
19
|
-
" commands= C\n"
|
|
20
|
-
" SINGLETON: A\n"
|
|
21
|
-
" members = X\n"
|
|
22
|
-
" x = $./X\n"
|
|
23
|
-
" END\n"
|
|
24
|
-
" OBJECT: B\n"
|
|
25
|
-
" members = X\n"
|
|
26
|
-
" END\n"
|
|
27
|
-
" SINGLETON: D\n"
|
|
28
|
-
" members = E, F, X\n"
|
|
29
|
-
" SINGLETON: E\n"
|
|
30
|
-
" members = X\n"
|
|
31
|
-
" END\n"
|
|
32
|
-
" SINGLETON: F\n"
|
|
33
|
-
" members = X\n"
|
|
34
|
-
" END\n"
|
|
35
|
-
" END\n"
|
|
36
|
-
" SINGLETON: G\n"
|
|
37
|
-
" members = H\n"
|
|
38
|
-
" DICT: H\n"
|
|
39
|
-
" END\n"
|
|
40
|
-
" END\n"
|
|
41
|
-
" COMMAND: C\n"
|
|
42
|
-
" arguments = X\n"
|
|
43
|
-
" x = $/A/X\n"
|
|
44
|
-
" END\n"
|
|
45
|
-
" END\n"
|
|
46
|
-
"END\n"
|
|
47
|
-
)
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
51
|
-
def test_env_var_setting(datamodel_api_version_all, request, new_solver_session):
|
|
52
|
-
solver = new_solver_session
|
|
53
|
-
test_name = request.node.name
|
|
54
|
-
for var in ["REMOTING_NEW_DM_API", "REMOTING_MAPPED_NEW_DM_API"]:
|
|
55
|
-
# TODO: It might be possible to check the param value in the fixture
|
|
56
|
-
# instead of checking the test name here.
|
|
57
|
-
if test_name.endswith("[old]"):
|
|
58
|
-
assert solver.scheme_eval.scheme_eval(f'(getenv "{var}")') is None
|
|
59
|
-
elif test_name.endswith("[new]"):
|
|
60
|
-
assert solver.scheme_eval.scheme_eval(f'(getenv "{var}")') == "1"
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
64
|
-
def test_datamodel_api_on_child_created(datamodel_api_version_all, new_solver_session):
|
|
65
|
-
solver = new_solver_session
|
|
66
|
-
app_name = "test"
|
|
67
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
68
|
-
service = solver._se_service
|
|
69
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
70
|
-
|
|
71
|
-
called = 0
|
|
72
|
-
created = []
|
|
73
|
-
|
|
74
|
-
def cb(obj):
|
|
75
|
-
nonlocal called
|
|
76
|
-
nonlocal created
|
|
77
|
-
called += 1
|
|
78
|
-
created.append(convert_path_to_se_path(obj.path))
|
|
79
|
-
|
|
80
|
-
subscription = service.add_on_child_created(app_name, "/", "B", root, cb)
|
|
81
|
-
assert called == 0
|
|
82
|
-
assert created == []
|
|
83
|
-
service.set_state(app_name, "/", {"B:b": {"_name_": "b"}})
|
|
84
|
-
timeout_loop(lambda: called == 1, timeout=5)
|
|
85
|
-
assert called == 1
|
|
86
|
-
assert created == ["/B:b"]
|
|
87
|
-
subscription.unsubscribe()
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
91
|
-
def test_datamodel_api_on_changed(datamodel_api_version_all, new_solver_session):
|
|
92
|
-
solver = new_solver_session
|
|
93
|
-
app_name = "test"
|
|
94
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
95
|
-
service = solver._se_service
|
|
96
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
97
|
-
called = 0
|
|
98
|
-
state = None
|
|
99
|
-
called_obj = 0
|
|
100
|
-
state_obj = None
|
|
101
|
-
|
|
102
|
-
def cb(obj):
|
|
103
|
-
nonlocal called
|
|
104
|
-
nonlocal state
|
|
105
|
-
state = obj()
|
|
106
|
-
called += 1
|
|
107
|
-
|
|
108
|
-
def cb_obj(obj):
|
|
109
|
-
nonlocal called_obj
|
|
110
|
-
nonlocal state_obj
|
|
111
|
-
state_obj = obj()
|
|
112
|
-
called_obj += 1
|
|
113
|
-
|
|
114
|
-
subscription = service.add_on_changed(app_name, "/A/X", root.A.X, cb)
|
|
115
|
-
subscription_obj = service.add_on_changed(app_name, "/A", root.A, cb_obj)
|
|
116
|
-
assert called == 0
|
|
117
|
-
assert state is None
|
|
118
|
-
assert called_obj == 0
|
|
119
|
-
assert state_obj is None
|
|
120
|
-
service.set_state(app_name, "/A/X", "lmn")
|
|
121
|
-
timeout_loop(lambda: called == 1, timeout=5)
|
|
122
|
-
assert called == 1
|
|
123
|
-
assert state == "lmn"
|
|
124
|
-
assert called_obj == 1
|
|
125
|
-
assert state_obj == {"X": "lmn"}
|
|
126
|
-
service.set_state(app_name, "/A/X", "abc")
|
|
127
|
-
timeout_loop(lambda: called == 2, timeout=5)
|
|
128
|
-
assert called == 2
|
|
129
|
-
assert state == "abc"
|
|
130
|
-
assert called_obj == 2
|
|
131
|
-
assert state_obj == {"X": "abc"}
|
|
132
|
-
subscription.unsubscribe()
|
|
133
|
-
subscription_obj.unsubscribe()
|
|
134
|
-
service.set_state(app_name, "/A/X", "xyz")
|
|
135
|
-
time.sleep(5)
|
|
136
|
-
assert called == 2
|
|
137
|
-
assert state == "abc"
|
|
138
|
-
assert called_obj == 2
|
|
139
|
-
assert state_obj == {"X": "abc"}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
143
|
-
def test_datamodel_api_on_affected(datamodel_api_version_all, new_solver_session):
|
|
144
|
-
solver = new_solver_session
|
|
145
|
-
app_name = "test"
|
|
146
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
147
|
-
service = solver._se_service
|
|
148
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
149
|
-
called = 0
|
|
150
|
-
|
|
151
|
-
def cb(obj):
|
|
152
|
-
nonlocal called
|
|
153
|
-
called += 1
|
|
154
|
-
|
|
155
|
-
subscription = service.add_on_affected(app_name, "/D", root.D, cb)
|
|
156
|
-
assert called == 0
|
|
157
|
-
service.set_state(app_name, "/D/X", "lmn")
|
|
158
|
-
timeout_loop(lambda: called == 1, timeout=5)
|
|
159
|
-
assert called == 1
|
|
160
|
-
service.set_state(app_name, "/D/E/X", "lmn")
|
|
161
|
-
timeout_loop(lambda: called == 2, timeout=5)
|
|
162
|
-
assert called == 2
|
|
163
|
-
service.set_state(app_name, "/A/X", "lmn")
|
|
164
|
-
time.sleep(5)
|
|
165
|
-
assert called == 2
|
|
166
|
-
subscription.unsubscribe()
|
|
167
|
-
service.set_state(app_name, "/D/E/X", "pqr")
|
|
168
|
-
time.sleep(5)
|
|
169
|
-
assert called == 2
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
173
|
-
def test_datamodel_api_on_affected_at_type_path(
|
|
174
|
-
datamodel_api_version_all, new_solver_session
|
|
175
|
-
):
|
|
176
|
-
solver = new_solver_session
|
|
177
|
-
app_name = "test"
|
|
178
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
179
|
-
service = solver._se_service
|
|
180
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
181
|
-
called = 0
|
|
182
|
-
|
|
183
|
-
def cb(obj):
|
|
184
|
-
nonlocal called
|
|
185
|
-
called += 1
|
|
186
|
-
|
|
187
|
-
subscription = service.add_on_affected_at_type_path(
|
|
188
|
-
app_name, "/D", "E", root.D.E, cb
|
|
189
|
-
)
|
|
190
|
-
assert called == 0
|
|
191
|
-
service.set_state(app_name, "/D/X", "lmn")
|
|
192
|
-
time.sleep(5)
|
|
193
|
-
assert called == 0
|
|
194
|
-
service.set_state(app_name, "/D/E/X", "lmn")
|
|
195
|
-
timeout_loop(lambda: called == 1, timeout=5)
|
|
196
|
-
assert called == 1
|
|
197
|
-
service.set_state(app_name, "/D/F/X", "lmn")
|
|
198
|
-
time.sleep(5)
|
|
199
|
-
assert called == 1
|
|
200
|
-
subscription.unsubscribe()
|
|
201
|
-
service.set_state(app_name, "/D/E/X", "pqr")
|
|
202
|
-
time.sleep(5)
|
|
203
|
-
assert called == 1
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
207
|
-
def test_datamodel_api_on_deleted(
|
|
208
|
-
datamodel_api_version_all, request, new_solver_session
|
|
209
|
-
):
|
|
210
|
-
solver = new_solver_session
|
|
211
|
-
app_name = "test"
|
|
212
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
213
|
-
service = solver._se_service
|
|
214
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
215
|
-
called = False
|
|
216
|
-
called_obj = False
|
|
217
|
-
|
|
218
|
-
def cb():
|
|
219
|
-
nonlocal called
|
|
220
|
-
called = True
|
|
221
|
-
|
|
222
|
-
def cb_obj():
|
|
223
|
-
nonlocal called_obj
|
|
224
|
-
called_obj = True
|
|
225
|
-
|
|
226
|
-
service.set_state(app_name, "/", {"B:b": {"_name_": "b"}})
|
|
227
|
-
subscription = service.add_on_deleted(app_name, "/B:b/X", root.B["b"].X, cb)
|
|
228
|
-
subscription_obj = service.add_on_deleted(app_name, "/B:b", root.B["b"], cb_obj)
|
|
229
|
-
assert not called
|
|
230
|
-
assert not called_obj
|
|
231
|
-
service.delete_object(app_name, "/B:b")
|
|
232
|
-
time.sleep(5)
|
|
233
|
-
test_name = request.node.name
|
|
234
|
-
# TODO: Note comment in StateEngine test testDataModelAPIOnDeleted
|
|
235
|
-
if test_name.endswith("[old]"):
|
|
236
|
-
assert called
|
|
237
|
-
elif test_name.endswith("[new]"):
|
|
238
|
-
assert not called
|
|
239
|
-
assert called_obj
|
|
240
|
-
subscription.unsubscribe()
|
|
241
|
-
subscription_obj.unsubscribe()
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
245
|
-
def test_datamodel_api_on_attribute_changed(
|
|
246
|
-
datamodel_api_version_all, new_solver_session
|
|
247
|
-
):
|
|
248
|
-
solver = new_solver_session
|
|
249
|
-
app_name = "test"
|
|
250
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
251
|
-
service = solver._se_service
|
|
252
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
253
|
-
called = 0
|
|
254
|
-
value = None
|
|
255
|
-
|
|
256
|
-
def cb(val):
|
|
257
|
-
nonlocal called
|
|
258
|
-
nonlocal value
|
|
259
|
-
value = val
|
|
260
|
-
called += 1
|
|
261
|
-
|
|
262
|
-
subscription = service.add_on_attribute_changed(app_name, "/A", "x", root.A, cb)
|
|
263
|
-
assert called == 0
|
|
264
|
-
assert value is None
|
|
265
|
-
service.set_state(app_name, "/A/X", "cde")
|
|
266
|
-
timeout_loop(lambda: called == 1, timeout=5)
|
|
267
|
-
assert called == 1
|
|
268
|
-
assert value == "cde"
|
|
269
|
-
service.set_state(app_name, "/A/X", "xyz")
|
|
270
|
-
timeout_loop(lambda: called == 2, timeout=5)
|
|
271
|
-
assert called == 2
|
|
272
|
-
assert value == "xyz"
|
|
273
|
-
subscription.unsubscribe()
|
|
274
|
-
service.set_state(app_name, "/A/X", "abc")
|
|
275
|
-
time.sleep(5)
|
|
276
|
-
assert called == 2
|
|
277
|
-
assert value == "xyz"
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
281
|
-
def test_datamodel_api_on_command_attribute_changed(
|
|
282
|
-
datamodel_api_version_all, new_solver_session
|
|
283
|
-
):
|
|
284
|
-
solver = new_solver_session
|
|
285
|
-
app_name = "test"
|
|
286
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
287
|
-
service = solver._se_service
|
|
288
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
289
|
-
called = 0
|
|
290
|
-
value = None
|
|
291
|
-
|
|
292
|
-
def cb(val):
|
|
293
|
-
nonlocal called
|
|
294
|
-
nonlocal value
|
|
295
|
-
value = val
|
|
296
|
-
called += 1
|
|
297
|
-
|
|
298
|
-
subscription = service.add_on_command_attribute_changed(
|
|
299
|
-
app_name, "/", "C", "x", root.C, cb
|
|
300
|
-
)
|
|
301
|
-
assert called == 0
|
|
302
|
-
assert value is None
|
|
303
|
-
service.set_state(app_name, "/A/X", "cde")
|
|
304
|
-
timeout_loop(lambda: called == 1, timeout=5)
|
|
305
|
-
assert called == 1
|
|
306
|
-
assert value == "cde"
|
|
307
|
-
service.set_state(app_name, "/A/X", "xyz")
|
|
308
|
-
timeout_loop(lambda: called == 2, timeout=5)
|
|
309
|
-
assert called == 2
|
|
310
|
-
# TODO: value is still "cde" in both old and new API
|
|
311
|
-
# assert value == "xyz"
|
|
312
|
-
subscription.unsubscribe()
|
|
313
|
-
service.set_state(app_name, "/A/X", "abc")
|
|
314
|
-
time.sleep(5)
|
|
315
|
-
assert called == 2
|
|
316
|
-
# Commented out because of the issue above
|
|
317
|
-
# assert value == "xyz"
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
321
|
-
def test_datamodel_api_on_command_executed(
|
|
322
|
-
datamodel_api_version_all, new_solver_session
|
|
323
|
-
):
|
|
324
|
-
solver = new_solver_session
|
|
325
|
-
app_name = "test"
|
|
326
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
327
|
-
service = solver._se_service
|
|
328
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
329
|
-
executed = 0
|
|
330
|
-
command = None
|
|
331
|
-
arguments = None
|
|
332
|
-
|
|
333
|
-
def cb(obj, cmd, args):
|
|
334
|
-
nonlocal executed
|
|
335
|
-
nonlocal command
|
|
336
|
-
nonlocal arguments
|
|
337
|
-
command = cmd
|
|
338
|
-
arguments = args
|
|
339
|
-
executed += 1
|
|
340
|
-
|
|
341
|
-
# TODO: In C++ API, we don't need to pass the command name
|
|
342
|
-
subscription = service.add_on_command_executed(app_name, "/", root, cb)
|
|
343
|
-
assert executed == 0
|
|
344
|
-
assert command is None
|
|
345
|
-
assert arguments is None
|
|
346
|
-
service.execute_command(app_name, "/", "C", dict(X="abc"))
|
|
347
|
-
timeout_loop(lambda: executed == 1, timeout=5)
|
|
348
|
-
assert executed == 1
|
|
349
|
-
assert command == "C"
|
|
350
|
-
assert arguments == {"X": "abc"}
|
|
351
|
-
subscription.unsubscribe()
|
|
352
|
-
service.execute_command(app_name, "/", "C", dict(X="uvw"))
|
|
353
|
-
time.sleep(5)
|
|
354
|
-
assert executed == 1
|
|
355
|
-
assert command == "C"
|
|
356
|
-
assert arguments == {"X": "abc"}
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
360
|
-
def test_datamodel_api_get_state(datamodel_api_version_all, new_solver_session):
|
|
361
|
-
solver = new_solver_session
|
|
362
|
-
app_name = "test"
|
|
363
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
364
|
-
service = solver._se_service
|
|
365
|
-
assert service.get_state(app_name, "/A/X") == "ijk"
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
369
|
-
def test_datamodel_api_set_state(datamodel_api_version_all, new_solver_session):
|
|
370
|
-
solver = new_solver_session
|
|
371
|
-
app_name = "test"
|
|
372
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
373
|
-
service = solver._se_service
|
|
374
|
-
service.set_state(app_name, "/A/X", "new_val")
|
|
375
|
-
assert service.get_state(app_name, "/A/X") == "new_val"
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
379
|
-
def test_datamodel_api_update_dict(datamodel_api_version_all, new_solver_session):
|
|
380
|
-
solver = new_solver_session
|
|
381
|
-
app_name = "test"
|
|
382
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
383
|
-
service = solver._se_service
|
|
384
|
-
service.update_dict(app_name, "/G/H", {"X": "abc"})
|
|
385
|
-
assert service.get_state(app_name, "/G/H") == {"X": "abc"}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
389
|
-
def test_datamodel_api_on_bad_input(
|
|
390
|
-
datamodel_api_version_all, request, new_solver_session
|
|
391
|
-
):
|
|
392
|
-
solver = new_solver_session
|
|
393
|
-
app_name = "test"
|
|
394
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
395
|
-
service = solver._se_service
|
|
396
|
-
root = create_root_using_datamodelgen(service, app_name)
|
|
397
|
-
test_name = request.node.name
|
|
398
|
-
new_api = test_name.endswith("[new]")
|
|
399
|
-
with pytest.raises(SubscribeEventError):
|
|
400
|
-
service.add_on_child_created(app_name, "", "", root, lambda _: None)
|
|
401
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
402
|
-
service.add_on_child_created(app_name, "/BB", "B", root, lambda _: None)
|
|
403
|
-
with pytest.raises(SubscribeEventError):
|
|
404
|
-
service.add_on_child_created(app_name, "/", "A", root, lambda _: None)
|
|
405
|
-
with pytest.raises(SubscribeEventError):
|
|
406
|
-
service.add_on_child_created(app_name, "/", "BB", root, lambda _: None)
|
|
407
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
408
|
-
service.add_on_changed(app_name, "/BB", root, lambda _: None)
|
|
409
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
410
|
-
service.add_on_deleted(app_name, "/BB", root, lambda: None)
|
|
411
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
412
|
-
service.add_on_affected(app_name, "/BB", root, lambda _: None)
|
|
413
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
414
|
-
service.add_on_affected_at_type_path(app_name, "/BB", "B", root, lambda: None)
|
|
415
|
-
# TODO: not raised in the old API - issue
|
|
416
|
-
if new_api:
|
|
417
|
-
with pytest.raises(SubscribeEventError):
|
|
418
|
-
service.add_on_affected_at_type_path(
|
|
419
|
-
app_name, "/", "BB", root, lambda: None
|
|
420
|
-
)
|
|
421
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
422
|
-
service.add_on_attribute_changed(
|
|
423
|
-
app_name, "/BB", "isActive", root, lambda _: None
|
|
424
|
-
)
|
|
425
|
-
with pytest.raises(SubscribeEventError):
|
|
426
|
-
service.add_on_attribute_changed(app_name, "/A", "", root, lambda _: None)
|
|
427
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
428
|
-
service.add_on_command_attribute_changed(
|
|
429
|
-
app_name, "/BB", "C", "isActive", root, lambda _: None
|
|
430
|
-
)
|
|
431
|
-
with pytest.raises(SubscribeEventError):
|
|
432
|
-
service.add_on_command_attribute_changed(
|
|
433
|
-
app_name, "/A", "CC", "", root, lambda _: None
|
|
434
|
-
)
|
|
435
|
-
with pytest.raises(SubscribeEventError):
|
|
436
|
-
service.add_on_command_attribute_changed(
|
|
437
|
-
app_name, "/", "CC", "isActive", root, lambda _: None
|
|
438
|
-
)
|
|
439
|
-
with pytest.raises(RuntimeError if new_api else SubscribeEventError): # TODO: issue
|
|
440
|
-
service.add_on_command_executed(app_name, "/BB", root, lambda _: None)
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
@pytest.mark.fluent_version(">=25.2")
|
|
444
|
-
def test_datamodel_api_static_info(datamodel_api_version_all, new_solver_session):
|
|
445
|
-
solver = new_solver_session
|
|
446
|
-
app_name = "test"
|
|
447
|
-
create_datamodel_root_in_server(solver, rule_str, app_name)
|
|
448
|
-
service = solver._se_service
|
|
449
|
-
assert service.get_static_info(app_name)
|