holado 0.8.4__py3-none-any.whl → 0.9.1__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 holado might be problematic. Click here for more details.

Files changed (56) hide show
  1. holado/common/context/session_context.py +6 -5
  2. {holado-0.8.4.dist-info → holado-0.9.1.dist-info}/METADATA +1 -1
  3. {holado-0.8.4.dist-info → holado-0.9.1.dist-info}/RECORD +56 -41
  4. holado_core/common/block/base.py +3 -3
  5. holado_core/common/resource/persisted_data_manager.py +10 -10
  6. holado_core/common/resource/resource_manager.py +34 -37
  7. holado_core/common/resource/table_data_manager.py +110 -0
  8. holado_core/common/tools/path_manager.py +31 -6
  9. holado_django/server/django_projects/rest_api/rest_api/urls.py +1 -1
  10. holado_docker/tests/behave/steps/tools/docker_controller/client_steps.py +2 -2
  11. holado_docker/tools/docker_controller/client/rest/docker_controller_client.py +38 -1
  12. holado_docker/tools/docker_controller/server/run_docker_controller_in_docker.sh +3 -3
  13. holado_examples/tests/behave/testing_solution/environment.py +3 -3
  14. holado_examples/tests/behave/testing_solution/src/context/session_context.py +2 -2
  15. holado_examples/tests/behave/testing_solution/steps/config_steps.py +1 -1
  16. holado_multitask/multithreading/loopthread.py +4 -4
  17. holado_python/common/tools/datetime.py +37 -16
  18. holado_python/standard_library/ssl/resources/certificates/tcpbin.crt +16 -16
  19. holado_python/standard_library/ssl/resources/certificates/tcpbin.key +26 -26
  20. holado_python/tests/behave/steps/standard_library/datetime_steps.py +2 -2
  21. holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py +3 -3
  22. holado_report/__init__.py +1 -0
  23. holado_report/campaign/campaign_manager.py +194 -0
  24. holado_report/report/builders/detailed_scenario_failed_report_builder.py +11 -7
  25. holado_report/report/builders/failure_report_builder.py +4 -3
  26. holado_report/report/builders/short_scenario_failed_report_builder.py +6 -5
  27. holado_report/report/builders/summary_report_builder.py +1 -1
  28. holado_report/report/builders/summary_scenario_failed_report_builder.py +6 -5
  29. holado_report/report/builders/summary_scenario_report_builder.py +12 -11
  30. holado_report/report/execution_historic.py +4 -2
  31. holado_report/report/report_manager.py +65 -13
  32. holado_rest/api/rest/rest_client.py +5 -1
  33. holado_system/system/filesystem/file.py +5 -2
  34. holado_test/__init__.py +3 -0
  35. holado_test/common/context/feature_context.py +3 -3
  36. holado_test/common/context/scenario_context.py +3 -3
  37. holado_test/common/context/step_context.py +3 -3
  38. holado_test/test_server/client/rest/test_server_client.py +117 -0
  39. holado_test/test_server/server/Dockerfile +70 -0
  40. holado_test/test_server/server/core/server_context.py +42 -0
  41. holado_test/test_server/server/core/server_manager.py +54 -0
  42. holado_test/test_server/server/requirements.txt +2 -0
  43. holado_test/test_server/server/rest/README +2 -0
  44. holado_test/test_server/server/rest/api/__init__.py +23 -0
  45. holado_docker/tools/docker_controller/docker_controller_manager.py → holado_test/test_server/server/rest/api/campaign/__init__.py +10 -28
  46. holado_test/test_server/server/rest/api/campaign/scenario.py +33 -0
  47. holado_test/test_server/server/rest/initialize_holado.py +72 -0
  48. holado_test/test_server/server/rest/logging.conf +50 -0
  49. holado_test/test_server/server/rest/openapi.yaml +46 -0
  50. holado_test/test_server/server/rest/run.py +40 -0
  51. holado_test/test_server/server/run_test_server_in_docker.sh +101 -0
  52. holado_value/common/tools/unique_value_manager.py +2 -1
  53. test_holado/environment.py +1 -1
  54. test_holado/logging.conf +1 -0
  55. {holado-0.8.4.dist-info → holado-0.9.1.dist-info}/WHEEL +0 -0
  56. {holado-0.8.4.dist-info → holado-0.9.1.dist-info}/licenses/LICENSE +0 -0
@@ -12,13 +12,13 @@
12
12
  #################################################
13
13
 
14
14
  from builtins import super
15
- from _datetime import datetime
16
15
  import logging
17
16
  import os.path
18
17
  from holado.common.context.context import Context
19
18
  from holado_core.common.tools.tools import Tools
20
19
  import threading
21
20
  from holado.common.handlers.enums import ObjectStates
21
+ from holado_python.common.tools.datetime import DateTime
22
22
 
23
23
 
24
24
  logger = logging
@@ -151,7 +151,7 @@ class SessionContext(Context):
151
151
  report_path = None
152
152
  if self.with_session_path:
153
153
  # Create new report path for this session
154
- name = "session_{}".format(datetime.now().strftime("%Y-%m-%d_%H-%M-%S"))
154
+ name = "session_{}".format(DateTime.now().strftime("%Y-%m-%d_%H-%M-%S"))
155
155
  report_path = self.path_manager.get_reports_path(name)
156
156
  logger.info(f"Reports location: {report_path}")
157
157
  print(f"Reports location: {report_path}")
@@ -331,13 +331,14 @@ class SessionContext(Context):
331
331
 
332
332
  with self.__multitask_lock:
333
333
  # Log error on failing scenario
334
- status_validation, step_failed, step_number = ReportManager.get_current_scenario_status_information(scenario)
334
+ category_validation, status_validation, step_failed, step_number = ReportManager.get_current_scenario_status_information(scenario)
335
335
  if status_validation != "Passed":
336
336
  msg_list = []
337
+ category_str = f" ({category_validation})" if category_validation else ""
337
338
  if step_failed is not None:
338
- msg_list.append(f"Scenario {status_validation}: [scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line})]")
339
+ msg_list.append(f"Scenario {status_validation}{category_str}: [scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line})]")
339
340
  else:
340
- msg_list.append(f"Scenario {status_validation}: [scenario in {scenario.filename} at l.{scenario.line} - step ? (missing step implementation ?)]")
341
+ msg_list.append(f"Scenario {status_validation}{category_str}: [scenario in {scenario.filename} at l.{scenario.line} - step ? (missing step implementation ?)]")
341
342
  step_error_message = ReportManager.get_step_error_message(step_failed)
342
343
  if step_error_message:
343
344
  msg_list.append(step_error_message)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.8.4
3
+ Version: 0.9.1
4
4
  Summary: HolAdo framework
5
5
  Project-URL: Homepage, https://gitlab.com/holado_framework/python
6
6
  Project-URL: Issues, https://gitlab.com/holado_framework/python/-/issues
@@ -4,7 +4,7 @@ holado/common/__init__.py,sha256=ZjXM-FRQgnfzRNXqcvJOGewDHVRR-U5-ugStSs8U2Xs,152
4
4
  holado/common/context/__init__.py,sha256=3jJBLm8myrYF9jbdV1EhIA6BtnlmjX33eeoDpTzwmLA,1604
5
5
  holado/common/context/context.py,sha256=MV8A6JSpUcTcfia_QzjyDLybQC50rZ-NA0ffotnHXQY,11994
6
6
  holado/common/context/service_manager.py,sha256=LaCn8ukE1aqJynmwoexAYj5hCkdb_F3hXRtUBGqorUE,14087
