holado 0.10.1__py3-none-any.whl → 0.11.0__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 (61) hide show
  1. holado/common/context/session_context.py +1 -1
  2. {holado-0.10.1.dist-info → holado-0.11.0.dist-info}/METADATA +1 -1
  3. {holado-0.10.1.dist-info → holado-0.11.0.dist-info}/RECORD +33 -59
  4. holado_core/common/tools/path_manager.py +2 -2
  5. holado_docker/tests/behave/steps/__init__.py +1 -1
  6. holado_python/standard_library/ssl/resources/certificates/tcpbin.crt +16 -16
  7. holado_python/standard_library/ssl/resources/certificates/tcpbin.key +26 -26
  8. holado_report/campaign/campaign_manager.py +2 -2
  9. holado_report/report/builders/failure_report_builder.py +1 -1
  10. holado_report/report/builders/short_scenario_failed_report_builder.py +1 -1
  11. holado_report/report/builders/summary_scenario_by_category_report_builder.py +87 -0
  12. holado_report/report/builders/summary_scenario_failed_report_builder.py +1 -1
  13. holado_report/report/builders/summary_scenario_report_builder.py +1 -1
  14. holado_report/report/report_manager.py +40 -10
  15. holado_test/__init__.py +1 -1
  16. holado_test/{test_server → tools/test_server}/server/Dockerfile +6 -16
  17. holado_test/{test_server → tools/test_server}/server/core/server_context.py +1 -1
  18. holado_test/{test_server → tools/test_server}/server/rest/run.py +1 -1
  19. test_holado/features/Test/test_host_controller.feature +13 -0
  20. test_holado/logging.conf +1 -1
  21. holado_docker/tests/behave/steps/tools/docker_controller/client_steps.py +0 -97
  22. holado_docker/tools/docker_controller/client/rest/docker_controller_client.py +0 -143
  23. holado_docker/tools/docker_controller/server/Dockerfile +0 -70
  24. holado_docker/tools/docker_controller/server/grpc/README +0 -2
  25. holado_docker/tools/docker_controller/server/grpc/__init__.py +0 -26
  26. holado_docker/tools/docker_controller/server/grpc/proto/compile_proto.py +0 -60
  27. holado_docker/tools/docker_controller/server/grpc/proto/definitions/docker_controler.proto +0 -63
  28. holado_docker/tools/docker_controller/server/requirements.txt +0 -2
  29. holado_docker/tools/docker_controller/server/rest/README +0 -2
  30. holado_docker/tools/docker_controller/server/rest/api/__init__.py +0 -40
  31. holado_docker/tools/docker_controller/server/rest/api/config.py +0 -57
  32. holado_docker/tools/docker_controller/server/rest/api/container.py +0 -55
  33. holado_docker/tools/docker_controller/server/rest/api/os.py +0 -47
  34. holado_docker/tools/docker_controller/server/rest/openapi.yaml +0 -265
  35. holado_docker/tools/docker_controller/server/rest/run.py +0 -31
  36. holado_docker/tools/docker_controller/server/run_docker_controller_in_docker.sh +0 -102
  37. holado_docker/tools/docker_viewer/client/rest/docker_viewer_client.py +0 -40
  38. holado_docker/tools/docker_viewer/docker_viewer_manager.py +0 -44
  39. holado_docker/tools/docker_viewer/server/Dockerfile +0 -70
  40. holado_docker/tools/docker_viewer/server/requirements.txt +0 -2
  41. holado_docker/tools/docker_viewer/server/rest/README +0 -2
  42. holado_docker/tools/docker_viewer/server/rest/api/__init__.py +0 -40
  43. holado_docker/tools/docker_viewer/server/rest/initialize_holado.py +0 -72
  44. holado_docker/tools/docker_viewer/server/rest/openapi.yaml +0 -58
  45. holado_docker/tools/docker_viewer/server/rest/run.py +0 -31
  46. holado_docker/tools/docker_viewer/server/run_docker_viewer_in_docker.sh +0 -101
  47. holado_test/test_server/server/rest/initialize_holado.py +0 -72
  48. test_holado/features/Test/test_docker_controller.feature +0 -13
  49. {holado-0.10.1.dist-info → holado-0.11.0.dist-info}/WHEEL +0 -0
  50. {holado-0.10.1.dist-info → holado-0.11.0.dist-info}/licenses/LICENSE +0 -0
  51. /holado_test/{test_server → tools/test_server}/client/rest/test_server_client.py +0 -0
  52. /holado_test/{test_server → tools/test_server}/server/core/server_manager.py +0 -0
  53. /holado_test/{test_server → tools/test_server}/server/requirements.txt +0 -0
  54. /holado_test/{test_server → tools/test_server}/server/rest/README +0 -0
  55. /holado_test/{test_server → tools/test_server}/server/rest/api/__init__.py +0 -0
  56. /holado_test/{test_server → tools/test_server}/server/rest/api/campaign/__init__.py +0 -0
  57. /holado_test/{test_server → tools/test_server}/server/rest/api/campaign/scenario.py +0 -0
  58. {holado_docker/tools/docker_controller → holado_test/tools/test_server}/server/rest/initialize_holado.py +0 -0
  59. /holado_test/{test_server → tools/test_server}/server/rest/logging.conf +0 -0
  60. /holado_test/{test_server → tools/test_server}/server/rest/openapi.yaml +0 -0
  61. /holado_test/{test_server → tools/test_server}/server/run_test_server_in_docker.sh +0 -0
@@ -337,7 +337,7 @@ class SessionContext(Context):
337
337
  category_validation, status_validation, step_failed, step_number = ReportManager.get_current_scenario_status_information(scenario)
338
338
  if status_validation != "Passed":
339
339
  msg_list = []
340
- category_str = f" ({category_validation})" if category_validation else ""
340
+ category_str = f" => {category_validation}" if category_validation else ""
341
341
  if step_failed is not None:
342
342
  msg_list.append(f"Scenario {status_validation}{category_str}: [scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line})]")
343
343
  else:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.10.1
3
+ Version: 0.11.0
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=TOT2_CqeqQtvuGBfVnuY1cbj8PGhyLPv0mlPJD0e6V0,23474
7
+ holado/common/context/session_context.py,sha256=IWxkeYnMSVImNyamTd3PXZSFIkXY96qFyAlC1y8s0J4,23475
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
@@ -126,7 +126,7 @@ holado_core/common/tables/comparators/table_with_header_comparator.py,sha256=j7B
126
126
  holado_core/common/tables/converters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
127
127
  holado_core/common/tables/converters/table_converter.py,sha256=PD7NJoxtejpr4aS1l3YKcXW1aEn1xBxdi4Ljs5G7R4g,10251
128
128
  holado_core/common/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
129
- holado_core/common/tools/path_manager.py,sha256=27kLsvS2PfbZufG6P7T_-7N9Dh4dY3wgSZUwjM6ta_A,10876
129
+ holado_core/common/tools/path_manager.py,sha256=XeQ8tS2S5XZn3L65LYXsOhNDe166uO8X2sxnwXqZbVE,10932
130
130
  holado_core/common/tools/string_tools.py,sha256=bQuMlI_yS7OoSPFL7qyfyXkrnjC8xHVpIsfmEC6JxhI,5590
