holado 0.11.1__py3-none-any.whl → 0.11.3__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 (46) hide show
  1. {holado-0.11.1.dist-info → holado-0.11.3.dist-info}/METADATA +2 -2
  2. {holado-0.11.1.dist-info → holado-0.11.3.dist-info}/RECORD +46 -12
  3. holado_context/tests/behave/steps/private/common/context_steps.py +1 -1
  4. holado_core/common/resource/persisted_data_manager.py +4 -0
  5. holado_core/common/resource/persisted_method_to_call_manager.py +13 -3
  6. holado_multitask/multithreading/context/thread_context.py +1 -1
  7. holado_scripting/__init__.py +1 -1
  8. holado_test/behave/behave_manager.py +3 -0
  9. holado_test/common/context/feature_context.py +1 -1
  10. holado_test/common/context/scenario_context.py +1 -1
  11. holado_tools/__init__.py +38 -0
  12. holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.py +36 -0
  13. holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.sh +6 -0
  14. holado_tools/scripts/execute_persisted_post_processes/initialize_holado.py +62 -0
  15. holado_tools/tests/behave/steps/__init__.py +16 -0
  16. holado_tools/tests/behave/steps/tools/host_controller/client_steps.py +97 -0
  17. holado_tools/tools/host_controller/client/rest/host_controller_client.py +146 -0
  18. holado_tools/tools/host_controller/server/Dockerfile +60 -0
  19. holado_tools/tools/host_controller/server/grpc/README +2 -0
  20. holado_tools/tools/host_controller/server/grpc/__init__.py +26 -0
  21. holado_tools/tools/host_controller/server/grpc/proto/compile_proto.py +60 -0
  22. holado_tools/tools/host_controller/server/grpc/proto/definitions/docker_controler.proto +63 -0
  23. holado_tools/tools/host_controller/server/requirements.txt +2 -0
  24. holado_tools/tools/host_controller/server/rest/README +2 -0
  25. holado_tools/tools/host_controller/server/rest/api/__init__.py +24 -0
  26. holado_tools/tools/host_controller/server/rest/api/config.py +57 -0
  27. holado_tools/tools/host_controller/server/rest/api/docker/__init__.py +40 -0
  28. holado_tools/tools/host_controller/server/rest/api/docker/container.py +55 -0
  29. holado_tools/tools/host_controller/server/rest/api/os.py +47 -0
  30. holado_tools/tools/host_controller/server/rest/initialize_holado.py +72 -0
  31. holado_tools/tools/host_controller/server/rest/openapi.yaml +265 -0
  32. holado_tools/tools/host_controller/server/rest/run.py +31 -0
  33. holado_tools/tools/host_controller/server/run_host_controller_in_docker.sh +107 -0
  34. holado_tools/tools/host_viewer/client/rest/host_viewer_client.py +96 -0
  35. holado_tools/tools/host_viewer/server/Dockerfile +60 -0
  36. holado_tools/tools/host_viewer/server/requirements.txt +2 -0
  37. holado_tools/tools/host_viewer/server/rest/README +2 -0
  38. holado_tools/tools/host_viewer/server/rest/api/__init__.py +22 -0
  39. holado_tools/tools/host_viewer/server/rest/api/docker/__init__.py +40 -0
  40. holado_tools/tools/host_viewer/server/rest/initialize_holado.py +72 -0
  41. holado_tools/tools/host_viewer/server/rest/openapi.yaml +102 -0
  42. holado_tools/tools/host_viewer/server/rest/run.py +31 -0
  43. holado_tools/tools/host_viewer/server/run_host_viewer_in_docker.sh +107 -0
  44. test_holado/features/Configuration/Actions/execute_persisted_post_processes.feature +13 -0
  45. {holado-0.11.1.dist-info → holado-0.11.3.dist-info}/WHEEL +0 -0
  46. {holado-0.11.1.dist-info → holado-0.11.3.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.11.1
3
+ Version: 0.11.3
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
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Requires-Python: >=3.10
18
- Requires-Dist: behave==1.2.7.dev6
18
+ Requires-Dist: behave
19
19
  Requires-Dist: psutil
20
20
  Requires-Dist: pypika
21
21
  Requires-Dist: python-dateutil
@@ -31,7 +31,7 @@ holado_binary/tests/behave/steps/ipc/bit_series_steps.py,sha256=x0YZHTBnvFOUkWgl
31
31
  holado_context/__init__.py,sha256=z0SNFOdBBWUouC12WKDmL18T_OH3TdmfcgIbnNQzbjU,1247
32
32
  holado_context/tests/behave/steps/__init__.py,sha256=BHp8TYE_X4lWn4B8A51nXSYaJlczuiDVJLcKMy7p0Lw,1267
33
33
  holado_context/tests/behave/steps/private/__init__.py,sha256=FrQhfaQLz8qTsJVyIGUxV7Hc4jxwSl-CP7rS0EFg4Bk,1281
34
- holado_context/tests/behave/steps/private/common/context_steps.py,sha256=aC2lh6HZ368mo_nTn55Wmn86kFYCAOWjBIpcvDGV2zA,3211
34
+ holado_context/tests/behave/steps/private/common/context_steps.py,sha256=Aika1qRGVrRPPqWVDA5k5HuU_v1aNuEPdqrTTRDlnsY,3224
35
35
  holado_core/__init__.py,sha256=4k0q27nlm4GF9FEIG_7jfc4YUDS82FG_2j50WtGim-Y,2015
36
36
  holado_core/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
37
  holado_core/common/actors/actions.py,sha256=UeD0mFlSyqhU0l5STjJbPNtcDBZuZQaFDFtpwmu9Fvs,4220
@@ -97,8 +97,8 @@ 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=3pI2qPu0O_SQY4AdfeuAWV8LtzXWkb7q7RiAMVpKvGs,6325
101
- holado_core/common/resource/persisted_method_to_call_manager.py,sha256=8iHJF3oPB5PLLLmXK9ncFc7oSyEWyRUWnwJPEzWj3zw,13813
100
+ holado_core/common/resource/persisted_data_manager.py,sha256=Thie2st70tFb2IDWb_3LeLx656WeiW5tpAkI4xc8wQA,6641
101
+ holado_core/common/resource/persisted_method_to_call_manager.py,sha256=LJOCrl2gTa_hyXkt4mLhpsBfDAB3QEIxmcc7gJQop-k,14192
102
102
  holado_core/common/resource/resource_manager.py,sha256=VP86iQ7_NZzQQ0uUpeev1PjgiejUuwKbV5RfGCNC5tI,7179
103
103
  holado_core/common/resource/table_data_manager.py,sha256=bigQGMwh1m3P6ZEO3wi2ftmvyEwpZhGbNCVtI794ops,6289
104
104
  holado_core/common/tables/__init__.py,sha256=i2-gExPOUa_AnmEPgZJQ2lAXeK02PLpPnjEqbsgj1Co,8
@@ -291,7 +291,7 @@ holado_multitask/multithreading/periodicfunctionthreaded.py,sha256=PCBKpbOIThNGL
291
291
  holado_multitask/multithreading/thread.py,sha256=dKgw1301nTv-8g7y29ecza9ZB5nhbAKCYs1p4KdmLUQ,9376
292
292
  holado_multitask/multithreading/threadsmanager.py,sha256=5a-kV8t0-lwL6a9vCLL3_Oi-i67epcqOWWBz6vIJFEU,8462
293
293
  holado_multitask/multithreading/timer.py,sha256=77tI9WITN2CpQoY82SUYinoGzfx_stpqf2fRLUI1Itk,2638
294
- holado_multitask/multithreading/context/thread_context.py,sha256=EWn8zqQZgLlnNhgMsBLULUke3J1VFLtdMR-Jukpvfiw,3773
294
+ holado_multitask/multithreading/context/thread_context.py,sha256=rx-1ZX9GfpyyT0QjJACxpeLWQ_ktVmTjZNZ17qAMorM,3830
295
295
  holado_multitask/multithreading/reflection/inspect.py,sha256=yntSXI6YEZDBfqoDnB0KS6HGxs__qTQFwF6FLUDZqCI,2137
296
296
  holado_multitask/multithreading/reflection/sys.py,sha256=1Q7hX9nddjqUvfn-k39SuPQhwLjXJmB9gegV6vNM534,1558
297
297
  holado_multitask/multithreading/reflection/traceback.py,sha256=Bnq-Xp0aA3D4kYtb7JJyXNASw3iU35WRSePredxWziQ,1891
@@ -402,7 +402,7 @@ holado_s3/tools/s3/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
402
402
  holado_s3/tools/s3/boto3_s3_client.py,sha256=NaYTvyxqiUZ5UshpLONSLLDEBHQU_etDlXDOqGNxR-w,2360
403
403
  holado_s3/tools/s3/minio_client.py,sha256=B_Ie2fNIqyJE5vXO4iQw3Tg5yk8k-yGBuJtaf4aDQyU,3193
404
404
  holado_s3/tools/s3/moto_server.py,sha256=zft4KgYIFbJot0JyQJCAwEcbGDJIKinqOUIKRuSrSHE,2493
405
- holado_scripting/__init__.py,sha256=1VICcEckplGOYwcPJ6U0TbghWigTOEtcWuYL6z_U14Y,3908
405
+ holado_scripting/__init__.py,sha256=BocZkbX6KwVnIc14vC-stzPIT0y1S6-VatfXuGgMji4,3967
406
406
  holado_scripting/common/tools/dynamic_text_manager.py,sha256=dR9DGVj4nb_icFlnLB3jRQu8DDwTuC3tX46BDyi9xec,3332
407
407
  holado_scripting/common/tools/evaluate_parameters.py,sha256=zru4_vwqIx_KxWVG_luOcmr-0ywjmY7aaEN4TCvCjb4,10405
408
408
  holado_scripting/common/tools/expression_evaluator.py,sha256=pig2dNisHTuRnLh7vR6ciwn0o8rnDvVOQKT44iF0QB4,24309
@@ -466,12 +466,12 @@ holado_test/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuF
466
466
  holado_test/behave/behave.py,sha256=IiqT_F45C-xVY2T8sKDPV7NsFCiGNzb8xpoTaXD-PXg,17708
467
467
  holado_test/behave/behave_environment.py,sha256=nwnK2cWwZS3lz-yXhhwuJxKU1aKiTgHbhAzKwIymqng,6575
468
468
  holado_test/behave/behave_function.py,sha256=2jDZIIijgQegWHmuzX1DlqRzs4utGjK1OeoucSeCTdg,1691
469
- holado_test/behave/behave_manager.py,sha256=TEAfPgBQQONFn_l0s7gm7gDgWU0EejvuaPuFApoY_jY,26965
469
+ holado_test/behave/behave_manager.py,sha256=c4kIz9K9LPFxD3clNQM5Vt_The0Usx8GJ1OUaMSP-Kg,27095
470
470
  holado_test/behave/independant_runner.py,sha256=QR_IS-qkK_x2FTryb2gRQrqyBU3YUgKqsaIL2xwXPNQ,3189
471
471
  holado_test/behave/scenario/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
472
472
  holado_test/behave/scenario/behave_step_tools.py,sha256=apMS8nvdY-vbXsUIw1mVR4wOy2xWHMOCPJ1QiYNU-hI,6612
473
- holado_test/common/context/feature_context.py,sha256=XD5t2O6IDdhh6n4K1n7u5MPm-zI3k38mun_pj8lKQGE,3575
474
- holado_test/common/context/scenario_context.py,sha256=lj332-EsRazz91Twl64iTcrNiyqOBYCk9kD4ADl73gA,7330
473
+ holado_test/common/context/feature_context.py,sha256=vJs1-rYtqxv4gETHAwVntdvaulhdDBdJlfVZn6CjBQc,3632
474
+ holado_test/common/context/scenario_context.py,sha256=M0l1JywoXFODjWShcEYbdmSw6kE62Z0uaRmyG0HbDMQ,7387
475
475
  holado_test/common/context/step_context.py,sha256=jknJVU0OrzRaqlTJyhwBFjr9uKPe1dgjao32F4RGE8g,2410
476
476
  holado_test/common/exceptions/undefined_step_exception.py,sha256=SHHX22iz4Ip-V4Y3aM2EJFDt30CCS5EaauN6KB-JORo,1461
477
477
  holado_test/scenario/step_tools.py,sha256=iNay6tQPUi4sG-a8PY5LbbLpX0PRakkOj3ls98aEbHM,26375
@@ -494,6 +494,39 @@ holado_test/tools/test_server/server/rest/run.py,sha256=OpDBkjBX_ZoNfwTWc2VV7dIN
494
494
  holado_test/tools/test_server/server/rest/api/__init__.py,sha256=4QcsiWhFX0sGhJYuoqUUfwEYb6ceIDlFFlU1q3ls7Xc,1442
495
495
  holado_test/tools/test_server/server/rest/api/campaign/__init__.py,sha256=btZb20N5k7_WbowNAC1C7yYDUkwPnUU5QUmh-jO0bhg,1586
496
496
  holado_test/tools/test_server/server/rest/api/campaign/scenario.py,sha256=4eTIScEGL0GKD7g6aIPHJVvaVbwz487zlEg9mRQv84Y,1737
497
+ holado_tools/__init__.py,sha256=JzUm55NIkeBynu1RieZ3QfZGw8v4NfFDzz6HS-bN7r8,1798
498
+ holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.py,sha256=mkU6eqfOdwfrqXF2fJv8JT1Izu2B3pCBIy1PmNisqi0,2478
499
+ holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_processes.sh,sha256=VXgAjwMKkUg4-T4TfTTziep4wzOzEYjFWgAeTYboTNQ,244
500
+ holado_tools/scripts/execute_persisted_post_processes/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
501
+ holado_tools/tests/behave/steps/__init__.py,sha256=SPh47LYMokcxbFhDa_JnlkIlyQav2D-hddf3J1ZlEbQ,1296
502
+ holado_tools/tests/behave/steps/tools/host_controller/client_steps.py,sha256=FOaeQ5xX4KGv7OVvMh2M8U0a-AfHuUNQU5p4av_K8z0,4786
503
+ holado_tools/tools/host_controller/client/rest/host_controller_client.py,sha256=U7btvQf-kodCIrBvG-DHOgY5Hk9A0-H6jYZZ13zdbr0,6432
504
+ holado_tools/tools/host_controller/server/Dockerfile,sha256=wTy-ii7MuJULRiw5_2sUWj8ssw6WUJIhAcLY2KCL0lw,1508
505
+ holado_tools/tools/host_controller/server/requirements.txt,sha256=0RvLV3t2DyBR2FsbAd1WVEcbsVc6FVUN2horQJU4POo,57
506
+ holado_tools/tools/host_controller/server/run_host_controller_in_docker.sh,sha256=KEBTxcxFeViVpixLii1YXBbyZhvJKfmH604jGqBFxHc,3729
507
+ holado_tools/tools/host_controller/server/grpc/README,sha256=og8ClPR9Fu6CY-85IOPAESv4ks-Jebre-Aa78pBiaVw,130
508
+ holado_tools/tools/host_controller/server/grpc/__init__.py,sha256=QBkE1ydbCvARUimeSY2PvBkZ-Jp0bCv6k_l89a_8zNw,1551
509
+ holado_tools/tools/host_controller/server/grpc/proto/compile_proto.py,sha256=NjcStLaAO_zKcSprrcGscq3R_4anh55QeguXLq6SPjo,2191
510
+ holado_tools/tools/host_controller/server/grpc/proto/definitions/docker_controler.proto,sha256=n9bsXaQfnZX-R5HvfquCVt3QjpFtDJSH6p8gnTjm06k,1650
511
+ holado_tools/tools/host_controller/server/rest/README,sha256=10hiIdQw69iXubii8ZYZUrYrs2Q2k5QiTKpBBrBK1bc,165
512
+ holado_tools/tools/host_controller/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
513
+ holado_tools/tools/host_controller/server/rest/openapi.yaml,sha256=u9D5Yt5pwVZujeOF5xhUF4W2tjXi2TODWHMFBEmLJjY,6900
514
+ holado_tools/tools/host_controller/server/rest/run.py,sha256=RQFxhVCH3K3uAHFdCVVKw2MAcVcufSvenVn6f6ABCGA,2009
515
+ holado_tools/tools/host_controller/server/rest/api/__init__.py,sha256=3VgcIa1WhkxMBTNrxKsh4xIqiSMeDxQpbx2cAdME9vg,1459
516
+ holado_tools/tools/host_controller/server/rest/api/config.py,sha256=Ln__1bsigSzJZ-Iy3MQgmiZMnpBxC3TCQE0O72g5cAs,2459
517
+ holado_tools/tools/host_controller/server/rest/api/os.py,sha256=EA3DCxGBCnMd2XJyn9kb6IWmtbaPIyv5UfZypCNzkhY,2123
518
+ holado_tools/tools/host_controller/server/rest/api/docker/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
519
+ holado_tools/tools/host_controller/server/rest/api/docker/container.py,sha256=6D612WF4chpDCzr4MBzZXzELxi-yOwrgxCxSBBVMcVo,2673
520
+ holado_tools/tools/host_viewer/client/rest/host_viewer_client.py,sha256=5-XFjImALKJwSG7H4eKL1QOsS5A-D7Y1kXrxONrZWK8,4360
521
+ holado_tools/tools/host_viewer/server/Dockerfile,sha256=dSdSaCAYZAjV4inHcLxjy8JlIqpo1lMNOSveAihvcOw,1484
522
+ holado_tools/tools/host_viewer/server/requirements.txt,sha256=0RvLV3t2DyBR2FsbAd1WVEcbsVc6FVUN2horQJU4POo,57
523
+ holado_tools/tools/host_viewer/server/run_host_viewer_in_docker.sh,sha256=XeJfyjPVj34-rK_9K_6C9iD0EiAZ2WVkoD1L5rvZzw4,3606
524
+ holado_tools/tools/host_viewer/server/rest/README,sha256=1FMg-U_D9pUMBVmZJsirOXHFLTciDL5jB-Yqzp9U6uM,163
525
+ holado_tools/tools/host_viewer/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
526
+ holado_tools/tools/host_viewer/server/rest/openapi.yaml,sha256=XP644LfEcDi7R9IV7_FIbRHpmw9Jlgtlfs-8qsc3DGQ,2788
527
+ holado_tools/tools/host_viewer/server/rest/run.py,sha256=jgJgmFFdppadLBahWU8Yw8-PdA5HJzBTDCPTPHGRzbA,2007
528
+ holado_tools/tools/host_viewer/server/rest/api/__init__.py,sha256=MTjW5ixe0v7jIjWkN_NovDHbHeVlb0VKkJRtC_oWlHc,1456
529
+ holado_tools/tools/host_viewer/server/rest/api/docker/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
497
530
  holado_value/__init__.py,sha256=60VyLyWux76dFwn03uH4Fz3R6itf6fqKu0pQUdvwblU,1561
498
531
  holado_value/common/tables/value_table.py,sha256=fJgb-HWdlMwHOAx5CS38sPiVrjGelEiQBbG9HuHqe-A,1726
499
532
  holado_value/common/tables/value_table_cell.py,sha256=vCL8uSTEKOpI9G5f0epgJMArFxQidfWTCRHBZbdrsjc,3344
@@ -531,6 +564,7 @@ test_holado/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MR
531
564
  test_holado/logging.conf,sha256=vsCMsRnvSMHl6nBmRqG7kBYC3qshAcxiAg5iUUw1Udw,1318
532
565
  test_holado/test_holado_session_context.py,sha256=qOB_i2k8mYjkR3-q2uv0B04xFc1K3p-K20ttYwe1Z18,1364
533
566
  test_holado/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
567
+ test_holado/features/Configuration/Actions/execute_persisted_post_processes.feature,sha256=1so1MtYGj8Wj_UkCzpej_X8Lf_JVWYtzMyRtBmyQaOc,527
534
568
  test_holado/features/NonReg/api/REST.feature,sha256=yAhCpWk7HbHztkdwkfcU-TrfnJVoOzHvYMmk9pUy50A,689
535
569
  test_holado/features/NonReg/api/gRPC.feature,sha256=IHPDsRHhKs5WgsrVXa_jiBjbvnVumCmsQ0O6RLkD1S4,4718
536
570
  test_holado/features/NonReg/common/multiprocessing/simple.feature,sha256=bNDoWWTg1vOy0O_-0fmAlBPDXSxt7GBdDNy3XvtoEfU,1729
@@ -645,7 +679,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
645
679
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
646
680
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
647
681
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
648
- holado-0.11.1.dist-info/METADATA,sha256=GhN1BYdTrXpkc9x9nimJYj3xqk4EJLEgMmydezMtspM,7672
649
- holado-0.11.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
650
- holado-0.11.1.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
651
- holado-0.11.1.dist-info/RECORD,,
682
+ holado-0.11.3.dist-info/METADATA,sha256=WqOxGK8nQl9F-5TCd1mOpqI4VYDpMhStD355pcPKBWI,7660
683
+ holado-0.11.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
684
+ holado-0.11.3.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
685
+ holado-0.11.3.dist-info/RECORD,,
@@ -34,7 +34,7 @@ def __get_variable_manager():
34
34
 
35
35
  def __get_context(context_name):
36
36
  context_name = context_name.capitalize()
37
- if context_name == SessionContext.instance().name:
37
+ if context_name in ["Session", SessionContext.instance().name]:
38
38
  return SessionContext.instance()
39
39
  elif context_name == __get_scenario_context().name:
40
40
  return __get_scenario_context()
@@ -41,6 +41,10 @@ class PersistedDataManager():
41
41
  def table_name(self):
42
42
  return self.__table_name
43
43
 
44
+ def does_persistent_db_exist(self):
45
+ return self.__resource_manager.has_data_table(self.__table_name, db_name=self.__db_name, is_persistent=True) \
46
+ and self.__resource_manager.check_data_table_schema(self.__table_name, self.__table_sql_create, db_name=self.__db_name, is_persistent=True)
47
+
44
48
  def ensure_persistent_db_exists(self):
45
49
  if self.__resource_manager.has_data_table(self.__table_name, db_name=self.__db_name, is_persistent=True):
46
50
  if self.__resource_manager.check_data_table_schema(self.__table_name, self.__table_sql_create, db_name=self.__db_name, is_persistent=True):
@@ -17,7 +17,8 @@ from holado_core.common.resource.persisted_data_manager import PersistedDataMana
17
17
  from holado_python.standard_library.typing import Typing
18
18
  from holado_core.common.exceptions.technical_exception import TechnicalException
19
19
  from holado_core.common.tools.tools import Tools
20
- from holado.common.handlers.undefined import undefined_value, undefined_argument
20
+ from holado.common.handlers.undefined import undefined_value, undefined_argument,\
21
+ any_value
21
22
  from holado_python.common.tools.datetime import DateTime
22
23
  from holado_db.tools.db.query.base.query_builder import DBCompareOperator
23
24
  from holado.common.handlers.enums import AutoNumber
@@ -34,6 +35,11 @@ class MethodCallStatus(AutoNumber):
34
35
 
35
36
  class PersistedMethodToCallManager(PersistedDataManager):
36
37
  def __init__(self, scope_name, delete_on_success=True, delete_on_fail=False, delete_on_success_after_fail=False, expiration_try_counter=10, data_name="method", table_name="method_to_call", db_name="default"):
38
+ """ Constructor
39
+ @param scope_name: Scope of this manager
40
+
41
+ Note: if scope_name is any_value, it is possible to call all methods persisted with any scope, but it is not possible to add new methods.
42
+ """
37
43
  super().__init__(data_name=data_name, table_name=table_name,
38
44
  table_sql_create=self._get_default_table_sql_create(table_name),
39
45
  db_name=db_name)
@@ -93,6 +99,9 @@ class PersistedMethodToCallManager(PersistedDataManager):
93
99
  @param delete_on_fail: If True, delete method after its fail
94
100
  @param delete_on_success_after_fail: If True, delete method after its success even if it has previously failed
95
101
  """
102
+ if self.__scope_name is not any_value:
103
+ raise TechnicalException("To add a method to call, the scope name must be specified")
104
+
96
105
  # Define persisted data that can define if method is already persisted
97
106
  data = {
98
107
  'scope_name': self.__scope_name,
@@ -160,7 +169,9 @@ class PersistedMethodToCallManager(PersistedDataManager):
160
169
  return 0
161
170
 
162
171
  def __get_functions_and_methods_to_call(self, use=undefined_argument, use_index=None):
163
- filter_data = {'scope_name':self.__scope_name}
172
+ filter_data = {}
173
+ if self.__scope_name is not any_value:
174
+ filter_data['scope_name'] = self.__scope_name
164
175
  if use is not undefined_argument:
165
176
  filter_data['use'] = use
166
177
  if use_index is not None:
@@ -172,7 +183,6 @@ class PersistedMethodToCallManager(PersistedDataManager):
172
183
  """Call methods of given use
173
184
  @param use: Define persistent usage. It usually corresponds to a specific scope.
174
185
  @param use_index: If defined, call only functions and methods of given index.
175
- @param delete_after_call: Define if function or method is deleted after call from persisted data.
176
186
  """
177
187
  # Get functions and methods to call
178
188
  methods_data = self.__get_functions_and_methods_to_call(use=use)
@@ -61,7 +61,7 @@ class ThreadContext(Context):
61
61
 
62
62
  manager = VariableManager(var_man)
63
63
  self.set_object("variable_manager", manager)
64
- file_path = SessionContext.instance().report_manager.get_path("logs", f"variable_update-thread_{self.thread_uid}.log")
64
+ file_path = SessionContext.instance().report_manager.get_path("logs", f"variable_update-thread_{self.thread_uid}.log") if SessionContext.instance().with_session_path else None
65
65
  manager.initialize(SessionContext.instance().dynamic_text_manager, SessionContext.instance().unique_value_manager,
66
66
  variable_update_log_file_path=file_path)
67
67
  return self.get_object("variable_manager")
@@ -28,7 +28,7 @@ def register():
28
28
  SessionContext.instance().services.register_service_type("variable_manager", VariableManager,
29
29
  lambda m: m.initialize(SessionContext.instance().dynamic_text_manager,
30
30
  SessionContext.instance().unique_value_manager,
31
- variable_update_log_file_path=SessionContext.instance().report_manager.get_path("logs", "variable_update.log") ) )
31
+ variable_update_log_file_path = SessionContext.instance().report_manager.get_path("logs", "variable_update.log") if SessionContext.instance().with_session_path else None ) )
32
32
 
33
33
 
34
34
  from holado_scripting.common.tools.expression_evaluator import ExpressionEvaluator
@@ -18,6 +18,7 @@ import behave
18
18
  from holado.common.context.session_context import SessionContext
19
19
  from holado_core.common.exceptions.technical_exception import TechnicalException
20
20
  from holado_multitask.multitasking.multitask_manager import MultitaskManager
21
+ import time
21
22
 
22
23
  logger = logging.getLogger(__name__)
23
24
 
@@ -390,6 +391,8 @@ class BehaveManager(object):
390
391
  lambda: context_exists(MultitaskManager.get_process_id(), thread_uid))
391
392
  wait_context.redo_until(True)
392
393
  wait_context.execute()
394
+ # Note: previous waiting mechanism is sometimes to rapid to execute steps just after
395
+ time.sleep(0.01)
393
396
 
394
397
  ### Other tried implementation:
395
398
 
@@ -73,7 +73,7 @@ class FeatureContext(Context):
73
73
  if not self.has_variable_manager():
74
74
  manager = VariableManager(SessionContext.instance().multitask_manager.get_thread_context().get_variable_manager())
75
75
  self.set_object("variable_manager", manager)
76
- file_path = SessionContext.instance().report_manager.current_feature_report.get_path("logs", "variable_update.log")
76
+ file_path = SessionContext.instance().report_manager.current_feature_report.get_path("logs", "variable_update.log") if SessionContext.instance().with_session_path else None
77
77
  manager.initialize(SessionContext.instance().dynamic_text_manager, SessionContext.instance().unique_value_manager,
78
78
  variable_update_log_file_path=file_path)
79
79
  return self.get_object("variable_manager")
@@ -135,7 +135,7 @@ class ScenarioContext(Context):
135
135
  if not self.has_variable_manager():
136
136
  manager = VariableManager(SessionContext.instance().get_feature_context().get_variable_manager())
137
137
  self.set_object("variable_manager", manager)
138
- file_path = SessionContext.instance().report_manager.current_scenario_report.get_path("logs", "variable_update.log")
138
+ file_path = SessionContext.instance().report_manager.current_scenario_report.get_path("logs", "variable_update.log") if SessionContext.instance().with_session_path else None
139
139
  manager.initialize(self.get_dynamic_text_manager(), SessionContext.instance().unique_value_manager,
140
140
  variable_update_log_file_path=file_path)
141
141
  return self.get_object("variable_manager")
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #################################################
4
+ # HolAdo (Holistic Automation do)
5
+ #
6
+ # (C) Copyright 2021-2025 by Eric Klumpp
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
13
+ #################################################
14
+
15
+
16
+ def configure_module():
17
+ """
18
+ Configure this module
19
+ Example: set new attributes in holado.holado_config.Config class
20
+ """
21
+ pass
22
+
23
+ def dependencies():
24
+ """
25
+ Return None or the list of names of modules it depend on
26
+ """
27
+ return None
28
+
29
+ def register():
30
+ """
31
+ Register the services of this module
32
+ """
33
+ # from holado.common.context.session_context import SessionContext
34
+
35
+ # from holado_xxx.xxx import XXXManager
36
+ # SessionContext.instance().services.register_service_type("xxx_manager", XXXManager)
37
+ pass
38
+
@@ -0,0 +1,36 @@
1
+ #################################################
2
+ # HolAdo (Holistic Automation do)
3
+ #
4
+ # (C) Copyright 2021-2025 by Eric Klumpp
5
+ #
6
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
7
+ #
8
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
9
+
10
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
11
+ #################################################
12
+
13
+ import logging
14
+
15
+ # Uncomment next lines to insert holado sources when using a clone of holado project rather than holado package
16
+ # from initialize_holado import insert_holado_source_paths # @UnresolvedImport
17
+ # insert_holado_source_paths()
18
+
19
+ # Initialize HolAdo
20
+ from holado import initialize_for_script
21
+ initialize_for_script(TSessionContext=None, use_holado_logger=True, logging_config_file_path=None,
22
+ log_level=logging.WARNING, log_time_in_utc=None, log_on_console=True, log_in_file=False,
23
+ config_kwargs={'application_group':'configuration'},
24
+ garbage_collector_periodicity=None)
25
+
26
+ # Script content
27
+ from holado.common.context.session_context import SessionContext
28
+ from holado_core.common.resource.persisted_method_to_call_manager import PersistedMethodToCallManager
29
+ from holado.common.handlers.undefined import any_value
30
+
31
+ persisted_method_to_call_manager = PersistedMethodToCallManager(scope_name=any_value)
32
+ persisted_method_to_call_manager.initialize(SessionContext.instance().resource_manager, SessionContext.instance().expression_evaluator)
33
+ if persisted_method_to_call_manager.does_persistent_db_exist():
34
+ persisted_method_to_call_manager.call_functions_and_methods(use="post_process")
35
+
36
+
@@ -0,0 +1,6 @@
1
+ #!/bin/bash
2
+
3
+ SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )
4
+
5
+ #${SCRIPT_DIR}/../../../run_test.sh -i /Configuration -t execute_persisted_post_processes
6
+ python3 "${SCRIPT_DIR}"/execute_persisted_post_processes.py
@@ -0,0 +1,62 @@
1
+
2
+ #################################################
3
+ # HolAdo (Holistic Automation do)
4
+ #
5
+ # (C) Copyright 2021-2025 by Eric Klumpp
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
8
+ #
9
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
10
+
11
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
12
+ #################################################
13
+
14
+
15
+ #################################################
16
+ # GOAL: Tools when using a clone of HolAdo project.
17
+ #
18
+ # This file contains methods usefull to initialize environments using a clone of HolAdo project.
19
+ #
20
+ # USAGE:
21
+ # - Copy this file in projects using HolAdo.
22
+ # - Define environment variable HOLADO_PATH with path to cloned HolAdo project.
23
+ # If HOLADO_PATH is defined, sources of cloned HolAdo project are used, else installed holado package is used.
24
+ #################################################
25
+
26
+
27
+
28
+ import os
29
+ import sys
30
+
31
+
32
+ def insert_sys_path(path, index=0):
33
+ """Insert a path in sys.path if it doesn't already exists.
34
+ """
35
+ if path not in sys.path:
36
+ sys.path.insert(index, path)
37
+
38
+ def insert_holado_source_paths(with_test_behave=True):
39
+ """Insert in sys.path all HolAdo source paths.
40
+ If environment variable HOLADO_PATH is defined with path to HolAdo project, following paths are inserted in sys.path:
41
+ - HOLADO_PATH/src: path to holado modules sources
42
+ - HOLADO_PATH/tests/behave (if with_test_behave==True): path to holado test sources, needed by testing solutions
43
+ """
44
+ holado_path = os.getenv('HOLADO_PATH')
45
+ if holado_path is None:
46
+ try:
47
+ import holado # @UnusedImport
48
+ except Exception as exc:
49
+ if "No module named" in str(exc):
50
+ raise Exception(f"If environment variable HOLADO_PATH is not defined with path to HolAdo project, 'holado' python package must be installed")
51
+ else:
52
+ raise exc
53
+ else:
54
+ # holado is installed, and all sources are already accessible
55
+ pass
56
+ else:
57
+ print(f"Using HolAdo project installed in '{holado_path}'")
58
+ insert_sys_path(os.path.join(holado_path, "src"))
59
+ if with_test_behave:
60
+ insert_sys_path(os.path.join(holado_path, "tests", "behave"))
61
+
62
+
@@ -0,0 +1,16 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #################################################
4
+ # HolAdo (Holistic Automation do)
5
+ #
6
+ # (C) Copyright 2021-2025 by Eric Klumpp
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
13
+ #################################################
14
+
15
+
16
+ from .tools.host_controller.client_steps import *
@@ -0,0 +1,97 @@
1
+ # -*- coding: utf-8 -*-
2
+
3
+ #################################################
4
+ # HolAdo (Holistic Automation do)
5
+ #
6
+ # (C) Copyright 2021-2025 by Eric Klumpp
7
+ #
8
+ # Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
9
+ #
10
+ # The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
11
+
12
+ # The Software is provided “as is”, without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose and noninfringement. In no event shall the authors or copyright holders be liable for any claim, damages or other liability, whether in an action of contract, tort or otherwise, arising from, out of or in connection with the software or the use or other dealings in the Software.
13
+ #################################################
14
+
15
+
16
+ from holado.common.context.session_context import SessionContext
17
+ from holado_test.behave.behave import * # @UnusedWildImport
18
+ import logging
19
+ from holado_test.scenario.step_tools import StepTools
20
+ from holado_test.behave.scenario.behave_step_tools import BehaveStepTools
21
+ from holado_value.common.tables.converters.value_table_converter import ValueTableConverter
22
+ from holado_tools.tools.host_controller.client.rest.host_controller_client import HostControllerClient
23
+
24
+ logger = logging.getLogger(__name__)
25
+
26
+
27
+ def __get_scenario_context():
28
+ return SessionContext.instance().get_scenario_context()
29
+
30
+ def __get_variable_manager():
31
+ return __get_scenario_context().get_variable_manager()
32
+
33
+
34
+ @Given(r"(?P<var_name>{Variable}) = new Host Controller client")
35
+ def step_impl(context, var_name):
36
+ var_name = StepTools.evaluate_variable_name(var_name)
37
+ table = BehaveStepTools.get_step_table(context)
38
+ if table is not None:
39
+ kwargs = ValueTableConverter.convert_name_value_table_2_dict(table)
40
+ else:
41
+ kwargs = {}
42
+
43
+ res = HostControllerClient.new_client(**kwargs)
44
+
45
+ __get_variable_manager().register_variable(var_name, res)
46
+
47
+ @Step(r"(?P<var_name>{Variable}) = list containers \(Host Controller client: (?P<var_client>{Variable})\)")
48
+ def step_impl(context, var_name, var_client):
49
+ var_name = StepTools.evaluate_variable_name(var_name)
50
+ client = StepTools.evaluate_variable_value(var_client)
51
+
52
+ res = client.get_containers_status()
53
+
54
+ __get_variable_manager().register_variable(var_name, res)
55
+
56
+ @Step(r"(?P<var_name>{Variable}) = get information on container (?P<name>{Str}) \(Host Controller client: (?P<var_client>{Variable})\)")
57
+ def step_impl(context, var_name, name, var_client):
58
+ var_name = StepTools.evaluate_variable_name(var_name)
59
+ name = StepTools.evaluate_scenario_parameter(name)
60
+ client = StepTools.evaluate_variable_value(var_client)
61
+
62
+ res = client.get_container_info(name)
63
+
64
+ __get_variable_manager().register_variable(var_name, res)
65
+
66
+ @Step(r"(?:(?P<or_start_str>start or ))?restart container (?P<name>{Str}) \(Host Controller client: (?P<var_client>{Variable})\)")
67
+ def step_impl(context, or_start_str, name, var_client):
68
+ or_start = or_start_str is not None
69
+ name = StepTools.evaluate_scenario_parameter(name)
70
+ client = StepTools.evaluate_variable_value(var_client)
71
+
72
+ client.restart_container(name, start_if_gone=or_start)
73
+
74
+ @Step(r"start container (?P<name>{Str}) \(Host Controller client: (?P<var_client>{Variable})\)")
75
+ def step_impl(context, name, var_client):
76
+ name = StepTools.evaluate_scenario_parameter(name)
77
+ client = StepTools.evaluate_variable_value(var_client)
78
+
79
+ client.start_container(name)
80
+
81
+ @Step(r"stop container (?P<name>{Str})(?:(?P<if_started_str> if started))? \(Host Controller client: (?P<var_client>{Variable})\)")
82
+ def step_impl(context, name, if_started_str, var_client):
83
+ name = StepTools.evaluate_scenario_parameter(name)
84
+ if_started = if_started_str is not None
85
+ client = StepTools.evaluate_variable_value(var_client)
86
+
87
+ client.stop_container(name, raise_if_gone=not if_started)
88
+
89
+ @Step(r"wait container (?P<name>{Str})(?:(?P<if_started_str> if started))? \(Host Controller client: (?P<var_client>{Variable})\)")
90
+ def step_impl(context, name, if_started_str, var_client):
91
+ name = StepTools.evaluate_scenario_parameter(name)
92
+ if_started = if_started_str is not None
93
+ client = StepTools.evaluate_variable_value(var_client)
94
+
95
+ client.wait_container(name, raise_if_gone=not if_started)
96
+
97
+