7
- holado/common/context/session_context.py,sha256=pNiJlyLsIiwdBCUb3aMQmTJB7ZnO0NsDMvluSd7_ZjE,23122
7
+ holado/common/context/session_context.py,sha256=ib9m1kVg_G7C35GE0TqvhFtVqoCXqx-ioECI34IEIbI,23287
8
8
  holado/common/handlers/__init__.py,sha256=d0KDUpaAAw1eBXyX08gaRh4RECnJlXjYQ0TcU-Ndicc,1372
9
9
  holado/common/handlers/enums.py,sha256=ieqKVoukEiNyfE3KrKmMOImdbFS1ocUMud8JHe2xNLs,1662
10
10
  holado/common/handlers/object.py,sha256=rDaav8zHTYfKVEaLtEdeXMxYXATGVcs2a7um1f5MvCs,7205
@@ -40,7 +40,7 @@ holado_core/common/actors/element_actor.py,sha256=ZWFEODzEozItsXYasE8QgDxZshCi7v
40
40
  holado_core/common/actors/find_actor.py,sha256=3Xb5BIEeyhzAdZ6P3x3HTtYZZAF7Pi52xOp6lv3P7u4,4283
41
41
  holado_core/common/actors/tree_actor.py,sha256=6qVKYuIyjpi7ehL5Q34GiHJa0w_iyPYAEAn78yVxt6c,1572
42
42
  holado_core/common/actors/verify_actions.py,sha256=hkywifHLqzjgXdIZIIMYRrq_UpaZuhRR8sALPYY4MW0,2658
43
- holado_core/common/block/base.py,sha256=kgVrX27gSShKREDkoUe2NP2Hnk3G730jQi_lvMNQnh0,3826
43
+ holado_core/common/block/base.py,sha256=5CntBPNy1R8qWY9Axq6lBC0SJ4zFvgZKUEop9LOCewI,3853
44
44
  holado_core/common/block/block_manager.py,sha256=RRBLc4efmV4MQkTJU8Kd3TPL10yNGZ3RsMyLZeEIEdY,7696
45
45
  holado_core/common/block/block_method.py,sha256=eeZK4KUN3xIXlhIpGT_FhVkn64sSZ59z6ZVOBjmgXcs,2108
46
46
  holado_core/common/block/block_steps.py,sha256=xHjj2loNoKmBNNdKIM7GC5VVn86rHNgxs173pwOLIX0,1742
@@ -97,9 +97,10 @@ holado_core/common/inspectors/tree_inspector.py,sha256=DYXmzGFQAzAT1pypKqxpOGPze
97
97
  holado_core/common/inspectors/tools/inspect_builder.py,sha256=v7azgwciXHtO-o7gcgI5gOo3B-7rfRs8RQNO_q5LWjI,6830
98
98
  holado_core/common/inspectors/tools/inspect_context.py,sha256=lzhhO5HxG00c6uMPyIXEUz0FHA61VCNUZr_39ykZ8lQ,2700
99
99
  holado_core/common/inspectors/tools/inspect_parameters.py,sha256=2vXUpnZlP2cCYTvI9ddI6NGhONideoM1hBJ0vGdvPKo,7346
100
- holado_core/common/resource/persisted_data_manager.py,sha256=59J_5NP9mwv74xkdq2dKGy3gAIh7Yr9Hw1icQ57jwP8,6185
100
+ holado_core/common/resource/persisted_data_manager.py,sha256=3pI2qPu0O_SQY4AdfeuAWV8LtzXWkb7q7RiAMVpKvGs,6325
101
101
  holado_core/common/resource/persisted_method_to_call_manager.py,sha256=8iHJF3oPB5PLLLmXK9ncFc7oSyEWyRUWnwJPEzWj3zw,13813
102
- holado_core/common/resource/resource_manager.py,sha256=vyBP4-QKSG4ryB879p5j1_0QvW8YaARtnd7-520Pxi8,7020
102
+ holado_core/common/resource/resource_manager.py,sha256=VP86iQ7_NZzQQ0uUpeev1PjgiejUuwKbV5RfGCNC5tI,7179
103
+ holado_core/common/resource/table_data_manager.py,sha256=bigQGMwh1m3P6ZEO3wi2ftmvyEwpZhGbNCVtI794ops,6289
103
104
  holado_core/common/tables/__init__.py,sha256=i2-gExPOUa_AnmEPgZJQ2lAXeK02PLpPnjEqbsgj1Co,8
104
105
  holado_core/common/tables/enums.py,sha256=YtYTSI1m6KQ3XFzOSFPi5De6Jc-nkDMTbnmqfRfsiJ0,1395
105
106
  holado_core/common/tables/table.py,sha256=VV-68K0J7lzgWpmzesYdU3-ZrkmaIfu9eIYlNhAA02c,10252
@@ -125,7 +126,7 @@ holado_core/common/tables/comparators/table_with_header_comparator.py,sha256=j7B
125
126
  holado_core/common/tables/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
126
127
  holado_core/common/tables/converters/table_converter.py,sha256=PD7NJoxtejpr4aS1l3YKcXW1aEn1xBxdi4Ljs5G7R4g,10251
127
128
  holado_core/common/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
128
- holado_core/common/tools/path_manager.py,sha256=MK4o9ddJXNvInWV6tuRRgnna_lkPYAwLNRbO9KfmabQ,9690
129
+ holado_core/common/tools/path_manager.py,sha256=vwf07C51H03RoZ-w3xLZQgKbC9XuOZlKm5zslXGhK_I,10743
129
130
  holado_core/common/tools/string_tools.py,sha256=bQuMlI_yS7OoSPFL7qyfyXkrnjC8xHVpIsfmEC6JxhI,5590
130
131
  holado_core/common/tools/tools.py,sha256=zkDz7u8S_02bfyN6K-p7-Ey_SkDxzu9DJljnczY0OAo,9683
131
132
  holado_core/common/tools/comparators/comparator.py,sha256=K4LcXIRORHX5vkmDibI6P6Bu1L-6Xezb63ZzzOMKrWY,6812
@@ -177,7 +178,7 @@ holado_django/server/django_projects/rest_api/manage.py,sha256=tElgH5cQY8xlY1-mV
177
178
  holado_django/server/django_projects/rest_api/rest_api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
179
  holado_django/server/django_projects/rest_api/rest_api/asgi.py,sha256=aTxP-NQKwxMWy9eRFU05I0ZzetU-xjblCtJCrnx5ImM,404
179
180
  holado_django/server/django_projects/rest_api/rest_api/settings.py,sha256=9Qqw6yM-6ZwZEuL2J_vVtVzl1weWGC0XWhbhJzyEDNo,3324
180
- holado_django/server/django_projects/rest_api/rest_api/urls.py,sha256=oLiOBFhDSh2lo1strgl0-8cXzTA-vsuP_KNRVbG4OsY,1351
181
+ holado_django/server/django_projects/rest_api/rest_api/urls.py,sha256=t3x9wVHog1oBNX_AZ5mu5pz7HJYoLwavkRWobPnYoaY,1372
181
182
  holado_django/server/django_projects/rest_api/rest_api/wsgi.py,sha256=vuHLvl2v-OGGWQUz0fd6ekLrjRrJsAdnmIBFqZazP7k,404
182
183
  holado_django/server/django_projects/rest_api/rest_api/application/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
183
184
  holado_django/server/django_projects/rest_api/rest_api/application/admin.py,sha256=VWlhkFyPcKZz6ThllvIz1NT1yhDC-eBsdDWtpsuuhO0,65