131
131
  holado_core/common/tools/tools.py,sha256=zkDz7u8S_02bfyN6K-p7-Ey_SkDxzu9DJljnczY0OAo,9683
132
132
  holado_core/common/tools/comparators/comparator.py,sha256=K4LcXIRORHX5vkmDibI6P6Bu1L-6Xezb63ZzzOMKrWY,6812
@@ -192,34 +192,7 @@ holado_django/tests/behave/steps/django_server_steps.py,sha256=XAnKDUXJxsZ4L7-PY
192
192
  holado_docker/__init__.py,sha256=CtGYR7aEkaCdAHPDAsu_ErjpVtYE0yz9wbgbfRUwS8s,1574
193
193
  holado_docker/sdk/docker/docker_client.py,sha256=rh1VLtcefIAZY88FMz7eyh1mFrWn3vVxop6TlC9t2sU,14138
194
194
  holado_docker/sdk/docker/docker_service.py,sha256=SvMSIZ7XTCbC7q5rur03lJhJVSHL3uIq1dBQz9oDpkw,3767
195
- holado_docker/tests/behave/steps/__init__.py,sha256=lrP0btKLA3qQD2wp3zbOp0ug8RmgpaYWCrOAWehcPiI,1298
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
- holado_docker/tools/docker_controller/server/Dockerfile,sha256=zuSkj3HYDhvpjOSXmxL4oDqhN7dRB1YTX5Fyur1cuDY,1774
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=HPNEv51CAgEm0KZ3b3fV4pHwv5v6VDQAwomTnnL4mxY,3421
201
- holado_docker/tools/docker_controller/server/grpc/README,sha256=cNOly0Lfsfz_qyhTqLGmELOXzAgZbByNUowuYrUnJa0,132
202
- holado_docker/tools/docker_controller/server/grpc/__init__.py,sha256=QBkE1ydbCvARUimeSY2PvBkZ-Jp0bCv6k_l89a_8zNw,1551
203
- holado_docker/tools/docker_controller/server/grpc/proto/compile_proto.py,sha256=NjcStLaAO_zKcSprrcGscq3R_4anh55QeguXLq6SPjo,2191
204
- holado_docker/tools/docker_controller/server/grpc/proto/definitions/docker_controler.proto,sha256=n9bsXaQfnZX-R5HvfquCVt3QjpFtDJSH6p8gnTjm06k,1650
205
- holado_docker/tools/docker_controller/server/rest/README,sha256=-uqu3drdPXkPkU4ha1IKcXGBHFIBEWH-uiTT74DExwE,167
206
- holado_docker/tools/docker_controller/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
207
- holado_docker/tools/docker_controller/server/rest/openapi.yaml,sha256=8mhJdAYi-wftxdStsD6el0j1Zo8zqx1MzwqZndyKhMY,6864
208
- holado_docker/tools/docker_controller/server/rest/run.py,sha256=4bEcRbobax-b8MugINb852Tdg6r-nQlfa8_bfil8xDE,2011
209
- holado_docker/tools/docker_controller/server/rest/api/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
210
- holado_docker/tools/docker_controller/server/rest/api/config.py,sha256=Ln__1bsigSzJZ-Iy3MQgmiZMnpBxC3TCQE0O72g5cAs,2459
211
- holado_docker/tools/docker_controller/server/rest/api/container.py,sha256=6D612WF4chpDCzr4MBzZXzELxi-yOwrgxCxSBBVMcVo,2673
212
- holado_docker/tools/docker_controller/server/rest/api/os.py,sha256=EA3DCxGBCnMd2XJyn9kb6IWmtbaPIyv5UfZypCNzkhY,2123
213
- holado_docker/tools/docker_viewer/docker_viewer_manager.py,sha256=tSLuIUdYjJoZIFUc1k4WnrRTUtjjTAmNTbrDmS-8SjI,2287
214
- holado_docker/tools/docker_viewer/client/rest/docker_viewer_client.py,sha256=XNBt7QE-Elz9wUT32hdft7vU0ytcY8f-0AvlDZ8NWMo,2005
215
- holado_docker/tools/docker_viewer/server/Dockerfile,sha256=012m7y_jg1Jh0NoqJSUTnmG9OppX2zlcFe-KhB71cVA,1750
216
- holado_docker/tools/docker_viewer/server/requirements.txt,sha256=0RvLV3t2DyBR2FsbAd1WVEcbsVc6FVUN2horQJU4POo,57
217
- holado_docker/tools/docker_viewer/server/run_docker_viewer_in_docker.sh,sha256=qwy4JErJvv09qgzp5yjEI4skVTsfQjHeu8NVxZmAKwU,3138
218
- holado_docker/tools/docker_viewer/server/rest/README,sha256=1FMg-U_D9pUMBVmZJsirOXHFLTciDL5jB-Yqzp9U6uM,163
219
- holado_docker/tools/docker_viewer/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
220
- holado_docker/tools/docker_viewer/server/rest/openapi.yaml,sha256=ZBjVs7Ld1VCdTBk7FgZXEvUACtn6aDdv8cHDE669YZc,1715
221
- holado_docker/tools/docker_viewer/server/rest/run.py,sha256=jgJgmFFdppadLBahWU8Yw8-PdA5HJzBTDCPTPHGRzbA,2007
222
- holado_docker/tools/docker_viewer/server/rest/api/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
195
+ holado_docker/tests/behave/steps/__init__.py,sha256=BHp8TYE_X4lWn4B8A51nXSYaJlczuiDVJLcKMy7p0Lw,1267
223
196
  holado_examples/projects/server_rest/server_rest_example/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
224
197
  holado_examples/projects/server_rest/server_rest_example/rest_server.py,sha256=xMLHBwGBdBvT0DYOpGBuvnSXNjEu3cvU9ty_h187QW4,1887
225
198
  holado_examples/projects/server_rest/server_rest_example/rest_api/db.sqlite3,sha256=LBFAfNepksCk8npTt9QtnG7CVtDKbZM7kmy13wv1Er0,131072
@@ -363,8 +336,8 @@ holado_python/standard_library/ssl/resources/certificates/NOTES.txt,sha256=GlPGG
363
336
  holado_python/standard_library/ssl/resources/certificates/localhost.crt,sha256=iLmZpDuOQVawUlbZkb72g2-uv1c4SAmRJOrm4Th5anY,1123
364
337
  holado_python/standard_library/ssl/resources/certificates/localhost.key,sha256=lP2NCvB9mr2E5sk8whA8FyQRcyU6H7sdWkJeKz80Hyc,1704
365
338
  holado_python/standard_library/ssl/resources/certificates/rootCACert.pem,sha256=ECQDZ8OHRfqpZHCu6JRLMUjiONaPIhKZQF0-kidVrWQ,1424
366
- holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=vD18qCn_hEkCOhFCiTudZnPaQ4huFMZVpA0PMChJv4c,1237
367
- holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=eQ2wHYKJkQfKHVDYA49pvtRIZvxuKonUHx54-05YXV4,1704
339
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=irlQEaUfHPFbeDFcvZwtyneZxoM6s6KFLgXa6N_io6E,1237
340
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=fq0j9a8lrCUS8Jo6vS0a_FoZOwO5OfFb2Fa19u3xd9Y,1704
368
341
  holado_python/tests/behave/steps/__init__.py,sha256=TWEk-kBTTDHi9I4nuu48nufmNMdZ9FHAhPZv0A_cWzc,1661