@@ -192,12 +193,11 @@ holado_docker/__init__.py,sha256=CtGYR7aEkaCdAHPDAsu_ErjpVtYE0yz9wbgbfRUwS8s,157
192
193
  holado_docker/sdk/docker/docker_client.py,sha256=rh1VLtcefIAZY88FMz7eyh1mFrWn3vVxop6TlC9t2sU,14138
193
194
  holado_docker/sdk/docker/docker_service.py,sha256=SvMSIZ7XTCbC7q5rur03lJhJVSHL3uIq1dBQz9oDpkw,3767
194
195
  holado_docker/tests/behave/steps/__init__.py,sha256=lrP0btKLA3qQD2wp3zbOp0ug8RmgpaYWCrOAWehcPiI,1298
195
- holado_docker/tests/behave/steps/tools/docker_controller/client_steps.py,sha256=Y26ZstOZrI3uVX6MGBQr88jjDEsCsNuik0ZBmpT5kDg,4800
196
- holado_docker/tools/docker_controller/docker_controller_manager.py,sha256=q3oac2KIK9wGfMQqGIol65nHUmeuuV0rQ61tfH2APAk,2477
197
- holado_docker/tools/docker_controller/client/rest/docker_controller_client.py,sha256=1NiBNGRXozOK-92cyGdvW00Q8KuJNjfjMxgsuL4tqjw,4560
196
+ holado_docker/tests/behave/steps/tools/docker_controller/client_steps.py,sha256=6E_tI5YkIppszJXB8_E0B2OmyS6YxzhF4uB89sd6dLs,4809
197
+ holado_docker/tools/docker_controller/client/rest/docker_controller_client.py,sha256=s4tDe4JktpxZL_piGmtc5NnoMwy4PmstgAvsjwPFMjU,6239
198
198
  holado_docker/tools/docker_controller/server/Dockerfile,sha256=zuSkj3HYDhvpjOSXmxL4oDqhN7dRB1YTX5Fyur1cuDY,1774
199
199
  holado_docker/tools/docker_controller/server/requirements.txt,sha256=0RvLV3t2DyBR2FsbAd1WVEcbsVc6FVUN2horQJU4POo,57
200
- holado_docker/tools/docker_controller/server/run_docker_controller_in_docker.sh,sha256=Q56P8VA895I29kVSaSa2FpzvjxJUwLVZ9-7vjScXfc0,3406
200
+ holado_docker/tools/docker_controller/server/run_docker_controller_in_docker.sh,sha256=HPNEv51CAgEm0KZ3b3fV4pHwv5v6VDQAwomTnnL4mxY,3421
201
201
  holado_docker/tools/docker_controller/server/grpc/README,sha256=cNOly0Lfsfz_qyhTqLGmELOXzAgZbByNUowuYrUnJa0,132
202
202
  holado_docker/tools/docker_controller/server/grpc/__init__.py,sha256=QBkE1ydbCvARUimeSY2PvBkZ-Jp0bCv6k_l89a_8zNw,1551
203
203
  holado_docker/tools/docker_controller/server/grpc/proto/compile_proto.py,sha256=NjcStLaAO_zKcSprrcGscq3R_4anh55QeguXLq6SPjo,2191
@@ -241,7 +241,7 @@ holado_examples/scripts/script_custom_initialization.py,sha256=yOWo08UwUqpDS2vjz
241
241
  holado_examples/scripts/script_minimal_initialization.py,sha256=4cc3osHekltsJ4ZxmwiqiPYnaGP8tWBaMiz7mHHBiI0,889
242
242
  holado_examples/tests/behave/testing_solution/__main__.py,sha256=IS48dqsE3gbHNYGS-1sSIkzfTpefZD58BoNPvQVL57M,299
243
243
  holado_examples/tests/behave/testing_solution/behave_environment.py,sha256=-DYfSJkBuB2jOpPmYFtNDW-mnBqXWT8vfi5OE-MON80,1044
244
- holado_examples/tests/behave/testing_solution/environment.py,sha256=SOKZL-pr1rZTKd77ELDd0lbjUIpogWUsCK8jfN6_RWU,964
244
+ holado_examples/tests/behave/testing_solution/environment.py,sha256=6ye4OJKUzFviXZ2_Wsw9tkPhGnq6uUHF1HH0wBPHW00,1027
245
245
  holado_examples/tests/behave/testing_solution/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
246
246
  holado_examples/tests/behave/testing_solution/logging.conf,sha256=R0yhuVbgQxl7RLA_SLgXvXaYuEzEGD24w8_tiWeiiR0,2687
247
247
  holado_examples/tests/behave/testing_solution/requirements.txt,sha256=GEOHLDGhGbwfMoMt9lfY9iCkSTmby36bko3vqi8KioU,33
@@ -251,8 +251,8 @@ holado_examples/tests/behave/testing_solution/features/Configuration/Actions/con
251
251
  holado_examples/tests/behave/testing_solution/features/NonReg/example.feature,sha256=AO_q3ubyC4yXg2ZVEY4mJscVfZhuv2itrbt56a7Xe3o,787
252
252
  holado_examples/tests/behave/testing_solution/src/common/tools/path_manager.py,sha256=2-3bJIMXLnSD__0FX_rXWv2YGTrAPdAXoTPxz3qjaNY,1209
253
253
  holado_examples/tests/behave/testing_solution/src/config/config_manager.py,sha256=WPSrkLX-C5oJ0bANSwzgBKeeSo38CBrgKGdMOp3pHtI,623
254
- holado_examples/tests/behave/testing_solution/src/context/session_context.py,sha256=mLLCHRK5qEwASMwX5clj0n3FWJP2XEgFCnDek3xz548,1373
255
- holado_examples/tests/behave/testing_solution/steps/config_steps.py,sha256=pYEGVok31UmJt6msbNPNhiG0GC5M5kp2ZwHKQdck2gI,514
254
+ holado_examples/tests/behave/testing_solution/src/context/session_context.py,sha256=mwZ8H7qgBYWzIAJCuQnbYBh_2oqMqjxgN2dHl3TMzSA,1415
255
+ holado_examples/tests/behave/testing_solution/steps/config_steps.py,sha256=sToZrs7kFQMs7NPK_n3fsO2jXHHPH4d0rBSZnBe85S4,535
256
256
  holado_examples/tests/behave/testing_solution/steps/public_steps.py,sha256=nnxgBjFMpuQ9xVAAxma0lRwLz8VrbTZuF61vRkKKafA,252
257
257
  holado_grpc/TODO,sha256=ESjES2-J6-3AJYdt6olcz_YGt4YTxw80CjIt-tjJ0z4,206
258
258
  holado_grpc/__init__.py,sha256=SaAz66iSTqMw7oIDrj94rGcO8W7BgS15B78p--OogHc,2266
@@ -313,7 +313,7 @@ holado_multitask/multitasking/multitask_manager.py,sha256=lPi4gqK9HNK3FR4Mi-0hDn
313
313
  holado_multitask/multithreading/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
314
314
  holado_multitask/multithreading/functionthreaded.py,sha256=jtfytI-AtST7Ay8U9ZvsCbWmYSvtZe8u-BvpmqWCO8Y,5848
315
315
  holado_multitask/multithreading/loopfunctionthreaded.py,sha256=5kfONDR76uuT1bTJrAtnfSncHwvVvzl8jagWUvTduHw,2492
316
- holado_multitask/multithreading/loopthread.py,sha256=4II3d22PRf891De8dd9P4WjuwI52KrTDRTSTPzzvso8,4265
316
+ holado_multitask/multithreading/loopthread.py,sha256=fu0qnBtsIDxcKXzETGaCd0ubJg8uNRuHgYEyLFdV38g,4279
317
317
  holado_multitask/multithreading/periodicfunctionthreaded.py,sha256=PCBKpbOIThNGLq12rOONAh2ECxEOmaOb6Aqj2Ob2XY8,6926