369
342
  holado_python/tests/behave/steps/convert_steps.py,sha256=bZqRvJVp_u6fSPpdu4ne9NwVyZmui7R-AVdO2-H-I1A,2728
370
343
  holado_python/tests/behave/steps/iterable_steps.py,sha256=f4vGIWBH8Qnjq69Q-ZBluYyctQ8SKauazTc41dsktZA,4041
@@ -392,19 +365,20 @@ holado_redis/tools/redis/TODO.txt,sha256=cmFyx6qS6_FgL1Ph0OWRsWch6MQaklfv1j0qBO2
392
365
  holado_redis/tools/redis/redis_client.py,sha256=KWuOrnwTcwt5xkD3rtI_l07v164Y_bsoo1kE0IGzqaQ,8316
393
366
  holado_redis/tools/redis/redis_manager.py,sha256=tMO0XrCZTCfGdByFfgWXk9R-I_TUPLO9wXMQf8yCYcQ,1814
394
367
  holado_report/__init__.py,sha256=3wtu5g9d4d-AICmLZclPQrw2MS-FJL9CyiVO1n2MYWA,1868
395
- holado_report/campaign/campaign_manager.py,sha256=Py5aAGc-6rJb1FlDsUJ7EwyrGy0DBEXLPTJzR7yBMe8,8693
368
+ holado_report/campaign/campaign_manager.py,sha256=fZtxvtFc7_BZm3KGZNMYh0p8SJ-znEX89MlEY6Gp3aE,8748
396
369
  holado_report/report/execution_historic.py,sha256=M4lYoZwyrSivRa17Q39GOAgROnr0oBvIZX5BNcO5Mnc,6951
397
- holado_report/report/report_manager.py,sha256=VOA9ABV3DAGf5Q5_eNPVJ3oJndiZSXGI8SKg6uP-Sq0,14713
370
+ holado_report/report/report_manager.py,sha256=KiKMiZbjYa7-0yH8zs8KQdqz5VyZwwSAHizDYRwGGp8,16624
398
371
  holado_report/report/analyze/execution_historic_manager.py,sha256=FMKKPguXOvWNxjF7Q8DodHHsH-2ci9pFzrTV41B8nL4,4556
399
372
  holado_report/report/analyze/scenario_duration_manager.py,sha256=Preaxu83qFKGfbvQnzolhSXztZ4i5Zo_Bnxx8tNA80Q,12468
400
373
  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
374
+ holado_report/report/builders/failure_report_builder.py,sha256=WLLlLgLbEyYJNENEoxSkQQSf11DDoKpSa4kdaq7eV8U,6533
402
375
  holado_report/report/builders/json_execution_historic_report_builder.py,sha256=M7OGUvkqNRTG5Td7fO96tv1SJEzRzjm0pl1W02v052E,5929
403
376
  holado_report/report/builders/report_builder.py,sha256=5qlhxbdTkSN7p9q6EADkpHQGPDVEHquIhgA3mK2Ck2k,2261
404
- holado_report/report/builders/short_scenario_failed_report_builder.py,sha256=9athhQPoVioz-NTc1BoD0kbCqKzW3ARkQy77ODPuGkM,4011
377
+ holado_report/report/builders/short_scenario_failed_report_builder.py,sha256=50pXhWX8xwIDZWSFaBejzMUlS9a0GRXqA82d84V3udk,4012
405
378
  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
379
+ holado_report/report/builders/summary_scenario_by_category_report_builder.py,sha256=1rzuF4KFPzO5jFuvC_OKvsnNMRrzW3zG5nU5GUSux1U,4274
380
+ holado_report/report/builders/summary_scenario_failed_report_builder.py,sha256=uqf86SUAiIQLRQOV0A434oR8Bj4e_DtxqRsy-pe84p4,3063
381
+ holado_report/report/builders/summary_scenario_report_builder.py,sha256=ZtOg5SWgFUsOJyG-KLybT-8twTX3CwmuFTVIaWJXXZ8,3865
408
382
  holado_report/report/reports/base_report.py,sha256=NGnWe66uyvT4bCjhd3upwVpc6yQ2gyVNFhcy-3LeQsE,6850
409
383
  holado_report/report/reports/feature_report.py,sha256=i0wpk3LQLArVjWDsP9UcNSJzAUWwLhe73HNyfye2gYQ,4810
410
384
  holado_report/report/reports/scenario_report.py,sha256=eMyqw9EzaKMmX3pGFJN1rqAOQ5eqO2ISZdxAfK3XQR4,2945
@@ -486,7 +460,7 @@ holado_system/tests/behave/steps/__init__.py,sha256=7LrCSTHk5oHNuEsr4IhJuNDsohtR
486
460
  holado_system/tests/behave/steps/system/commands_steps.py,sha256=uYiojPpYPkfif8l8afRrJ0sj-wFBE4j1x67BDMNs76Q,3901
487
461
  holado_system/tests/behave/steps/system/file_steps.py,sha256=-RPUGEjsYfzWIMRDiQRalmvspPZIPP8YMzSZvSI4-p8,9966
488
462
  holado_system/tests/behave/steps/system/system_steps.py,sha256=2XrZwuAaYDjB_HvPgxZq9MpYB_Zo7FVZ0DYcmtKht2s,3778
489
- holado_test/__init__.py,sha256=vJtCQyCdqEdCukAiuD8D6L59rfpGmW2-hJmypGi1d00,1744
463
+ holado_test/__init__.py,sha256=abDwvbUJHzY0WII3x6oBwMLOvZhG2o0nMpNdba6Lifw,1750
490
464
  holado_test/test_config.py,sha256=yQK2jNHEGltGc3fmsAgcsKN4y3_nuldZHD45XEMrsQA,1575
491
465
  holado_test/behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
492
466
  holado_test/behave/behave.py,sha256=IiqT_F45C-xVY2T8sKDPV7NsFCiGNzb8xpoTaXD-PXg,17708
@@ -502,24 +476,24 @@ holado_test/common/context/step_context.py,sha256=jknJVU0OrzRaqlTJyhwBFjr9uKPe1d
502
476
  holado_test/common/exceptions/undefined_step_exception.py,sha256=SHHX22iz4Ip-V4Y3aM2EJFDt30CCS5EaauN6KB-JORo,1461
503
477
  holado_test/scenario/step_tools.py,sha256=iNay6tQPUi4sG-a8PY5LbbLpX0PRakkOj3ls98aEbHM,26375
504
478
  holado_test/scenario/tester_tools.py,sha256=Tv035FyXPjQ46Ep8KuPOjOvzJFvxnbv9EsrSihUzAwg,2479
505
- holado_test/test_server/client/rest/test_server_client.py,sha256=WJG-_FLSg1YuRXUBX-5RXd-97XEnUv1UfTvyvQnXLo4,5317
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=xS_uCK7X3XqcuvpSSesW7xx9PE6FbFvwj0CqxBDWIks,2389
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
519
479
  holado_test/tests/behave/steps/__init__.py,sha256=rdqrp-UN7vRplIqORx4sXyKwMUkptRizyLWudsmYehM,1362
520
480
  holado_test/tests/behave/steps/scenario/exception_steps.py,sha256=ZIE92Dz7a6O_c0jAP_0dj6Hc0tnW6YRgNKd4_aBpeR0,4054
521
481
  holado_test/tests/behave/steps/scenario/scenario_steps.py,sha256=RfM5Lh4sduKeYSD1NzUxtQ8705O7nausoz_gnpAJQB0,4616
522
482
  holado_test/tests/behave/steps/scenario/tester_steps.py,sha256=zEm36-su8jrqe0uv8ai4xN97j3_p2jmcPv_-jRRu688,2997
483
+ holado_test/tools/test_server/client/rest/test_server_client.py,sha256=WJG-_FLSg1YuRXUBX-5RXd-97XEnUv1UfTvyvQnXLo4,5317
484
+ holado_test/tools/test_server/server/Dockerfile,sha256=gjLXjz7toyCUhtUjrZAF77QucWVy_e5ebI2aBaB0Qjc,1470
485
+ holado_test/tools/test_server/server/requirements.txt,sha256=c2iNG9IZZogAEC9oSWRTWEF9-OHW0vRtijPNK4P6_xY,45
486
+ holado_test/tools/test_server/server/run_test_server_in_docker.sh,sha256=ISNvFT1dBM6aiw5Iv6yBhInn7L8ZYyz_7EDK_X1eCvk,3121
487
+ holado_test/tools/test_server/server/core/server_context.py,sha256=90ZRSvWLkkuxZ7SB99SOPnLt_U9rRlXEvVSo4VVRnuM,1229
488
+ holado_test/tools/test_server/server/core/server_manager.py,sha256=PW5ShUdnbdq6E3Ou87C5feXuJRc1V7qADkmGItLIi3A,2890
489
+ holado_test/tools/test_server/server/rest/README,sha256=J_LIXWFxtxc8okQGZ8Kk0dMSRra9oUzbMP_ylCe4pTo,161
490
+ holado_test/tools/test_server/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
491
+ holado_test/tools/test_server/server/rest/logging.conf,sha256=yeNIHFQCYlDmkdLlQ3NCoMuxpUNn6i8ZDAzOUna_2aA,1282
492
+ holado_test/tools/test_server/server/rest/openapi.yaml,sha256=4Juf_QggWo7z9te3_sS96TxxARWU1MtFkJZAilEsxr8,1027
493
+ holado_test/tools/test_server/server/rest/run.py,sha256=OpDBkjBX_ZoNfwTWc2VV7dINALjp7ZrGUUiDaSEHQVU,2395
494
+ holado_test/tools/test_server/server/rest/api/__init__.py,sha256=4QcsiWhFX0sGhJYuoqUUfwEYb6ceIDlFFlU1q3ls7Xc,1442
495
+ holado_test/tools/test_server/server/rest/api/campaign/__init__.py,sha256=btZb20N5k7_WbowNAC1C7yYDUkwPnUU5QUmh-jO0bhg,1586
496
+ holado_test/tools/test_server/server/rest/api/campaign/scenario.py,sha256=4eTIScEGL0GKD7g6aIPHJVvaVbwz487zlEg9mRQv84Y,1737
523
497
  holado_value/__init__.py,sha256=60VyLyWux76dFwn03uH4Fz3R6itf6fqKu0pQUdvwblU,1561
524
498
  holado_value/common/tables/value_table.py,sha256=fJgb-HWdlMwHOAx5CS38sPiVrjGelEiQBbG9HuHqe-A,1726
525
499
  holado_value/common/tables/value_table_cell.py,sha256=vCL8uSTEKOpI9G5f0epgJMArFxQidfWTCRHBZbdrsjc,3344
@@ -554,7 +528,7 @@ test_holado/__main__.py,sha256=PVdCX8V_RGRzbQQKVxf7eyt8a10XfUJ1pcaajGgIlus,1509
554
528
  test_holado/build_docker_image_to_test_holado_in_docker.sh,sha256=B3hbi0yKnEC-t9S18o6ZR27AU1bqiuptwOqm6H7tv8s,142
555
529
  test_holado/environment.py,sha256=SLGJ2v1BoyP_s_KucvuQJLnWPzPJAD6cS4C8eBNaJW8,2381
556
530
  test_holado/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
557
- test_holado/logging.conf,sha256=au0QmrtF97ZxuVhgItHXdMLalkxAkxuWtgoOvGivfxc,1312
531
+ test_holado/logging.conf,sha256=vsCMsRnvSMHl6nBmRqG7kBYC3qshAcxiAg5iUUw1Udw,1318
558
532
  test_holado/test_holado_session_context.py,sha256=qOB_i2k8mYjkR3-q2uv0B04xFc1K3p-K20ttYwe1Z18,1364
559
533
  test_holado/features/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
560
534
  test_holado/features/NonReg/api/REST.feature,sha256=yAhCpWk7HbHztkdwkfcU-TrfnJVoOzHvYMmk9pUy50A,689
@@ -620,7 +594,7 @@ test_holado/features/NonReg/tools/sFTP.feature,sha256=LWhkOSlvCGN90qx3zXSlZrgWZs
620
594
  test_holado/features/NonReg/tools/S3/boto3_client.feature,sha256=mAGMcyQRSy3VSAzkGUKIGM00F_OD8hfXZv1JYWztpqU,3384
621
595
  test_holado/features/NonReg/tools/S3/minio_client.feature,sha256=c2i36-ehegxQbBBKR57Y5TTmdJK6fV4tGI6ksvHtyA8,3778
622
596
  test_holado/features/Test/logger.feature,sha256=Ptiq79z3P2aMNJYRSRuMvhArc_4P3Ey6Rv1RolGRIBw,531
623
- test_holado/features/Test/test_docker_controller.feature,sha256=OSD_ttaeoe9tyxQmQtadFlF6wjImsnfNukSx_dhuLaI,348
597
+ test_holado/features/Test/test_host_controller.feature,sha256=DTihcXDXY7-II0vcVvrMfPC51KexssB96fIgAPdpeYk,342
624
598
  test_holado/features/Test/test_parameter.feature,sha256=Yu5RycNfqUWN2O7F5u52lGEydhALeG5NmSZnyifGbK4,378
625
599
  test_holado/resources/proto/definitions/protobuf/custom_types/field_types.proto,sha256=d2QU_j-qKB6pdvUKQCGv-gSgBOPW6QcBaKrQMqZ_kNM,398
626
600
  test_holado/resources/proto/definitions/protobuf/protobuf.dev/tutorial/addressbook.proto,sha256=rxzTe354X-R2UeKi6i7mjcTavPvQctLRPPrWYYsWZBU,1362