318
318
  holado_multitask/multithreading/thread.py,sha256=dKgw1301nTv-8g7y29ecza9ZB5nhbAKCYs1p4KdmLUQ,9376
319
319
  holado_multitask/multithreading/threadsmanager.py,sha256=5a-kV8t0-lwL6a9vCLL3_Oi-i67epcqOWWBz6vIJFEU,8462
@@ -340,7 +340,7 @@ holado_protobuf/tests/behave/steps/ipc/protobuf_steps.py,sha256=Pbw5E-AbTTSKR_i_
340
340
  holado_python/__init__.py,sha256=uZzFUgE2zqLWiM-2yF9D5KinWqZYqoXYMCiD02A3iW8,1657
341
341
  holado_python/common/enums.py,sha256=iwffWOqUdiFaOn83RPmjRVVHakTjQve55sNsbY4x8Ek,1535
342
342
  holado_python/common/iterables.py,sha256=p5X6h18W-GSnZ4WHt5Y5g3Ri4TB4B5i5NhyAwb7g1Ww,2064
343
- holado_python/common/tools/datetime.py,sha256=Wyg4i-lM0zbp3gC6cILmTtYwo3c6c5bhDAMJ86JUVJg,12163
343
+ holado_python/common/tools/datetime.py,sha256=f7bAhh5bQJ2eWXoSKso8IsrXHW_lEg4lRwg36n5Emdc,13397
344
344
  holado_python/common/tools/comparators/boolean_comparator.py,sha256=66AtqQ1u7NLTKAmgZHdnbE8vMPfgwJ2ZrzMiea90jX0,2042
345
345
  holado_python/common/tools/comparators/bytes_comparator.py,sha256=VKD5Q734n1k5Q0zX14fYgvM-66ysyRWkjo2fLgleyt0,2412
346
346
  holado_python/common/tools/comparators/datetime_comparator.py,sha256=6smSvQ7ErnNuBNHkSbkf4HoSUJU54DNS2ILhxM1FHAk,3487
@@ -363,14 +363,14 @@ holado_python/standard_library/ssl/resources/certificates/NOTES.txt,sha256=GlPGG
363
363
  holado_python/standard_library/ssl/resources/certificates/localhost.crt,sha256=iLmZpDuOQVawUlbZkb72g2-uv1c4SAmRJOrm4Th5anY,1123
364
364
  holado_python/standard_library/ssl/resources/certificates/localhost.key,sha256=lP2NCvB9mr2E5sk8whA8FyQRcyU6H7sdWkJeKz80Hyc,1704
365
365
  holado_python/standard_library/ssl/resources/certificates/rootCACert.pem,sha256=ECQDZ8OHRfqpZHCu6JRLMUjiONaPIhKZQF0-kidVrWQ,1424
366
- holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=a3fxUXYKjh5MpBo5vaFDlvGESD9n_HKWZ0GvKUjSBWE,1237
367
- holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=FpUivY3CuG7xMiUcx-fdsIvaImzAJYJBOnxJ2GQevXI,1704
366
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=fNTwFb1YbCrDS6217atgX9wMP7xEAo3-POIVaWC_00A,1237
367
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=puwUXC55YMr8AmXA77WiqYElt-JDYfhDKP8l6iELjd4,1704
368
368
  holado_python/tests/behave/steps/__init__.py,sha256=TWEk-kBTTDHi9I4nuu48nufmNMdZ9FHAhPZv0A_cWzc,1661
369
369
  holado_python/tests/behave/steps/convert_steps.py,sha256=bZqRvJVp_u6fSPpdu4ne9NwVyZmui7R-AVdO2-H-I1A,2728
370
370
  holado_python/tests/behave/steps/iterable_steps.py,sha256=f4vGIWBH8Qnjq69Q-ZBluYyctQ8SKauazTc41dsktZA,4041
371
371
  holado_python/tests/behave/steps/builtins/str_steps.py,sha256=ugNIz5v5EpkiRBDmwDl2JtAq5RWXu6UnLv7HH73WiXw,2101
372
372
  holado_python/tests/behave/steps/standard_library/csv_steps.py,sha256=VJ5wmr0CQ8voBSgnXQUBAdYkEGFOCs95JKcV52tVMOo,7460
373
- holado_python/tests/behave/steps/standard_library/datetime_steps.py,sha256=mWbYb-CjSVKKWNcBaBzL24jP86C0v-NZ8W3hfrzHlbc,7815
373
+ holado_python/tests/behave/steps/standard_library/datetime_steps.py,sha256=6U1hZ5befOYvMub49b9WfkahecpPoICtsnUQnB0rBjg,7815
374
374
  holado_python/tests/behave/steps/standard_library/hashlib_steps.py,sha256=j1NmcvFAFKYAhWeYWc6Xf32M0CPGTgk2fHcaBBbav8o,2978
375
375
  holado_python/tests/behave/steps/standard_library/multiprocessing_steps.py,sha256=DD--5bxCvFTXY6KBqKzKAuOrOK0aZdPjbRR5SO0PZBo,2519
376
376
  holado_python/tests/behave/steps/standard_library/queue_steps.py,sha256=GdHKKIka5tzFxVTBYPJNywyVLDtggZF2RB_mFIbyLdI,17429
@@ -382,7 +382,7 @@ holado_rabbitmq/tests/behave/steps/tools/rabbitmq_client_steps.py,sha256=z5BKvzo
382
382
  holado_rabbitmq/tests/behave/steps/tools/rabbitmq_server_steps.py,sha256=hG6sXnZhiJ2RzxFUmlyx2ymTQNTqL_99B0dp5od7PT8,3081
383
383
  holado_rabbitmq/tools/rabbitmq/rabbitmq_blocking_client.py,sha256=XjcllR9MKhTuj1Nibcd6DM-sCjwr7qWmBNVvREjd7KE,16486
384
384
  holado_rabbitmq/tools/rabbitmq/rabbitmq_client.py,sha256=YQTNfi2Gs61LDA3wkdE4iCiHNuyH05m-OJuDFbI9834,29888
385
- holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py,sha256=jFxghEOohM8dUjXQg4FYLslJV-lT5xMSdVcKKAiQ8x4,7761
385
+ holado_rabbitmq/tools/rabbitmq/rabbitmq_manager.py,sha256=0kwz0yq9ma6kvRv6hd4TjzF2GRVy8OSRfh1_p41OKAM,7761
386
386
  holado_rabbitmq/tools/rabbitmq/rabbitmq_select_client.py,sha256=urWn9A8XZqpAAtbvRZ-YUGVbOX_1Y0uSBA2lHGqJxLA,21039
387
387
  holado_rabbitmq/tools/rabbitmq/rabbitmq_server.py,sha256=FW8iKAHm0I78bHQEbRk4rl0dtCmv4dvAe5BY_HfOQVM,1613
388
388
  holado_redis/__init__.py,sha256=Gl285tg-QaPE-3etWwZql9sH26G7EnVoQn97B0NMvOI,1248
@@ -391,25 +391,26 @@ holado_redis/tests/behave/steps/tools/redis_client_steps.py,sha256=lOh0YlumJcszt
391
391
  holado_redis/tools/redis/TODO.txt,sha256=cmFyx6qS6_FgL1Ph0OWRsWch6MQaklfv1j0qBO2ZpZU,202
392
392
  holado_redis/tools/redis/redis_client.py,sha256=KWuOrnwTcwt5xkD3rtI_l07v164Y_bsoo1kE0IGzqaQ,8316
393
393
  holado_redis/tools/redis/redis_manager.py,sha256=tMO0XrCZTCfGdByFfgWXk9R-I_TUPLO9wXMQf8yCYcQ,1814
394
- holado_report/__init__.py,sha256=ryApXT02HJHEeCQxA8grjw6Nml3LjZ31zqypFoJqzWg,1682
395
- holado_report/report/execution_historic.py,sha256=hXosOGtsq-O9Oq6AeBXWlnIQxSy3bv89QKYPCHF9_GY,6799
396
- holado_report/report/report_manager.py,sha256=PZ-nWMyOIGKpdC1tBY91j5sWWIK2FdWxUp7h0_1XpJI,12350
394
+ holado_report/__init__.py,sha256=vjp7Ce8hO334H5V1Qk4uhDkvVspXD3iiS5oTrQSM_vs,1687
395
+ holado_report/campaign/campaign_manager.py,sha256=Py5aAGc-6rJb1FlDsUJ7EwyrGy0DBEXLPTJzR7yBMe8,8693
396
+ holado_report/report/execution_historic.py,sha256=M4lYoZwyrSivRa17Q39GOAgROnr0oBvIZX5BNcO5Mnc,6951
397
+ holado_report/report/report_manager.py,sha256=VOA9ABV3DAGf5Q5_eNPVJ3oJndiZSXGI8SKg6uP-Sq0,14713
397
398
  holado_report/report/analyze/execution_historic_manager.py,sha256=FMKKPguXOvWNxjF7Q8DodHHsH-2ci9pFzrTV41B8nL4,4556
398
399
  holado_report/report/analyze/scenario_duration_manager.py,sha256=Preaxu83qFKGfbvQnzolhSXztZ4i5Zo_Bnxx8tNA80Q,12468
399
- holado_report/report/builders/detailed_scenario_failed_report_builder.py,sha256=LuuanB2BGnsY1EiCfmYIw-8CZY3nMsr0m2Oec4wyxkA,7501
400
- holado_report/report/builders/failure_report_builder.py,sha256=hu_IOEK93IxtE5zpcXFwMUXgjMRN35bAyEUn5B4Uo3M,6397
400
+ holado_report/report/builders/detailed_scenario_failed_report_builder.py,sha256=hOXxHYniL9mpN-U7YTW5xVEaE4Z-GlPq8ltT_iNJan4,7892
401
+ holado_report/report/builders/failure_report_builder.py,sha256=jbw2Y1oEZQdk1i1PdbhQqbG8i3AuIlOmVRx3M598BTA,6532
401
402
  holado_report/report/builders/json_execution_historic_report_builder.py,sha256=M7OGUvkqNRTG5Td7fO96tv1SJEzRzjm0pl1W02v052E,5929
402
403
  holado_report/report/builders/report_builder.py,sha256=5qlhxbdTkSN7p9q6EADkpHQGPDVEHquIhgA3mK2Ck2k,2261
403
- holado_report/report/builders/short_scenario_failed_report_builder.py,sha256=aKFEb7ldCmW0LbsphEf77Be2AXPQHjQLooCnkfVrzf4,3838
404
- holado_report/report/builders/summary_report_builder.py,sha256=-6-OUa7NX123sMyw08FUqNNdpTbbNGDZogiJURMdNrY,3951
405
- holado_report/report/builders/summary_scenario_failed_report_builder.py,sha256=QFmB-DrG40ndArsD2urLOqNEnEAgmfCB9o8g-ieO1wo,2889
406
- holado_report/report/builders/summary_scenario_report_builder.py,sha256=LrWLaiMjVjKyxhO-Pvj_u1e7Ti7ENLnrBxS06YdY_Us,3565
404
+ holado_report/report/builders/short_scenario_failed_report_builder.py,sha256=9athhQPoVioz-NTc1BoD0kbCqKzW3ARkQy77ODPuGkM,4011
405
+ holado_report/report/builders/summary_report_builder.py,sha256=v4LG3W5x_y4FH0kh_5MRaG8pyPOV2GfhlBImsW4BJrs,3954
406
+ holado_report/report/builders/summary_scenario_failed_report_builder.py,sha256=NGJiUTGpEWBcC9Chj6oY34fnQ_SUBoLWKEkBhlwKy9o,3062
407
+ holado_report/report/builders/summary_scenario_report_builder.py,sha256=OaHfZitXFoX0lrGXzRX6zeXGiUFiYh44fNdxxKDRCGQ,3864
407
408
  holado_report/report/reports/base_report.py,sha256=NGnWe66uyvT4bCjhd3upwVpc6yQ2gyVNFhcy-3LeQsE,6850
408
409
  holado_report/report/reports/feature_report.py,sha256=i0wpk3LQLArVjWDsP9UcNSJzAUWwLhe73HNyfye2gYQ,4810
409
410
  holado_report/report/reports/scenario_report.py,sha256=eMyqw9EzaKMmX3pGFJN1rqAOQ5eqO2ISZdxAfK3XQR4,2945
410
411
  holado_rest/__init__.py,sha256=BOeE6t6ejeqRYd44SE4vYJVTNz01BwcVCIWfwRQ5axg,1526
411
412
  holado_rest/api/rest/TODO.txt,sha256=Oz8BYPkBEs9OAEgyYLLm7i5tJ1bRE5POBpT3SRFWTi4,29
412
- holado_rest/api/rest/rest_client.py,sha256=jC9fFz5rsiiCSa-pnUs6uOhprGYUX0wH_iiq649S25M,9549
413
+ holado_rest/api/rest/rest_client.py,sha256=VHVzKKY_7QRiTUScAUIzFM-W4lbHFKnNBA09gxCnQ-E,9609
413
414
  holado_rest/api/rest/rest_manager.py,sha256=XldPjNgj73GlzAmlsEcQYaHiDRk7SGU6VEFOLBnHjQM,4010
414
415
  holado_rest/tests/behave/steps/__init__.py,sha256=lEH5NYkKtpgDV2ZAO1qAGNN4ipwILWMpgvQgnamgYKk,1283
415
416
  holado_rest/tests/behave/steps/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -480,12 +481,12 @@ holado_system/system/command/command.py,sha256=9lv9kgvvIq4Fqx6fJXU_HQA8pCO80Ws9r
480
481
  holado_system/system/command/command_result.py,sha256=sunGDegNVOtpK9s9r4HCAJlREu4iKS0w3HY4KKDEQkw,4613
481
482
  holado_system/system/command/curl_command.py,sha256=CEMaO0_qLyKe4tLytMlHzmCuS_gi-oU479hwOaEyZ60,3743
482
483
  holado_system/system/command/exceptions.py,sha256=InT6t8GVeGCiBE-NpRr4NzycWVAvzmc6WpM6mk7_1yk,2363
483
- holado_system/system/filesystem/file.py,sha256=stIFMNPeJuQNYlrm-wQPdwnRP8SgLoah7hkjz0hvx5g,4084
484
+ holado_system/system/filesystem/file.py,sha256=LAu5h-tbDSCsdNF0YFR9MACJAanBzbevqeH6awtOR5Y,4196
484
485
  holado_system/tests/behave/steps/__init__.py,sha256=7LrCSTHk5oHNuEsr4IhJuNDsohtR2cq3YT1owXrhdjc,1351
485
486
  holado_system/tests/behave/steps/system/commands_steps.py,sha256=uYiojPpYPkfif8l8afRrJ0sj-wFBE4j1x67BDMNs76Q,3901