@@ -671,7 +645,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
671
645
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
672
646
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
673
647
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
674
- holado-0.10.1.dist-info/METADATA,sha256=Q5DwNRjrAWS6lrHGiUbz7T2pJPXzlvE39zM4hnxx3I0,7672
675
- holado-0.10.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
676
- holado-0.10.1.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
677
- holado-0.10.1.dist-info/RECORD,,
648
+ holado-0.11.0.dist-info/METADATA,sha256=jgeXxMQkW9hPhsCkZoSWN_wgLsguag3f0_JWpDqbIGk,7672
649
+ holado-0.11.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
650
+ holado-0.11.0.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
651
+ holado-0.11.0.dist-info/RECORD,,
@@ -158,13 +158,13 @@ class PathManager(object):
158
158
  else:
159
159
  return base_path
160
160
 
161
- def get_reports_path(self, name=None):
161
+ def get_reports_path(self, name=None, with_application_group=True):
162
162
  base_path = os.getenv('HOLADO_OUTPUT_BASEDIR')
163
163
  if base_path is None:
164
164
  base_path = os.path.join(self.get_user_home_path(), '.holado', 'output')
165
165
 
166
166
  res = os.path.join(base_path, "reports")
167
- if Config.application_group is not None:
167
+ if with_application_group and Config.application_group is not None:
168
168
  res = os.path.join(res, Config.application_group)
169
169
  if name is not None:
170
170
  res = os.path.join(res, name)
@@ -13,4 +13,4 @@
13
13
  #################################################
14
14
 
15
15
 
16
- from .tools.docker_controller.client_steps import *
16
+ # from .xxx import *
@@ -2,20 +2,20 @@
2
2
  MIIDZTCCAk2gAwIBAgIBKjANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMCVVMx
3
3
  CzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ8wDQYDVQQKDAZ0
4
4
  Y3BiaW4xDDAKBgNVBAsMA29wczETMBEGA1UEAwwKdGNwYmluLmNvbTEjMCEGCSqG
5
- SIb3DQEJARYUaGFycnliYWdkaUBnbWFpbC5jb20wHhcNMjUxMDE2MjIzNTE5WhcN
6
- MjUxMDE3MjIzNTE5WjAcMRowGAYDVQQDDBF0Y3BiaW4uY29tLWNsaWVudDCCASIw
7
- DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMxmg8CRudZQj9pgRnvPQrWyqn1A
8
- 55RlXoax8OMEeEQHhreCOj69WV6K9OvHebbAtMNCEyXFwNUNX1XjlhhLcqhY5yLR
9
- 5k9vgOoq2ribBwdMRnYyIajWp7y53L/J35Qf2FWNeS+3AXv/mWiYnGpTJZHXCMyo
10
- wOgDqeqz5wzl8ncvj5HWBkZm/mPDwK6fR/4SXMv+NIBooUKGZTST/1Q75/tvPhwf
11
- dpGWTUd1xKw3TKz63B+jAATdPbIxTnSxJY1uLdBZ1hUguGxrC+nvqgY0283lVz3n
12
- Jz7P2BCwmwmgRwBLIUw1381QuFJjGlKSglw/HraIfVyJASQqEk2gVil5Gr8CAwEA
13
- AaNCMEAwHQYDVR0OBBYEFMQRuiY7hUUnl5wxL6R6gnlhyXaiMB8GA1UdIwQYMBaA
14
- FOLuMowBSAZfV5v82LmlaIIOvU/DMA0GCSqGSIb3DQEBCwUAA4IBAQBAX/CniZsN
15
- 9YWuDt7CS+YBpLRe46ryZXzmACpmz4uDzRs+3MRnCtOz1121dW0+zuPMdopxwjG2
16
- GyPirI1mDasoJDn5jRWP1NBvuFN7fcAVsMDi3vBMfzd+oV4Pcgi7uydcd0zX+onp
17
- 1QIyNwAulQB03gfe6IcPAUwyTOtJoc7yo1W6eH/W+RGmj5BaUP+5SB3EHjqih6ds
18
- xPc4yJ43N1gYsXRZDoYuqmy+/h0JQmFupPJRAbOFbh3IsunbLXvsKXzlrgKlhsCg
19
- H0Kc97t7ZQNCzgymNnxsbepNddWwGF8hAj4FruFYtO9rt00aT2bqb9Yw4pRJ+fM8
20
- nDVx1r7BCieF
5
+ SIb3DQEJARYUaGFycnliYWdkaUBnbWFpbC5jb20wHhcNMjUxMDIyMDkwOTA0WhcN
6
+ MjUxMDIzMDkwOTA0WjAcMRowGAYDVQQDDBF0Y3BiaW4uY29tLWNsaWVudDCCASIw
7
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxBxWBybXhqGWMhtI3vpad9SP9k
8
+ 0IsZSIHRRPI27FU/kfoTfMrQayKVggdlyenD3OojsEfNd8mvjz9ApIpogouYgZD4
9
+ 0zqHT8G4B15RASWP2K20WWNuKr7HgvraPwTbjDbtg8XU4kwgGOs1XftPhSi9N2DU
10
+ /O6sEkgprqpkNAAZvn8bHRTpDB4FMqbTmH3ojawtz6PeW4I9YJLvbYFYwmmYrNpD
11
+ L5pLnfyt6MS5/x5MGlpvcCaiQU3hWS8JOKpgP6XrIIsu65fQC+UU4MJIYg/StGPj
12
+ rJ7eRBUoi11tGMCfF38AtYUgdNXdVjDM93F+Oks8tVGSZ9d7cwQknKMUgwECAwEA
13
+ AaNCMEAwHQYDVR0OBBYEFBOraPFlFALkITNnlh3s4B564QvFMB8GA1UdIwQYMBaA
14
+ FOLuMowBSAZfV5v82LmlaIIOvU/DMA0GCSqGSIb3DQEBCwUAA4IBAQA/LgtD4+3x
15
+ myJUWPz8TAJ41zIK2AxUgLmlinQnKzvXdHFjJZtYQPxadOdZon7q3Jw7J2FpaQLh
16
+ cc1h9pKIVaPXiR6I4CStKzw6peBtKJ2oN6uaZpSCQza+TC7Bg50uMbJmW+ph8tkY
17
+ t2wmNFh6Q3+yC8kxQM5u0Cg2NDYGepwNhdUfVy1HpgLaM8Gr5gPSD01p1fyb7pcJ
18
+ MWBK0kK6f0JcxZsIvSVuDX4Fc51LppEqv1THL5G4q3sWacksy0VG/izxLgB3hXs1
19
+ VJBUWAMgbvAjAV15XCmvC3k5mMlyIrfXRO8uPpD5iIDdgQQJ5/Bo4UPFGJPOkLV3
20
+ OEqtvNchmuBf
21
21
  -----END CERTIFICATE-----
@@ -1,28 +1,28 @@
1
1
  -----BEGIN PRIVATE KEY-----
2
- MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDMZoPAkbnWUI/a
3
- YEZ7z0K1sqp9QOeUZV6GsfDjBHhEB4a3gjo+vVleivTrx3m2wLTDQhMlxcDVDV9V
4
- 45YYS3KoWOci0eZPb4DqKtq4mwcHTEZ2MiGo1qe8udy/yd+UH9hVjXkvtwF7/5lo
5
- mJxqUyWR1wjMqMDoA6nqs+cM5fJ3L4+R1gZGZv5jw8Cun0f+ElzL/jSAaKFChmU0
6
- k/9UO+f7bz4cH3aRlk1HdcSsN0ys+twfowAE3T2yMU50sSWNbi3QWdYVILhsawvp
7
- 76oGNNvN5Vc95yc+z9gQsJsJoEcASyFMNd/NULhSYxpSkoJcPx62iH1ciQEkKhJN
8
- oFYpeRq/AgMBAAECggEAUKjruSRIl6A3BFAVwGnrw1P8H21rdY4DHVg+3Pc4lm/5
9
- 45TKc1O5XqurNxgCmfG144/BiphdHjYmtvgWlQPA/VoH7B+0qQgxcTb0FQFoZqLc
10
- 82uZCM2cZ8dYq354cjWW4zvu5LttJIea/EGtB/BD1SdsW4cEiQpZFTtlJBvh8NHo
11
- 7+o0mPwwBrXmadsLlxDmhQ0Wsw4ltaK7eMBJlLalg9f/3uW4ArW0OXVK1ycszNXM
12
- 2pfrp9zKYcPzWEP+wrC/6f+AXFDacUIzwxsfNtlI7O57t8pQXf5pkyeBHHlxCvN/
13
- XYx+UBWip6tRnlZRqNvl/8NC0JpX9P8xaeNp21haAQKBgQD1rlkZ9umlmC9PB5oc
14
- Tp00KC5KQmgfqRfEBEVzmm4yGHK0OMx0pCnP/ZONZaE4QX4TmeLCnUxgYCdxl6ep
15
- 406g0i2ig7M+RZ18skh4ubpoiQlLIoNW2mOpV/Hzt53st0HAYogPubrVZAnn/KwA
16
- zehlj0w1yljBXDsK9c6deCdIgQKBgQDU/E12s8aCC0ngOSZqe0lkDWU/yQfX8BnJ
17
- cSA3dU1mwGzP+02N5AXZuxwUql1rjE45ERPISQ2+eHtUk3n7QH0+7KNRmj7Jk9xC
18
- QIN5lExdO3tAXo/muH6PCkyeNrkRSdfNgssYMVJZqbD8O5IM6v6yEbQHOxuskvvu
19
- uWRxQZTDPwKBgEfqcUqYbGx8z9xibUo7+Oh7mpFCPxiFdt96IJpmajtfzLPUrIS4
20
- SUUJBVgul7LP+Qfj0+0D/od3nhQyQHIKh8mrvJAF3UItPpxx06UDOP3An2fPAoM6
21
- ClJX3AtrhF72hdi6/vkbdQVh80RlQjQ6Ef0opTZZtQFk7iOXMJQHx/gBAoGAahxl
22
- T41Tifirzq1KaWSQ9OsDlZrHcJrrjgPxZA/qBxY5YAk440dGbuqcm+Mg9fMKCb5r
23
- V66lzU5jS4jKDhZcD9x/pakuPOmQo+VWW106Cn0W88Po967VRth/wZdL7sQWYwoV
24
- uzDfcVJsnc3j/tGZIQhW4/9b00fLgm0VEKP2xKsCgYEAkylyhMcTA9nuiBGecBFW
25
- fRbuL6tWcnj3b8lnNOoBFTp6uVSi7VTYcZttGP7zLa9v/LRegawpf1meOarn80Wo
26
- pz1Ot3ZEgx6iArdgdejSHbps58dTpoXp6YBlZR08G5tw2aHfppJYq2Vz3RLrv5Kf
27
- k6MQ4yJFgkb+8+cpvp3NxgA=
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCsQcVgcm14ahlj
3
+ IbSN76WnfUj/ZNCLGUiB0UTyNuxVP5H6E3zK0GsilYIHZcnpw9zqI7BHzXfJr48/
4
+ QKSKaIKLmIGQ+NM6h0/BuAdeUQElj9ittFljbiq+x4L62j8E24w27YPF1OJMIBjr
5
+ NV37T4UovTdg1PzurBJIKa6qZDQAGb5/Gx0U6QweBTKm05h96I2sLc+j3luCPWCS
6
+ 722BWMJpmKzaQy+aS538rejEuf8eTBpab3AmokFN4VkvCTiqYD+l6yCLLuuX0Avl
7
+ FODCSGIP0rRj46ye3kQVKItdbRjAnxd/ALWFIHTV3VYwzPdxfjpLPLVRkmfXe3ME
8
+ JJyjFIMBAgMBAAECggEBAIfNwqJrFEseuq0g4YwVJ3CIoYhYHuHLKRLPvZ+IFYKP
9
+ /7I8suHittQpMr5KTYly1TPytwOkxY/ITRL9D7ve8SzFK0D0KvO1wfdj8ss06caH
10
+ RbiMuvxc2m5WNLk4Xv6haEXVs1HAqDiEBaFKDbIX209m/cXlpRM1raQe2ImVPjnk
11
+ xtdzpLYgRIf4MHtjAI22knlsSgypay6cpUF+PArmgepmsIaw+ioy5ItSWTmvq8QU
12
+ 9KhnEtdn8UOciLiP2rnLgql+qF8RCL9R/NTTZo+kC00AMEliQBFaLHsLHuFuAQwT
13
+ 6X9ueOtEOAewWhhelScbfub5ZlVwvvWhawLqoyGiRZECgYEA1TAlMXhZCrtAIyk/
14
+ Q0dCbrMl24Mr6Yv+PC8Z9N/EC5UrddPwk2W4/L+e8kU6XyyJ4Gw3ZQgJd8gTb1/0
15
+ zpnaFXdK2VhyHxWz3UNzQ4lRuMVB1qK/5/yByqRhysKczzhufhf2XuIcDqiYsWHg
16
+ C4VwpQAQSp9Vbcpd1biXEv1O8AMCgYEAztliCAXlExU3DmcRWbV0RpIjREAm9f6w
17
+ uX8RRuFYZsHVY1pEkv5iACjofeZz9s/EC8QGo4ixcELEou5pFX1HYFyjjw2CwBmS
18
+ a63l5KJyQcChF2tkDaEFsspM0Tri001h8LpChep6cZK4CkHkJ3MTXD4mqa+vpYgr
19
+ RDUwZhdYu6sCgYBO0nE9/Dg3zonlNi/sySEX2ubpZXNL83W5fNTFBCLxAWNDOmxd
20
+ oyOlV5gGDXCKleYYcwp8MV+GyRPefwT9ikbm3uduutPfCGArM/AfDVuIzG4OVLhN
21
+ pr+6U9LQa+ocd8nqlyOBa2piRRXHp991gw3mA8MCRC0K3eKZzZkV7VBNTwKBgCTu
22
+ UP9ntgebMRJEOqfOquzyqJNF9O7Uw07LLhV+pF7sWqH7euTXwD2REDlyTOATJkiH
23
+ fjvyauPFOABzGpX4oSbGQ3mGCwMrTaYmDTat/kJZFynsRZfdWPwb/G0a22aomUT2
24
+ rGvmemgOrwc9znNwq1M70YFYWb7vOfJaoMKJhpEzAoGBAKQCWrZWZRBEeid9QsQ3
25
+ SVedImc8PN5IOC0vyydrkF5qV8LYsPmqMzfkOx0XAx6xrEUyjtSzZRgz/na1EzE6
26
+ juGFIBW30Dx3Ej2A/pKQ7/Yuhdrhl5Nd/Dv5sBgtziBeC+5PYI0XqCV7nIGGOu2/
27
+ 8SjHFk7En45EM/cT8l/VahAv
28
28
  -----END PRIVATE KEY-----