486
487
  holado_system/tests/behave/steps/system/file_steps.py,sha256=-RPUGEjsYfzWIMRDiQRalmvspPZIPP8YMzSZvSI4-p8,9966
487
488
  holado_system/tests/behave/steps/system/system_steps.py,sha256=2XrZwuAaYDjB_HvPgxZq9MpYB_Zo7FVZ0DYcmtKht2s,3778
488
- holado_test/__init__.py,sha256=A0edMOLhnuU-A_NazQ50WghvKvB889KNCBddtBPa9Ag,1539
489
+ holado_test/__init__.py,sha256=vJtCQyCdqEdCukAiuD8D6L59rfpGmW2-hJmypGi1d00,1744
489
490
  holado_test/test_config.py,sha256=yQK2jNHEGltGc3fmsAgcsKN4y3_nuldZHD45XEMrsQA,1575
490
491
  holado_test/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
491
492
  holado_test/behave/behave.py,sha256=IiqT_F45C-xVY2T8sKDPV7NsFCiGNzb8xpoTaXD-PXg,17708
@@ -495,12 +496,26 @@ holado_test/behave/behave_manager.py,sha256=TEAfPgBQQONFn_l0s7gm7gDgWU0EejvuaPuF
495
496
  holado_test/behave/independant_runner.py,sha256=QR_IS-qkK_x2FTryb2gRQrqyBU3YUgKqsaIL2xwXPNQ,3189
496
497
  holado_test/behave/scenario/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
497
498
  holado_test/behave/scenario/behave_step_tools.py,sha256=apMS8nvdY-vbXsUIw1mVR4wOy2xWHMOCPJ1QiYNU-hI,6612
498
- holado_test/common/context/feature_context.py,sha256=GhC0lihnvTBhv5tE4JzPt39eP7gwAU5IApwX_-5Wt2Y,3348
499
- holado_test/common/context/scenario_context.py,sha256=x5q9AuBNkL9fG5LjiUzLOnqcyBLiOB_AlSPErKAcD1Y,7102
500
- holado_test/common/context/step_context.py,sha256=j6S4ozTPrdlpV9Slopc998fYOV8KfMLAUSW4mcEFUI8,2383
499
+ holado_test/common/context/feature_context.py,sha256=9U5n-i7xdcSQlCeMM0savlek8doS5fGqkI3sFIiCGTY,3375
500
+ holado_test/common/context/scenario_context.py,sha256=pkv5uC-GGQeGyu2MB6m58eWv6TPuQLTV0NM_aGMB7c8,7129
501
+ holado_test/common/context/step_context.py,sha256=jknJVU0OrzRaqlTJyhwBFjr9uKPe1dgjao32F4RGE8g,2410
501
502
  holado_test/common/exceptions/undefined_step_exception.py,sha256=SHHX22iz4Ip-V4Y3aM2EJFDt30CCS5EaauN6KB-JORo,1461
502
503
  holado_test/scenario/step_tools.py,sha256=iNay6tQPUi4sG-a8PY5LbbLpX0PRakkOj3ls98aEbHM,26375
503
504
  holado_test/scenario/tester_tools.py,sha256=Tv035FyXPjQ46Ep8KuPOjOvzJFvxnbv9EsrSihUzAwg,2479
505
+ holado_test/test_server/client/rest/test_server_client.py,sha256=TzvF2rwPz7PDcsZ5w-goN9O3pZVdDBZFN6GXD_KNCk8,4924
506
+ holado_test/test_server/server/Dockerfile,sha256=TR_xUU2YLmKYWeGUaRRZRhaBHKHa4Y_1nqQDquK843w,1744
507
+ holado_test/test_server/server/requirements.txt,sha256=c2iNG9IZZogAEC9oSWRTWEF9-OHW0vRtijPNK4P6_xY,45
508
+ holado_test/test_server/server/run_test_server_in_docker.sh,sha256=ISNvFT1dBM6aiw5Iv6yBhInn7L8ZYyz_7EDK_X1eCvk,3121
509
+ holado_test/test_server/server/core/server_context.py,sha256=aDl5rOJpxG9MT_jpymL0ST9z7FpoNOBAk5dLGAPGXas,1223
510
+ holado_test/test_server/server/core/server_manager.py,sha256=PW5ShUdnbdq6E3Ou87C5feXuJRc1V7qADkmGItLIi3A,2890
511
+ holado_test/test_server/server/rest/README,sha256=J_LIXWFxtxc8okQGZ8Kk0dMSRra9oUzbMP_ylCe4pTo,161
512
+ holado_test/test_server/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
513
+ holado_test/test_server/server/rest/logging.conf,sha256=yeNIHFQCYlDmkdLlQ3NCoMuxpUNn6i8ZDAzOUna_2aA,1282
514
+ holado_test/test_server/server/rest/openapi.yaml,sha256=4Juf_QggWo7z9te3_sS96TxxARWU1MtFkJZAilEsxr8,1027
515
+ holado_test/test_server/server/rest/run.py,sha256=0BC3fHDDaE28IoObQrICUatDRAOiFxrb0WU_VZU2q4Y,2321
516
+ holado_test/test_server/server/rest/api/__init__.py,sha256=4QcsiWhFX0sGhJYuoqUUfwEYb6ceIDlFFlU1q3ls7Xc,1442
517
+ holado_test/test_server/server/rest/api/campaign/__init__.py,sha256=btZb20N5k7_WbowNAC1C7yYDUkwPnUU5QUmh-jO0bhg,1586
518
+ holado_test/test_server/server/rest/api/campaign/scenario.py,sha256=4eTIScEGL0GKD7g6aIPHJVvaVbwz487zlEg9mRQv84Y,1737
504
519
  holado_test/tests/behave/steps/__init__.py,sha256=rdqrp-UN7vRplIqORx4sXyKwMUkptRizyLWudsmYehM,1362
505
520
  holado_test/tests/behave/steps/scenario/exception_steps.py,sha256=ZIE92Dz7a6O_c0jAP_0dj6Hc0tnW6YRgNKd4_aBpeR0,4054
506
521
  holado_test/tests/behave/steps/scenario/scenario_steps.py,sha256=RfM5Lh4sduKeYSD1NzUxtQ8705O7nausoz_gnpAJQB0,4616
@@ -516,7 +531,7 @@ holado_value/common/tables/comparators/table_2_value_table_comparator.py,sha256=
516
531
  holado_value/common/tables/comparators/table_2_value_table_row_comparator.py,sha256=_VglWUQWspG1Fo2iAo41auCwWYR24q0TniFck99BF_E,1752
517
532
  holado_value/common/tables/comparators/table_2_value_table_with_header_comparator.py,sha256=VKwA7PbXnE-gFSKWlDCsJv0tkWVuNY-C4aWt2tyIybE,1911
518
533
  holado_value/common/tables/converters/value_table_converter.py,sha256=o8r2VZytUAwBlT9yORL4i5gyPvgZNFhvjuPqv32cqgM,12397
519
- holado_value/common/tools/unique_value_manager.py,sha256=UXKdDKWznp4auYKQeWB7zYEzfm_0GxAiGfyoFM5ZM3s,5223
534
+ holado_value/common/tools/unique_value_manager.py,sha256=Go_su5Ju_pKp0y2YcrwWYTTMp_eXJIVPhy_uh2Izkkk,5287
520
535
  holado_value/common/tools/value.py,sha256=BwAx9L_xHA-v4K55osnXjI9z9bQn_MKQ8Cvk3mhqBjA,9108
521
536
  holado_value/common/tools/value_types.py,sha256=7nJp5D7xdoT9jMeeOxHIuPRykDyI9fXpve37ndK32gs,1801
522
537
  holado_value/tests/behave/steps/__init__.py,sha256=BHp8TYE_X4lWn4B8A51nXSYaJlczuiDVJLcKMy7p0Lw,1267
@@ -537,9 +552,9 @@ test_holado/Dockerfile_test_holado,sha256=zO6OUFnC1X9ZG7fPWWWfcWgZwnxif4WDE4ZDEm
537
552
  test_holado/__init__.py,sha256=TIHAHrF05rvz6-VDKuDBSBjasD6PxTxXvcXjMEC3D6E,54
538
553
  test_holado/__main__.py,sha256=PVdCX8V_RGRzbQQKVxf7eyt8a10XfUJ1pcaajGgIlus,1509
539
554
  test_holado/build_docker_image_to_test_holado_in_docker.sh,sha256=B3hbi0yKnEC-t9S18o6ZR27AU1bqiuptwOqm6H7tv8s,142
540
- test_holado/environment.py,sha256=QgLXEPss9YbJLZywgIStDgLOOq0MHklzmRElTgZgzM8,2272
555
+ test_holado/environment.py,sha256=wfVHsu_e67cjARLwmDsECbPH-yZN5WGJOeJj61-gmeM,2293
541
556
  test_holado/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
542
- test_holado/logging.conf,sha256=yeNIHFQCYlDmkdLlQ3NCoMuxpUNn6i8ZDAzOUna_2aA,1282
557
+ test_holado/logging.conf,sha256=au0QmrtF97ZxuVhgItHXdMLalkxAkxuWtgoOvGivfxc,1312
543
558
  test_holado/test_holado_session_context.py,sha256=qOB_i2k8mYjkR3-q2uv0B04xFc1K3p-K20ttYwe1Z18,1364
544
559
  test_holado/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
545
560
  test_holado/features/NonReg/api/REST.feature,sha256=yAhCpWk7HbHztkdwkfcU-TrfnJVoOzHvYMmk9pUy50A,689
@@ -655,7 +670,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
655
670
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
656
671
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
657
672
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
658
- holado-0.8.4.dist-info/METADATA,sha256=Rpc-iJZqI6EVW-Q0gPQqyNShVX_KqbISFxtYE5VCwbQ,7671
659
- holado-0.8.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
660
- holado-0.8.4.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
661
- holado-0.8.4.dist-info/RECORD,,
673
+ holado-0.9.1.dist-info/METADATA,sha256=9Gjc4KHiQekFKYnufDd17zR35GMrP3He5oDWCukuukw,7671
674
+ holado-0.9.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
675
+ holado-0.9.1.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
676
+ holado-0.9.1.dist-info/RECORD,,
@@ -13,9 +13,9 @@
13
13
 
14
14
  from builtins import super
15
15
  import abc
16
- from datetime import datetime
17
16
  import logging
18
17
  from holado_core.common.tools.tools import Tools
18
+ from holado_python.common.tools.datetime import DateTime
19
19
 
20
20
  logger = logging.getLogger(__name__)
21
21
 
@@ -66,10 +66,10 @@ class BaseBlock(object):
66
66
  raise NotImplementedError
67
67
 
68
68
  def _process_start(self):
69
- self.__start_dt = datetime.now()
69
+ self.__start_dt = DateTime.now()
70
70
 
71
71
  def _process_end(self):
72
- self.__end_dt = datetime.now()
72
+ self.__end_dt = DateTime.now()
73
73
 
74
74
 
75
75
 
@@ -42,26 +42,26 @@ class PersistedDataManager():
42
42
  return self.__table_name
43
43
 
44
44
  def ensure_persistent_db_exists(self):
45
- if self.__resource_manager.has_data_table(self.__table_name, db_name=self.__db_name):
46
- if self.__resource_manager.check_data_table_schema(self.__table_name, self.__table_sql_create, db_name=self.__db_name):
45
+ if self.__resource_manager.has_data_table(self.__table_name, db_name=self.__db_name, is_persistent=True):
46
+ if self.__resource_manager.check_data_table_schema(self.__table_name, self.__table_sql_create, db_name=self.__db_name, is_persistent=True):
47
47
  # Table already exists with the right schema
48
48
  return
49
49
  else:
50
50
  # Table already exists but with wrong schema => delete table before creating it again
51
- self.__resource_manager.delete_data_table(self.__table_name, db_name=self.__db_name, raise_if_not_exist=True, do_commit=True)
51
+ self.__resource_manager.delete_data_table(self.__table_name, db_name=self.__db_name, is_persistent=True, raise_if_not_exist=True, do_commit=True)
52
52
 
53
53
  # Create table
54
54
  # Note: method create_data_table raise an exception if it doesn't succeed to create the table
55
- self.__resource_manager.create_data_table(self.__table_name, self.__table_sql_create, db_name=self.__db_name, raise_if_exist=True, do_commit=True, do_audit=self.__do_audit)
55
+ self.__resource_manager.create_data_table(self.__table_name, self.__table_sql_create, db_name=self.__db_name, is_persistent=True, raise_if_exist=True, do_commit=True, do_audit=self.__do_audit)
56
56
 
57
57
  def has_persisted_data(self, filter_data=None, filter_compare_data=None):
58
- return self.__resource_manager.has_persisted_data(self.__table_name, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name)
58
+ return self.__resource_manager.has_data(self.__table_name, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name, is_persistent=True)
59
59
 
60
60
  def get_persisted_datas(self, filter_data=None, filter_compare_data=None, as_generator=False):
61
61
  """
62
62
  Note: Whereas 'data' is already a plural, a 's' is added in method name to be coherent with other method names
63
63
  """
64
- return self.__resource_manager.get_persisted_data(self.__table_name, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name, result_as_dict_list=True, as_generator=as_generator)
64
+ return self.__resource_manager.get_data(self.__table_name, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name, is_persistent=True, result_as_dict_list=True, as_generator=as_generator)
65
65
 
66
66
  def get_persisted_data(self, filter_data=None, filter_compare_data=None):