@@ -82,7 +82,7 @@ class CampaignManager(object):
82
82
  self.import_campaign_reports(report_path)
83
83
 
84
84
  def __get_campaigns_report_paths(self, since_datetime):
85
- reports_path = SessionContext.instance().path_manager.get_reports_path()
85
+ reports_path = SessionContext.instance().path_manager.get_reports_path(name="test_runner", with_application_group=False)
86
86
  file_paths = SessionContext.instance().path_manager.find_files(reports_path, subdir_relative_path='report_summary_scenario_all.txt', since_datetime=since_datetime)
87
87
  return [os.path.dirname(p) for p in file_paths]
88
88
 
@@ -185,7 +185,7 @@ class CampaignManager(object):
185
185
  scenario_name = parts[1]
186
186
  status_info = parts[-1]
187
187
 
188
- m = re.match(r"^(.*?)(?: \(.*\))?$", status_info)
188
+ m = re.match(r"^(.*?)(?: \(.*\)| => .*)?$", status_info)
189
189
  status = m.group(1)
190
190
 
191
191
  self.update_or_add_campaign_scenario(camp_id, scenario_name, status=status, status_at_str=status_dt_str)
@@ -48,7 +48,7 @@ class FailureReportBuilder(ReportBuilder):
48
48
  if step_error_message not in self.__failures:
49
49
  self.__failures[step_error_message] = []
50
50
 
51
- category_str = f" ({category_validation})" if category_validation else ""
51
+ category_str = f" => {category_validation}" if category_validation else ""
52
52
  if self.__file_format == 'txt':
53
53
  msg_list = []
54
54
  msg_list.append(f"scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line}) - {status_validation}{category_str}")
@@ -49,7 +49,7 @@ class ShortScenarioFailedReportBuilder(ReportBuilder):
49
49
  self.__open_file_if_needed()
50
50
 
51
51
  msg_list = []
52
- category_str = f" ({category_validation})" if category_validation else ""
52
+ category_str = f" => {category_validation}" if category_validation else ""
53
53
  if step_failed is not None:
54
54
  msg_list.append(f"scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line}) - {status_validation}{category_str}")
55
55
  else:
@@ -0,0 +1,87 @@
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
+ import logging
15
+ from holado_report.report.builders.report_builder import ReportBuilder
16
+ from holado_system.system.filesystem.file import File
17
+
18
+ logger = logging.getLogger(__name__)
19
+
20
+
21
+
22
+ class SummaryScenarioByCategoryReportBuilder(ReportBuilder):
23
+ def __init__(self, filepath, exclude_categories=['Always Success']):
24
+ self.__filepath = filepath
25
+ self.__exclude_categories = exclude_categories
26
+ self.__scenarios_by_category = {}
27
+ self.__categories_order = [
28
+ 'Regression',
29
+ 'Always Failed',
30
+ 'Random',
31
+ 'Regression but Not Relevant',
32
+ 'Always Not Relevant',
33
+ 'Random but Not Relevant',
34
+ 'Fixed',
35
+ 'Always Success',
36
+ 'Unknown'
37
+ ]
38
+
39
+ def build(self):
40
+ '''
41
+ The file is built after each scenario
42
+ '''
43
+ pass
44
+
45
+ def after_scenario(self, scenario, scenario_report=None):
46
+ from holado_report.report.report_manager import ReportManager
47
+ category_validation, status_validation, step_failed, step_number = ReportManager.get_current_scenario_status_information(scenario)
48
+
49
+ if category_validation is not None:
50
+ ind = category_validation.find(' (')
51
+ category = category_validation[:ind] if ind > 0 else category_validation
52
+
53
+ # Manage excluded categories
54
+ if category in self.__exclude_categories:
55
+ return
56
+
57
+ # Add scenario information into category
58
+ category_str = f" => {category_validation}" if category_validation else ""
59
+ if step_failed is not None:
60
+ scenario_txt = f"scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line}) - {status_validation}{category_str}"
61
+ else:
62
+ scenario_txt = f"scenario in {scenario.filename} at l.{scenario.line} - step ? (missing step implementation ?) - {status_validation}{category_str}"
63
+
64
+ if category not in self.__scenarios_by_category:
65
+ self.__scenarios_by_category[category] = []
66
+ self.__scenarios_by_category[category].append(scenario_txt)
67
+
68
+ # Update categories order with unexpected category
69
+ if category not in self.__categories_order:
70
+ self.__categories_order.append(category)
71
+
72
+ self.__update_file()
73
+
74
+ def __update_file(self):
75
+ with File(self.__filepath, mode='wt', auto_flush=False) as fout:
76
+ for category in self.__categories_order:
77
+ if category in self.__scenarios_by_category:
78
+ fout.writelines([
79
+ f"## {category}",
80
+ ""
81
+ ])
82
+ fout.writelines(self.__scenarios_by_category[category])
83
+ fout.writelines([
84
+ ""
85
+ ""
86
+ ])
87
+
@@ -44,7 +44,7 @@ class SummaryScenarioFailedReportBuilder(ReportBuilder):
44
44
 
45
45
  def __file_fail_add_scenario(self, scenario, category_validation, status_validation, step_failed, step_number):
46
46
  self.__open_file_if_needed()
47
- category_str = f" ({category_validation})" if category_validation else ""
47
+ category_str = f" => {category_validation}" if category_validation else ""
48
48
  if step_failed is not None:
49
49
  self.__file_fail.write(f"scenario in {scenario.filename} at l.{scenario.line} - step {step_number} (l.{step_failed.line}) - {status_validation}{category_str}\n")
50
50
  else:
@@ -63,7 +63,7 @@ class SummaryScenarioReportBuilder(ReportBuilder):
63
63
  dt = DateTime.now()
64
64
  dt_str = DateTime.datetime_2_str(dt, FORMAT_DATETIME_HUMAN_SECOND)
65
65
 
66
- category_str = f" ({category_validation})" if category_validation else ""
66
+ category_str = f" => {category_validation}" if category_validation else ""
67
67
  if text:
68
68
  self.__file.write(f"{dt_str} - {scenario.filename} at l.{scenario.line} - {text} - {status_validation}{category_str}\n")
69
69
  else:
@@ -23,6 +23,7 @@ from holado_report.report.reports.base_report import BaseReport
23
23
  from holado_scripting.common.tools.evaluate_parameters import EvaluateParameters
24
24
  from holado_report.report.builders.summary_scenario_report_builder import SummaryScenarioReportBuilder
25
25
  from holado_report.report.builders.failure_report_builder import FailureReportBuilder
26
+ from holado_report.report.builders.summary_scenario_by_category_report_builder import SummaryScenarioByCategoryReportBuilder
26
27
  # from holado_core.scenario.scenario_duration_manager import ScenarioDurationManager
27
28
 