67
67
  """
@@ -76,12 +76,12 @@ class PersistedDataManager():
76
76
  return None
77
77
 
78
78
  def count_persisted_data(self, filter_data=None, filter_compare_data=None):
79
- return self.__resource_manager.count_persisted_data(self.__table_name, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name)
79
+ return self.__resource_manager.count_data(self.__table_name, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name, is_persistent=True)
80
80
 
81
81
  def update_persisted_data(self, data, filter_data=None, filter_compare_data=None):
82
82
  if Tools.do_log(logger, logging.DEBUG):
83
83
  logger.debug(f"Update persisted {self.__data_name} for {filter_data} and {filter_compare_data}: {data}")
84
- self.__resource_manager.update_persisted_data(self.__table_name, data, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name)
84
+ self.__resource_manager.update_data(self.__table_name, data, where_data=filter_data, where_compare_data=filter_compare_data, db_name=self.__db_name, is_persistent=True)
85
85
 
86
86
  def add_persisted_data(self, data, persisted_filter_data=None):
87
87
  if Tools.do_log(logger, logging.DEBUG):
@@ -89,7 +89,7 @@ class PersistedDataManager():
89
89
  data = copy.copy(data)
90
90
  if persisted_filter_data:
91
91
  data.update(persisted_filter_data)
92
- self.__resource_manager.add_persisted_data(self.__table_name, data, db_name=self.__db_name)
92
+ self.__resource_manager.add_data(self.__table_name, data, db_name=self.__db_name, is_persistent=True)
93
93
 
94
94
  def update_or_add_persisted_data(self, persisted_filter_data, data, persisted_data=undefined_argument):
95
95
  if persisted_data is undefined_argument:
@@ -103,7 +103,7 @@ class PersistedDataManager():
103
103
  self.add_persisted_data(data, persisted_filter_data)
104
104
 
105
105
  def delete_persisted_data(self, filter_data):
106
- self.__resource_manager.delete_persisted_data(self.__table_name, where_data=filter_data, db_name=self.__db_name)
106
+ self.__resource_manager.delete_data(self.__table_name, where_data=filter_data, db_name=self.__db_name, is_persistent=True)
107
107
 
108
108
 
109
109
 
@@ -13,11 +13,6 @@
13
13
 
14
14
  import os
15
15
  import logging
16
- from holado.common.context.session_context import SessionContext
17
- from holado_core.common.exceptions.technical_exception import TechnicalException
18
- from holado_core.common.exceptions.functional_exception import FunctionalException
19
- from holado_core.common.tools.tools import Tools
20
- # from holado_report.report.analyze.scenario_duration_manager import ScenarioDurationManager
21
16
 
22
17
  logger = logging.getLogger(__name__)
23
18
 
@@ -56,44 +51,45 @@ class ResourceManager():
56
51
  def get_path(self, *args):
57
52
  return os.path.join(self.__local_resource_path, *args)
58
53
 
59
- def get_persistent_db_client(self, name):
54
+ def get_db_client(self, name, is_persistent=False):
55
+ """ Return a SQLite3 DB client to the resource DB of given name
56
+ @param is_persistent If True, name is prefixed with 'persistent/db/'
60
57
  """
61
- Return a SQLite3 DB client to the persistent DB of given name
62
- """
63
- _, res = self.__db_manager.get_or_create(name, 'sqlite3', self.__get_db_connect_kwargs(name))
58
+ full_name = os.path.join("persistent", "db", name) if is_persistent else name
59
+ _, res = self.__db_manager.get_or_create(full_name, 'sqlite3', self.__get_db_connect_kwargs(full_name))
64
60
  return res
65
61
 
66
- def __get_db_connect_kwargs(self, name):
67
- if name not in self.__db_connect_kwargs_by_name:
68
- db_filepath = self.get_path("persistent", "db", f"{name}.sqlite3")
69
- SessionContext.instance().path_manager.makedirs(db_filepath)
62
+ def __get_db_connect_kwargs(self, full_name):
63
+ if full_name not in self.__db_connect_kwargs_by_name:
64
+ db_filepath = self.get_path(f"{full_name}.sqlite3")
65
+ self.__path_manager.makedirs(db_filepath)
70
66
 
71
67
  uri = f"file:{db_filepath}?mode=rwc"
72
68
  connect_kwargs = {'database': uri,
73
69
  'uri': True}
74
- self.__db_connect_kwargs_by_name[name] = connect_kwargs
75
- return self.__db_connect_kwargs_by_name[name]
70
+ self.__db_connect_kwargs_by_name[full_name] = connect_kwargs
71
+ return self.__db_connect_kwargs_by_name[full_name]
76
72
 
77
73
  def persist_pair(self, key, value, db_name="default", table_name="pair", do_commit=True):
78
- client = self.get_persistent_db_client(db_name)
74
+ client = self.get_db_client(db_name, is_persistent=True)
79
75
  client.execute(f"create table if not exists {table_name} (key, value)", do_commit=do_commit)
80
76
 
81
77
  client.execute(f"insert into {table_name} values (?, ?)", key, value, do_commit=do_commit)
82
78
 
83
- def has_data_table(self, table_name, db_name="default"):
84
- client = self.get_persistent_db_client(db_name)
79
+ def has_data_table(self, table_name, db_name="default", is_persistent=False):
80
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
85
81
  return client.exist_table(table_name)
86
82
 
87
- def create_data_table(self, table_name, create_sql, db_name="default", raise_if_exist=False, do_commit=True, do_audit=False):
88
- client = self.get_persistent_db_client(db_name)
83
+ def create_data_table(self, table_name, create_sql, db_name="default", is_persistent=False, raise_if_exist=False, do_commit=True, do_audit=False):
84
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
89
85
  client.create_table(table_name, create_sql, raise_if_exist=raise_if_exist, do_commit=do_commit, do_audit=do_audit)
90
86
 
91
- def delete_data_table(self, table_name, db_name="default", raise_if_not_exist=False, do_commit=True):
92
- client = self.get_persistent_db_client(db_name)
87
+ def delete_data_table(self, table_name, db_name="default", is_persistent=False, raise_if_not_exist=False, do_commit=True):
88
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
93
89
  client.drop_table(table_name, raise_if_not_exist=raise_if_not_exist, do_commit=do_commit)
94
90
 
95
- def check_data_table_schema(self, table_name, create_sql, db_name="default"):
96
- client = self.get_persistent_db_client(db_name)
91
+ def check_data_table_schema(self, table_name, create_sql, db_name="default", is_persistent=False):
92
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
97
93
  result = client.select("sqlite_schema", where_data={'name':table_name}, sql_return='sql')
98
94
  if not result:
99
95
  return False
@@ -101,29 +97,30 @@ class ResourceManager():
101
97
  sql = result[0][0].content
102
98
  return sql == create_sql
103
99
 
104
- def count_persisted_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default"):
105
- client = self.get_persistent_db_client(db_name)
100
+ def count_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default", is_persistent=False):
101
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
106
102
  return client.count(table_name, where_data=where_data, where_compare_data=where_compare_data)
107
103
 
108
- def has_persisted_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default"):
109
- count = self.count_persisted_data(table_name, where_data=where_data, where_compare_data=where_compare_data, db_name=db_name)
104
+ def has_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default", is_persistent=False):
105
+ count = self.count_data(table_name, where_data=where_data, where_compare_data=where_compare_data, db_name=db_name, is_persistent=is_persistent)
110
106
  return count > 0
111
107
 
112
- def get_persisted_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default", result_as_dict_list=False, as_generator=False):
113
- client = self.get_persistent_db_client(db_name)
108
+ def get_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default", is_persistent=False, result_as_dict_list=False, as_generator=False):
109
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
114
110
  result = client.select(table_name, where_data=where_data, where_compare_data=where_compare_data, result_as_dict_list=result_as_dict_list, as_generator=as_generator)
115
111
  return result
116
112
 
117
- def add_persisted_data(self, table_name, data: dict, db_name="default", do_commit=True):
118
- client = self.get_persistent_db_client(db_name)
119
- client.insert(table_name, data, do_commit=do_commit)
113
+ def add_data(self, table_name, data: dict, db_name="default", is_persistent=False, do_commit=True):
114
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
115
+ result = client.insert(table_name, data, do_commit=do_commit)
116
+ return result
120
117
 
121
- def update_persisted_data(self, table_name, data: dict, where_data: dict=None, where_compare_data: list=None, db_name="default", do_commit=True):
122
- client = self.get_persistent_db_client(db_name)
118
+ def update_data(self, table_name, data: dict, where_data: dict=None, where_compare_data: list=None, db_name="default", is_persistent=False, do_commit=True):
119
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
123
120
  result = client.update(table_name, data=data, where_data=where_data, where_compare_data=where_compare_data, do_commit=do_commit)
124
121
  return result
125
122
 
126
- def delete_persisted_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default", do_commit=True):
127
- client = self.get_persistent_db_client(db_name)
123
+ def delete_data(self, table_name, where_data: dict=None, where_compare_data: list=None, db_name="default", is_persistent=False, do_commit=True):
124
+ client = self.get_db_client(db_name, is_persistent=is_persistent)
128
125
  client.delete(table_name, where_data=where_data, where_compare_data=where_compare_data, do_commit=do_commit)
129
126