28
29
  logger = logging.getLogger(__name__)
@@ -66,6 +67,9 @@ class ReportManager(BaseReport):
66
67
  fn = self.get_path("report_summary_scenario_failed.txt")
67
68
  self.add_report_builder(SummaryScenarioFailedReportBuilder(fn))
68
69
 
70
+ fn = self.get_path("report_summary_scenario_failed_by_category.txt")
71
+ self.add_report_builder(SummaryScenarioByCategoryReportBuilder(fn))
72
+
69
73
  fn = self.get_path("report_summary_scenario_all.txt")
70
74
  self.add_report_builder(SummaryScenarioReportBuilder(fn))
71
75
 
@@ -232,33 +236,59 @@ class ReportManager(BaseReport):
232
236
  if cls._get_test_server_client().is_available:
233
237
  # Get scenario execution statuses
234
238
  scenario_name = f"{scenario.filename} at l.{scenario.line}"
235
- sce_hist = cls._get_test_server_client().get_scenario_history(scenario_name=scenario_name, size=10)
236
- statuses = [s['status'] for s in sce_hist[0]['statuses']] if sce_hist else []
239
+ sce_hist = cls._get_test_server_client().get_scenario_history(scenario_name=scenario_name, size=29)
240
+ statuses = [s['status'] for s in reversed(sce_hist[0]['statuses'])] if sce_hist else []
237
241
  statuses.append(status)
238
242
 
239
243
  # Get scenario status sequences
240
244
  passed_sequences = []
245
+ is_failed_relevant = None
241
246
  for status in statuses:
242
247
  if status == 'Passed':
243
248
  passed = True
244
249
  elif status.startswith("Failed"):
245
250
  passed = False
251
+ if status == "Failed":
252
+ is_failed_relevant = True
253
+ elif is_failed_relevant is None:
254
+ is_failed_relevant = False
246
255
  else:
247
256
  continue
248
- if len(passed_sequences) == 0 or passed != passed_sequences[-1]:
249
- passed_sequences.append(passed)
257
+
258
+ if len(passed_sequences) == 0 or passed != passed_sequences[-1][0]:
259
+ passed_sequences.append([passed, 1])
260
+ else:
261
+ passed_sequences[-1][1] += 1
250
262
 
251
263
  # Compute category
252
264
  if passed_sequences:
265
+ nb_exec = sum([x[1] for x in passed_sequences])
266
+ last_passed, last_nb_times = passed_sequences[-1]
253
267
  if len(passed_sequences) == 1:
254
- category = 'Success' if passed_sequences[0] else 'Failed'
268
+ if last_passed:
269
+ category = f'Always Success ({last_nb_times})'
270
+ elif is_failed_relevant:
271
+ category = f'Always Failed ({last_nb_times})'
272
+ else:
273
+ category = f'Always Not Relevant ({last_nb_times})'
274
+ elif last_passed and len(passed_sequences) in [2, 3]:
275
+ category = f'Fixed ({last_nb_times} success / {nb_exec})'
255
276
  elif len(passed_sequences) > 2:
256
- category = 'Randomly Failed'
257
- elif passed_sequences[-1]:
258
- category = 'Newly Success'
277
+ nb_fail = sum([x[1] for x in passed_sequences if not x[0]])
278
+ if is_failed_relevant:
279
+ category = f'Random ({nb_fail} fails / {nb_exec})'
280
+ else:
281
+ category = f'Random but Not Relevant ({nb_fail} fails / {nb_exec})'
282
+ elif not last_passed:
283
+ if is_failed_relevant:
284
+ category = f'Regression ({last_nb_times} fails / {nb_exec})'
285
+ else:
286
+ category = f'Regression but Not Relevant ({last_nb_times} fails / {nb_exec})'
259
287
  else:
260
- category = 'Newly Failed'
261
-
288
+ category = f'Unknown (unmanaged sequence: {passed_sequences})'
289
+
290
+ logger.debug(f"Category of scenario '{scenario}': {category} (computed from last statuses: {statuses})")
291
+
262
292
  cls._scenario_status_information_by_uid[scenario_uid] = [category, status, step_failed, step_nb]
263
293
 
264
294
  return cls._scenario_status_information_by_uid[scenario_uid]
holado_test/__init__.py CHANGED
@@ -23,7 +23,7 @@ def register():
23
23
  from holado_test.behave.behave_manager import BehaveManager
24
24
  SessionContext.instance().services.register_service_type("behave_manager", BehaveManager)
25
25
 
26
- from holado_test.test_server.client.rest.test_server_client import TestServerClient
26
+ from holado_test.tools.test_server.client.rest.test_server_client import TestServerClient
27
27
  SessionContext.instance().services.register_service_type("test_server_client", TestServerClient.new_client)
28
28
 
29
29
 
@@ -1,20 +1,14 @@
1
1
  ### Build
2
2
 
3
3
  #FROM python:3.12.9-alpine3.21 AS build
4
- FROM python:3.12.11-alpine3.22 AS build
4
+ #FROM python:3.12.11-alpine3.22 AS build
5
+ FROM python:3.12.12-alpine3.22 AS build
5
6
 
6
7
  # Install to build python requirements
7
8
  RUN apk update \
8
9
  && apk --no-cache --update add build-base \
9
10
  && apk --update add alpine-sdk \
10
- && apk add libffi-dev \
11
- && apk add postgresql-dev gcc python3-dev musl-dev \
12
- && apk add protobuf-dev
13
-
14
- # Add tools
15
- RUN apk --no-cache add bash \
16
- && apk --no-cache add nano \
17
- && apk --no-cache add curl
11
+ && apk add libffi-dev
18
12
 
19
13
  # Create user
20
14
  RUN addgroup appuser \
@@ -39,12 +33,8 @@ RUN python -m venv /code/env \
39
33
  ### Runtime
40
34
 
41
35
  #FROM python:3.12.9-alpine3.21 AS runtime
42
- FROM python:3.12.11-alpine3.22 AS runtime
43
-
44
- # Install for python requirements
45
- #RUN apk update \
46
- # && apk --no-cache add libstdc++ \
47
- # && apk --no-cache add postgresql-dev gcc python3-dev musl-dev
36
+ #FROM python:3.12.11-alpine3.22 AS runtime
37
+ FROM python:3.12.12-alpine3.22 AS runtime
48
38
 
49
39
  # Add tools
50
40
  RUN apk --no-cache add bash \
@@ -59,7 +49,7 @@ USER appuser
59
49
  # Copy /code from build
60
50
  COPY --chown=appuser --from=build /code /code
61
51
 
62
- # Copy docker controller sources
52
+ # Copy test server sources
63
53
  COPY --chown=appuser ./rest /code/test_server
64
54
 
65
55
  # Activate permanently python venv
@@ -21,7 +21,7 @@ class TestServerSessionContext(SessionContext):
21
21
 
22
22
  # Register new modules
23
23
 
24
- from holado_test.test_server.server.core.server_manager import TestServerManager
24
+ from holado_test.tools.test_server.server.core.server_manager import TestServerManager
25
25
  self.services.register_service_type("server_manager", TestServerManager,
26
26
  lambda m: m.initialize(self.resource_manager) )
27
27