holado 0.11.3__py3-none-any.whl → 0.11.4__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.

@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.11.3
3
+ Version: 0.11.4
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
@@ -14,14 +14,14 @@ holado/common/tools/gc_manager.py,sha256=TjQg7MisGRhxuiQ22hB3IuqNhnWCVEWpU253-rO
14
14
  holado_ais/__init__.py,sha256=Mudcgu_7p1hBDBs6LpSz757H4haB0yLHgT70sznG82c,1807
15
15
  holado_ais/ais/MaritimeIdentificationDigits.csv,sha256=r-uHt4wOvxlbA26af9e-N3BKbuiMf6ia3PN0ZGfYk2A,8547
16
16
  holado_ais/ais/ais_manager.py,sha256=QvN94JoUBbSXT08HABl2FNsAVOM-YCmQO5tN9COg6Rc,6496
17
- holado_ais/ais/ais_messages.py,sha256=J-GZJAY2RZpSS3OwzQJc6B_HsmdtRXLAcbfaP9APbUA,17414
17
+ holado_ais/ais/ais_messages.py,sha256=0jrhIFH6htUZkUinqKcPuUp2JMtnp0qKwYFAmUk-6w0,17414
18
18
  holado_ais/ais/ais_payload.py,sha256=mdOa_4JIbkFLK4_KUmQF5jUt1nLxvZhmIcqK8i-YY6w,1791
19
19
  holado_ais/ais/enums.py,sha256=bsqfJVg65fWiJwL_VlSKwKgTY0pLoDcI4T06aEOcQnw,1108
20
20
  holado_ais/ais/patch_pyais.py,sha256=M4Fa8GZubXx4auRsk5I1yQPC40IR1p-1iVZIc4PXFfk,49850
21
21
  holado_ais/tests/behave/steps/__init__.py,sha256=cM4YsjHIq0Tb9mTTJjvDojzhLwov6mc2RyjZz8XLVA8,1321
22
22
  holado_ais/tests/behave/steps/ais/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
23
23
  holado_ais/tests/behave/steps/ais/ais_manager_steps.py,sha256=nRtJUEyAzAqgm0UWwRUFAyOzhDxzRZKTGsEYU1DwE-Q,2170
24
- holado_ais/tests/behave/steps/ais/ais_messages_steps.py,sha256=XMBpCqtyRBQJ2ODRxRN-tVcWr7O72c2o0Yy-0Sd5phE,11741
24
+ holado_ais/tests/behave/steps/ais/ais_messages_steps.py,sha256=SJZlUyAvGOiEPjTa5qxrj_9y8ERcDJkmHcofzonvJDA,11741
25
25
  holado_binary/__init__.py,sha256=Gl285tg-QaPE-3etWwZql9sH26G7EnVoQn97B0NMvOI,1248
26
26
  holado_binary/ipc/binary.py,sha256=QYwK7jK4dzXRKprHMxnTxFljMy1LZDSXjMJ406yEOHk,5520
27
27
  holado_binary/ipc/bit_series.py,sha256=PNuW_OXGV8yeRrMHxMPImR75np52KpcDOfXXdDKObWw,15508
@@ -98,7 +98,7 @@ holado_core/common/inspectors/tools/inspect_builder.py,sha256=v7azgwciXHtO-o7gcg
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
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
101
+ holado_core/common/resource/persisted_method_to_call_manager.py,sha256=xlP1xBPN0TdYrh1CBNyOU6EnzXp5KyXSJVTQC9ynlLQ,14188
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
@@ -336,8 +336,8 @@ holado_python/standard_library/ssl/resources/certificates/NOTES.txt,sha256=GlPGG
336
336
  holado_python/standard_library/ssl/resources/certificates/localhost.crt,sha256=iLmZpDuOQVawUlbZkb72g2-uv1c4SAmRJOrm4Th5anY,1123
337
337
  holado_python/standard_library/ssl/resources/certificates/localhost.key,sha256=lP2NCvB9mr2E5sk8whA8FyQRcyU6H7sdWkJeKz80Hyc,1704
338
338
  holado_python/standard_library/ssl/resources/certificates/rootCACert.pem,sha256=ECQDZ8OHRfqpZHCu6JRLMUjiONaPIhKZQF0-kidVrWQ,1424
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
339
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=wfv4sQssCQ8BGpJQGCrhSCB2jW1Te9rzWaqpnBM05Yc,1237
340
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=yrGFLYQ1i12IUjwX8tp6Su1rMYZINA6dzUa76elo5h0,1704
341
341
  holado_python/tests/behave/steps/__init__.py,sha256=TWEk-kBTTDHi9I4nuu48nufmNMdZ9FHAhPZv0A_cWzc,1661
342
342
  holado_python/tests/behave/steps/convert_steps.py,sha256=bZqRvJVp_u6fSPpdu4ne9NwVyZmui7R-AVdO2-H-I1A,2728
343
343
  holado_python/tests/behave/steps/iterable_steps.py,sha256=f4vGIWBH8Qnjq69Q-ZBluYyctQ8SKauazTc41dsktZA,4041
@@ -367,7 +367,7 @@ holado_redis/tools/redis/redis_manager.py,sha256=tMO0XrCZTCfGdByFfgWXk9R-I_TUPLO
367
367
  holado_report/__init__.py,sha256=3wtu5g9d4d-AICmLZclPQrw2MS-FJL9CyiVO1n2MYWA,1868
368
368
  holado_report/campaign/campaign_manager.py,sha256=fZtxvtFc7_BZm3KGZNMYh0p8SJ-znEX89MlEY6Gp3aE,8748
369
369
  holado_report/report/execution_historic.py,sha256=M4lYoZwyrSivRa17Q39GOAgROnr0oBvIZX5BNcO5Mnc,6951
370
- holado_report/report/report_manager.py,sha256=KiKMiZbjYa7-0yH8zs8KQdqz5VyZwwSAHizDYRwGGp8,16624
370
+ holado_report/report/report_manager.py,sha256=jOCWa4OxXgYSGimy0hnueKW7PqPOnM80at5NNQgJa4I,16878
371
371
  holado_report/report/analyze/execution_historic_manager.py,sha256=FMKKPguXOvWNxjF7Q8DodHHsH-2ci9pFzrTV41B8nL4,4556
372
372
  holado_report/report/analyze/scenario_duration_manager.py,sha256=Preaxu83qFKGfbvQnzolhSXztZ4i5Zo_Bnxx8tNA80Q,12468
373
373
  holado_report/report/builders/detailed_scenario_failed_report_builder.py,sha256=hOXxHYniL9mpN-U7YTW5xVEaE4Z-GlPq8ltT_iNJan4,7892
@@ -375,6 +375,7 @@ holado_report/report/builders/failure_report_builder.py,sha256=WLLlLgLbEyYJNENEo
375
375
  holado_report/report/builders/json_execution_historic_report_builder.py,sha256=M7OGUvkqNRTG5Td7fO96tv1SJEzRzjm0pl1W02v052E,5929
376
376
  holado_report/report/builders/report_builder.py,sha256=5qlhxbdTkSN7p9q6EADkpHQGPDVEHquIhgA3mK2Ck2k,2261
377
377
  holado_report/report/builders/short_scenario_failed_report_builder.py,sha256=50pXhWX8xwIDZWSFaBejzMUlS9a0GRXqA82d84V3udk,4012
378
+ holado_report/report/builders/summary_by_category_report_builder.py,sha256=5i_zWxIYabiFcMs0De3JDa4YptfDIbFYkVkvaXDRX5M,4496
378
379
  holado_report/report/builders/summary_report_builder.py,sha256=v4LG3W5x_y4FH0kh_5MRaG8pyPOV2GfhlBImsW4BJrs,3954
379
380
  holado_report/report/builders/summary_scenario_by_category_report_builder.py,sha256=1rzuF4KFPzO5jFuvC_OKvsnNMRrzW3zG5nU5GUSux1U,4274
380
381
  holado_report/report/builders/summary_scenario_failed_report_builder.py,sha256=uqf86SUAiIQLRQOV0A434oR8Bj4e_DtxqRsy-pe84p4,3063
@@ -480,7 +481,7 @@ holado_test/tests/behave/steps/__init__.py,sha256=rdqrp-UN7vRplIqORx4sXyKwMUkptR
480
481
  holado_test/tests/behave/steps/scenario/exception_steps.py,sha256=ZIE92Dz7a6O_c0jAP_0dj6Hc0tnW6YRgNKd4_aBpeR0,4054
481
482
  holado_test/tests/behave/steps/scenario/scenario_steps.py,sha256=RfM5Lh4sduKeYSD1NzUxtQ8705O7nausoz_gnpAJQB0,4616
482
483
  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/client/rest/test_server_client.py,sha256=Zoq5zWqWHHnysxMIki8zaQHaR8TFMM6U1xSbjeO7luY,6085
484
485
  holado_test/tools/test_server/server/Dockerfile,sha256=CDhwKszWuA_aSHrwruvN5oAU6g67MXbSO-coHmDNL9c,1485
485
486
  holado_test/tools/test_server/server/requirements.txt,sha256=c2iNG9IZZogAEC9oSWRTWEF9-OHW0vRtijPNK4P6_xY,45
486
487
  holado_test/tools/test_server/server/run_test_server_in_docker.sh,sha256=ISNvFT1dBM6aiw5Iv6yBhInn7L8ZYyz_7EDK_X1eCvk,3121
@@ -489,9 +490,9 @@ holado_test/tools/test_server/server/core/server_manager.py,sha256=PW5ShUdnbdq6E
489
490
  holado_test/tools/test_server/server/rest/README,sha256=J_LIXWFxtxc8okQGZ8Kk0dMSRra9oUzbMP_ylCe4pTo,161
490
491
  holado_test/tools/test_server/server/rest/initialize_holado.py,sha256=UxNphXyjs-xraorzMWjDe6-QYw_Q3mtykyY-ENYZB1o,3464
491
492
  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/openapi.yaml,sha256=ULzbZMhj-Iw6MGwZ7_7zxkOGiRjpFnqaT6OotgL9sjY,1248
493
494
  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/__init__.py,sha256=Y_kSr0l44kBpmWYsRRH93MXSyKM1veegaytzYFXkBA0,1407
495
496
  holado_test/tools/test_server/server/rest/api/campaign/__init__.py,sha256=btZb20N5k7_WbowNAC1C7yYDUkwPnUU5QUmh-jO0bhg,1586
496
497
  holado_test/tools/test_server/server/rest/api/campaign/scenario.py,sha256=4eTIScEGL0GKD7g6aIPHJVvaVbwz487zlEg9mRQv84Y,1737
497
498
  holado_tools/__init__.py,sha256=JzUm55NIkeBynu1RieZ3QfZGw8v4NfFDzz6HS-bN7r8,1798
@@ -500,7 +501,7 @@ holado_tools/scripts/execute_persisted_post_processes/execute_persisted_post_pro
500
501
  holado_tools/scripts/execute_persisted_post_processes/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
501
502
  holado_tools/tests/behave/steps/__init__.py,sha256=SPh47LYMokcxbFhDa_JnlkIlyQav2D-hddf3J1ZlEbQ,1296
502
503
  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/client/rest/host_controller_client.py,sha256=OCMXvFcJ1Bz9W3AeG2Rdho3pTrWT48J2sJNQdICE4d0,7218
504
505
  holado_tools/tools/host_controller/server/Dockerfile,sha256=wTy-ii7MuJULRiw5_2sUWj8ssw6WUJIhAcLY2KCL0lw,1508
505
506
  holado_tools/tools/host_controller/server/requirements.txt,sha256=0RvLV3t2DyBR2FsbAd1WVEcbsVc6FVUN2horQJU4POo,57
506
507
  holado_tools/tools/host_controller/server/run_host_controller_in_docker.sh,sha256=KEBTxcxFeViVpixLii1YXBbyZhvJKfmH604jGqBFxHc,3729
@@ -510,9 +511,9 @@ holado_tools/tools/host_controller/server/grpc/proto/compile_proto.py,sha256=Njc
510
511
  holado_tools/tools/host_controller/server/grpc/proto/definitions/docker_controler.proto,sha256=n9bsXaQfnZX-R5HvfquCVt3QjpFtDJSH6p8gnTjm06k,1650
511
512
  holado_tools/tools/host_controller/server/rest/README,sha256=10hiIdQw69iXubii8ZYZUrYrs2Q2k5QiTKpBBrBK1bc,165
512
513
  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/openapi.yaml,sha256=6MCJFmJ-fPeNOhhgELdVHCnsVej2YoyZ3ECwEMeUIsY,7121
514
515
  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/__init__.py,sha256=Y_kSr0l44kBpmWYsRRH93MXSyKM1veegaytzYFXkBA0,1407
516
517
  holado_tools/tools/host_controller/server/rest/api/config.py,sha256=Ln__1bsigSzJZ-Iy3MQgmiZMnpBxC3TCQE0O72g5cAs,2459
517
518
  holado_tools/tools/host_controller/server/rest/api/os.py,sha256=EA3DCxGBCnMd2XJyn9kb6IWmtbaPIyv5UfZypCNzkhY,2123
518
519
  holado_tools/tools/host_controller/server/rest/api/docker/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
@@ -523,9 +524,9 @@ holado_tools/tools/host_viewer/server/requirements.txt,sha256=0RvLV3t2DyBR2FsbAd
523
524
  holado_tools/tools/host_viewer/server/run_host_viewer_in_docker.sh,sha256=XeJfyjPVj34-rK_9K_6C9iD0EiAZ2WVkoD1L5rvZzw4,3606
524
525
  holado_tools/tools/host_viewer/server/rest/README,sha256=1FMg-U_D9pUMBVmZJsirOXHFLTciDL5jB-Yqzp9U6uM,163
525
526
  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/openapi.yaml,sha256=tU9N6eGW7ESxtbODyUeYDdKYUxQSNoTjHiUrvgqr5JM,3007
527
528
  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/__init__.py,sha256=Y_kSr0l44kBpmWYsRRH93MXSyKM1veegaytzYFXkBA0,1407
529
530
  holado_tools/tools/host_viewer/server/rest/api/docker/__init__.py,sha256=FlLRagAiw1LDxnF0CmW7Y6bVXuj8x6volT8-DuHTTVY,2427
530
531
  holado_value/__init__.py,sha256=60VyLyWux76dFwn03uH4Fz3R6itf6fqKu0pQUdvwblU,1561
531
532
  holado_value/common/tables/value_table.py,sha256=fJgb-HWdlMwHOAx5CS38sPiVrjGelEiQBbG9HuHqe-A,1726
@@ -559,7 +560,7 @@ test_holado/Dockerfile_test_holado,sha256=zO6OUFnC1X9ZG7fPWWWfcWgZwnxif4WDE4ZDEm
559
560
  test_holado/__init__.py,sha256=TIHAHrF05rvz6-VDKuDBSBjasD6PxTxXvcXjMEC3D6E,54
560
561
  test_holado/__main__.py,sha256=PVdCX8V_RGRzbQQKVxf7eyt8a10XfUJ1pcaajGgIlus,1509
561
562
  test_holado/build_docker_image_to_test_holado_in_docker.sh,sha256=B3hbi0yKnEC-t9S18o6ZR27AU1bqiuptwOqm6H7tv8s,142
562
- test_holado/environment.py,sha256=SLGJ2v1BoyP_s_KucvuQJLnWPzPJAD6cS4C8eBNaJW8,2381
563
+ test_holado/environment.py,sha256=2K_VLB92bDfHh6e1EHVBp30Y8cgeVIjUI8C2ezPWXqA,2661
563
564
  test_holado/initialize_holado.py,sha256=IPYH-GYNiHV5-7ZCCH6CFmPpmACsPrTV74TYz3MRjpA,3102
564
565
  test_holado/logging.conf,sha256=vsCMsRnvSMHl6nBmRqG7kBYC3qshAcxiAg5iUUw1Udw,1318
565
566
  test_holado/test_holado_session_context.py,sha256=qOB_i2k8mYjkR3-q2uv0B04xFc1K3p-K20ttYwe1Z18,1364
@@ -679,7 +680,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
679
680
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
680
681
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
681
682
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
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,,
683
+ holado-0.11.4.dist-info/METADATA,sha256=w4vz367qdwA3K6pb1rwff-SLW8-4ivNAkAr_kuff5mc,7660
684
+ holado-0.11.4.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
685
+ holado-0.11.4.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
686
+ holado-0.11.4.dist-info/RECORD,,
@@ -93,7 +93,7 @@ class AISMessages(object):
93
93
  msg_dict = msg.asdict(enum_as_int=enum_as_int, ignore_spare=ignore_spare)
94
94
 
95
95
  # Extract tagblock of first sentence if present, and add tagblock information in result
96
- tag_block_str, _ = self.split_sentence_to_tab_block_and_message(sentences[0])
96
+ tag_block_str, _ = self.split_sentence_to_tag_block_and_message(sentences[0])
97
97
  if tag_block_str is None:
98
98
  tag_block_dict = None
99
99
  else:
@@ -283,7 +283,7 @@ class AISMessages(object):
283
283
 
284
284
  return res
285
285
 
286
- def split_sentence_to_tab_block_and_message(self, ais_sentence):
286
+ def split_sentence_to_tag_block_and_message(self, ais_sentence):
287
287
  if isinstance(ais_sentence, str):
288
288
  split_char = '\\'
289
289
  elif isinstance(ais_sentence, bytes):
@@ -208,7 +208,7 @@ if AISMessages.is_available():
208
208
  msg_var_name = StepTools.evaluate_variable_name(msg_var_name)
209
209
  ais_sentence = StepTools.evaluate_scenario_parameter(ais_sentence)
210
210
 
211
- tb, msg = __get_ais_messages().split_sentence_to_tab_block_and_message(ais_sentence)
211
+ tb, msg = __get_ais_messages().split_sentence_to_tag_block_and_message(ais_sentence)
212
212
 
213
213
  __get_variable_manager().register_variable(tb_var_name, tb)
214
214
  __get_variable_manager().register_variable(msg_var_name, msg)
@@ -99,7 +99,7 @@ class PersistedMethodToCallManager(PersistedDataManager):
99
99
  @param delete_on_fail: If True, delete method after its fail
100
100
  @param delete_on_success_after_fail: If True, delete method after its success even if it has previously failed
101
101
  """
102
- if self.__scope_name is not any_value:
102
+ if self.__scope_name is any_value:
103
103
  raise TechnicalException("To add a method to call, the scope name must be specified")
104
104
 
105
105
  # Define persisted data that can define if method is already persisted
@@ -2,20 +2,20 @@
2
2
  MIIDZTCCAk2gAwIBAgIBKjANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMCVVMx
3
3
  CzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ8wDQYDVQQKDAZ0
4
4
  Y3BiaW4xDDAKBgNVBAsMA29wczETMBEGA1UEAwwKdGNwYmluLmNvbTEjMCEGCSqG
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
5
+ SIb3DQEJARYUaGFycnliYWdkaUBnbWFpbC5jb20wHhcNMjUxMDI3MDkyNzQ4WhcN
6
+ MjUxMDI4MDkyNzQ4WjAcMRowGAYDVQQDDBF0Y3BiaW4uY29tLWNsaWVudDCCASIw
7
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMDSXOJuPmc0k1e7OMyWKhIxcC44
8
+ wmG71lF8E/F11DW+yw3iiJ95ZvkiLuVEGnkMFS+iJJ0LLvCsNq71yVggbeEhRCVe
9
+ vY0RmfZMY3BA27ru3d4QK5Xuffb8eg8x3KRSaeD47ZFATzL5j4EVhsTLe5L2hOIE
10
+ ZAuc1C+mHbGdr23o2r9CqGLq3gl7JNRSjfOzzS1pvgoj/C6vsMViJutx0MYCd2Z6
11
+ 4CfPfRO0L1JXzU9GPq1HIDFUDEnopdMALA6KSRSOt0qLChKgKFqRS954e2PZYxwO
12
+ XqvHwD1vGwMl6t1gprSpsAPuaEv/1l8iuA7zHL1jiIergwsLDad1flFSulkCAwEA
13
+ AaNCMEAwHQYDVR0OBBYEFFaEMYPq4DeN+4OAfat4KVqgrWVLMB8GA1UdIwQYMBaA
14
+ FOLuMowBSAZfV5v82LmlaIIOvU/DMA0GCSqGSIb3DQEBCwUAA4IBAQAi3cHZCPtV
15
+ LgOXO4+5Z26Jx4wnqKmsWfEqdXKwcpTm5NKa+pyFcswNRAzk6HL6x2Bd1VO2tT71
16
+ PnDz6/YJWdJqzkCCCInPs5dvptE3ByFAG8nXGi+TE7FzQW8Pa5/d6Vcglxj6269B
17
+ rWdwfDZoFnSJAkRkTbeY6It1kqJB54+DIqVZNtVCQ7axh0Trpzk4B7QjHMvKJlwz
18
+ FPycVbH51IXYts9uHEtT5gdpSXA4hKuEc/p5kRkzomS/8vAolyh6lqkAMGly1tza
19
+ wTpCnzC6pZOJXinN75KplX5f+Wk4aMlchpocVqTPlTjHAzy/DceCGPieGgpx1EhG
20
+ TQm3tdNDnLkY
21
21
  -----END CERTIFICATE-----
@@ -1,28 +1,28 @@
1
1
  -----BEGIN PRIVATE KEY-----
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
2
+ MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA0lzibj5nNJNX
3
+ uzjMlioSMXAuOMJhu9ZRfBPxddQ1vssN4oifeWb5Ii7lRBp5DBUvoiSdCy7wrDau
4
+ 9clYIG3hIUQlXr2NEZn2TGNwQNu67t3eECuV7n32/HoPMdykUmng+O2RQE8y+Y+B
5
+ FYbEy3uS9oTiBGQLnNQvph2xna9t6Nq/Qqhi6t4JeyTUUo3zs80tab4KI/wur7DF
6
+ YibrcdDGAndmeuAnz30TtC9SV81PRj6tRyAxVAxJ6KXTACwOikkUjrdKiwoSoCha
7
+ kUveeHtj2WMcDl6rx8A9bxsDJerdYKa0qbAD7mhL/9ZfIrgO8xy9Y4iHq4MLCw2n
8
+ dX5RUrpZAgMBAAECggEBAKPrse8EzaQrO/9fOEAkgIuK39VLh2RSrTYEh2fERa2T
9
+ D0g0hvUb3gB5oOhi5yZ0sSYXb4zaTwNnQ+2lIY/7sa2r/CTQz8+3YO3Trs1lNedK
10
+ 3e7ETGlfoFJx/MoiF3LSZRROSpgq1al+IxMX28Q9QEaFsB38oZiFsJT5YVD3voVt
11
+ 7jYr/yE6A7Nuq4A8EmpXTqNqdIGlBQ5Iq865KfUmqEM7vAJDzo/NPCf3CeCe5yzU
12
+ 31sL/odZpj0MJWsFe6P9k932cd47VdXZ84XCcXQHEkKZ6AVwv+EBQfSMfBJUp4pw
13
+ 4Cd112jzJR0Gdew6BTwytPHM55Pm7sx3Kx2/+1lr7CECgYEA8fqe1b6HXCC7RUDD
14
+ J2XDkPZbLdyjqWW0mGVps7xX3371BVndXjWTmrKgtLS64XclW9coLGhJMlNel7pO
15
+ dadC24naHF3qNXsTITgz9VJWG5MSNrzDHg4ZzYxllFxm1j7DiorDa4umzHu0w0d1
16
+ 7WUZFPP9fm3jlB5dv80HBSWIpWUCgYEAy/6SSGBJfv+hYJjPOtrneQxUGkpnw9mr
17
+ tqA4l2+vMlLJs6xvjgqytV8MgTAc750ASf3/lug497m/PlGxvwj6GwwT8zUhUmBb
18
+ pRJBS2EwHvJBcyeu2GVJJAqnbmoEVdywV21VjUSJ5PH5zg48wJAaJspttOOmmUTt
19
+ Ou+6eh7Ou+UCgYBbm8EENKR0KWQcfL8lLC6Us9+jBjPjjsCHLWWOCRDPaPYD95iJ
20
+ 8QiXeWbD4uQZNY0sLtFjtnt3lP5rvLm1awQxrwem05s2cgi0+90X0/sLZ2tu05me
21
+ yEHWgn92YmEAXTSUP6JqFa2pHnA5udUYcbzEJPbkJWASFEjzswAkX6hSzQKBgFpV
22
+ 67W9Xg6taWt7gBmSIvtJ6FyUIotqc042eZkmTjE81DGK5QPD3QvQgZscEVRS9HPP
23
+ 1UWgpMmfKf+Q8eOlOAyONq93EcCHB058XQniigrKQQ2bvyP5BoC9bxPIQw864aR1
24
+ uHMMrPwD5BnJ2EF2Dv6qmhaG0ZoCGgQFcVDvH6G5AoGAfrF8W04Is7Q0eSF6D296
25
+ BZgICLCNJUykBGp2jXecOHelpKBsSH95mPrwcUHxyxZJhp1iMdua5IAyyS0LkvDX
26
+ ElsFK7kaMbHJPvBhjhWXvB331qJAVjhnYuyiDENEuDJy40+dj+MXN0RFg7fGkz4a
27
+ m0HQFSt8G76mGDV6eQ+xdrc=
28
28
  -----END PRIVATE KEY-----
@@ -0,0 +1,86 @@
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 SummaryByCategoryReportBuilder(ReportBuilder):
23
+ def __init__(self, filepath):
24
+ self.__filepath = filepath
25
+ self.__counter_by_category = {}
26
+ self.__categories_order = [
27
+ 'Regression',
28
+ 'Always Failed',
29
+ 'Random',
30
+ 'Regression but Not Relevant',
31
+ 'Always Not Relevant',
32
+ 'Random but Not Relevant',
33
+ 'Always Success',
34
+ 'Fixed',
35
+ 'Unknown'
36
+ ]
37
+
38
+ def build(self):
39
+ '''
40
+ The file is built after each scenario
41
+ '''
42
+ pass
43
+
44
+ def after_scenario(self, scenario, scenario_report=None):
45
+ from holado_report.report.report_manager import ReportManager
46
+ category_validation, _, _, _ = ReportManager.get_current_scenario_status_information(scenario)
47
+
48
+ if category_validation is not None:
49
+ ind = category_validation.find(' (')
50
+ category = category_validation[:ind] if ind > 0 else category_validation
51
+
52
+ if category not in self.__counter_by_category:
53
+ self.__counter_by_category[category] = 0
54
+ self.__counter_by_category[category] += 1
55
+
56
+ # Update categories order with unexpected category
57
+ if category not in self.__categories_order:
58
+ self.__categories_order.append(category)
59
+
60
+ self.__update_file()
61
+
62
+ def __update_file(self):
63
+ list_by_group = {
64
+ 'Success': [(k,self.__counter_by_category[k]) for k in self.__categories_order
65
+ if k in self.__counter_by_category and k in ['Always Success', 'Fixed']],
66
+ 'Failed': [(k,self.__counter_by_category[k]) for k in self.__categories_order
67
+ if k in self.__counter_by_category and k in ['Regression', 'Always Failed', 'Random']],
68
+ 'Not Relevant': [(k,self.__counter_by_category[k]) for k in self.__categories_order
69
+ if k in self.__counter_by_category and k in ['Regression but Not Relevant', 'Always Not Relevant', 'Random but Not Relevant']]
70
+ }
71
+ others_list = [(k,v) for k,v in self.__counter_by_category.items()
72
+ if k not in ['Always Success', 'Fixed', 'Regression', 'Always Failed', 'Random', 'Regression but Not Relevant', 'Always Not Relevant', 'Random but Not Relevant']]
73
+
74
+ lines = []
75
+ for group_name, group_list in list_by_group.items():
76
+ if group_list:
77
+ lines.append(f"{group_name:>12s}: {sum([x[1] for x in group_list]):5d} ({' ; '.join([f'{x[0]}: {x[1]}' for x in group_list])})")
78
+ else:
79
+ lines.append(f"{group_name:>12s}: {0:5d}")
80
+ if others_list:
81
+ lines.append(f"{'Others':>12s}: {sum([x[1] for x in others_list]):5d} ({' ; '.join([f'{x[0]}: {x[1]}' for x in others_list])})")
82
+
83
+ with File(self.__filepath, mode='wt', auto_flush=False) as fout:
84
+ fout.writelines(lines)
85
+
86
+
@@ -24,6 +24,7 @@ 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
26
  from holado_report.report.builders.summary_scenario_by_category_report_builder import SummaryScenarioByCategoryReportBuilder
27
+ from holado_report.report.builders.summary_by_category_report_builder import SummaryByCategoryReportBuilder
27
28
  # from holado_core.scenario.scenario_duration_manager import ScenarioDurationManager
28
29
 
29
30
  logger = logging.getLogger(__name__)
@@ -86,6 +87,9 @@ class ReportManager(BaseReport):
86
87
  fn = self.get_path("report_summary.txt")
87
88
  self.add_report_builder(SummaryReportBuilder(fn))
88
89
 
90
+ fn = self.get_path("report_summary_by_category.txt")
91
+ self.add_report_builder(SummaryByCategoryReportBuilder(fn))
92
+
89
93
  @property
90
94
  def __feature_reports(self):
91
95
  return self.children_reports("feature")
@@ -21,6 +21,7 @@ from holado.common.handlers.undefined import undefined_argument, undefined_value
21
21
  import os
22
22
  from holado_core.common.tools.converters.converter import Converter
23
23
  from holado_core.common.exceptions.technical_exception import TechnicalException
24
+ from holado_core.common.handlers.wait import WaitFuncResult
24
25
 
25
26
  logger = logging.getLogger(__name__)
26
27
 
@@ -72,6 +73,8 @@ class TestServerClient(RestClient):
72
73
  logger.info(f"Test server is {'not ' if not self.__is_available else ''}available")
73
74
  return self.__is_available
74
75
 
76
+ # Monitoring
77
+
75
78
  def ping(self):
76
79
  url_parsed = urllib.parse.urlparse(self.url)
77
80
  netloc_pattern = r"(?P<host>.*?)(?::(?P<port>\d+))?$"
@@ -98,6 +101,23 @@ class TestServerClient(RestClient):
98
101
  logger.debug(f"Ping of test server succeeded for ({host}, {port})")
99
102
  return True
100
103
 
104
+ def is_healthy(self):
105
+ try:
106
+ response = self.get(f"health")
107
+ return response.status_code == 200
108
+ except:
109
+ return False
110
+
111
+ def wait_is_healthy(self, timeout_sec=300, do_raise_on_timeout=True):
112
+ logger.info("Waiting for test-server to be healthy...")
113
+ wait_context = WaitFuncResult(f"wait test-server is healthy", self.is_healthy)
114
+ wait_context.with_timeout(timeout_sec) \
115
+ .with_raise_on_timeout(do_raise_on_timeout) \
116
+ .with_process_in_thread(False)
117
+ wait_context.redo_until(True)
118
+ wait_context.execute()
119
+ logger.info("test-server is healthy")
120
+
101
121
 
102
122
  # Manage campaigns actions
103
123
 
@@ -11,13 +11,14 @@
11
11
  #################################################
12
12
 
13
13
  from flask.views import MethodView
14
- from holado.common.context.session_context import SessionContext
15
- import logging
14
+ # import logging
16
15
 
17
- logger = logging.getLogger(__name__)
16
+ # logger = logging.getLogger(__name__)
18
17
 
19
18
 
19
+ class HealthView(MethodView):
20
+
21
+ def get(self):
22
+ return {'status': 'healthy'}
20
23
 
21
- def _get_session_context():
22
- return SessionContext.instance()
23
24
 
@@ -5,6 +5,17 @@ info:
5
5
  description: |
6
6
  API exposed by Test Server.
7
7
  paths:
8
+ /health:
9
+ get:
10
+ description: "Healthcheck"
11
+ responses:
12
+ 200:
13
+ description: "Healthy"
14
+ content:
15
+ application/json:
16
+ schema:
17
+ type: "string"
18
+
8
19
  /campaign/update:
9
20
  put:
10
21
  description: "Update stored campaigns"
@@ -18,6 +18,7 @@ from holado.common.handlers.undefined import default_value, undefined_argument,\
18
18
  import os
19
19
  from holado_core.common.tools.converters.converter import Converter
20
20
  from holado_rest.api.rest.rest_manager import RestManager
21
+ from holado_core.common.handlers.wait import WaitFuncResult
21
22
 
22
23
  logger = logging.getLogger(__name__)
23
24
 
@@ -63,6 +64,27 @@ class HostControllerClient(RestClient):
63
64
  def __init__(self, name, url, headers=None):
64
65
  super().__init__(name, url, headers)
65
66
 
67
+
68
+ # Monitoring
69
+
70
+ def is_healthy(self):
71
+ try:
72
+ response = self.get(f"health")
73
+ return response.status_code == 200
74
+ except:
75
+ return False
76
+
77
+ def wait_is_healthy(self, timeout_sec=300, do_raise_on_timeout=True):
78
+ logger.info("Waiting for host-controller to be healthy...")
79
+ wait_context = WaitFuncResult(f"wait test-server is healthy", self.is_healthy)
80
+ wait_context.with_timeout(timeout_sec) \
81
+ .with_raise_on_timeout(do_raise_on_timeout) \
82
+ .with_process_in_thread(False)
83
+ wait_context.redo_until(True)
84
+ wait_context.execute()
85
+ logger.info("host-controller is healthy")
86
+
87
+
66
88
  # Common features
67
89
 
68
90
  def get_environment_variable_value(self, var_name):
@@ -10,15 +10,15 @@
10
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
11
  #################################################
12
12
 
13
- # from flask.views import MethodView
14
- # from holado.common.context.session_context import SessionContext
13
+ from flask.views import MethodView
15
14
  # import logging
16
- #
15
+
17
16
  # logger = logging.getLogger(__name__)
18
- #
19
- #
20
- #
21
- # def _get_session_context():
22
- # return SessionContext.instance()
17
+
18
+
19
+ class HealthView(MethodView):
20
+
21
+ def get(self):
22
+ return {'status': 'healthy'}
23
23
 
24
24
 
@@ -9,6 +9,17 @@ info:
9
9
  For example, it is usefull for a testing solution needing to restart a microservice of the SUT (System Under Test),
10
10
  but the testing solution docker image has not the privileges to do it.
11
11
  paths:
12
+ /health:
13
+ get:
14
+ description: "Healthcheck"
15
+ responses:
16
+ 200:
17
+ description: "Healthy"
18
+ content:
19
+ application/json:
20
+ schema:
21
+ type: "string"
22
+
12
23
  /os/env:
13
24
  get:
14
25
  description: "Get environment variable values"
@@ -10,13 +10,15 @@
10
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
11
  #################################################
12
12
 
13
- # from flask.views import MethodView
14
- # from holado.common.context.session_context import SessionContext
13
+ from flask.views import MethodView
15
14
  # import logging
16
- #
15
+
17
16
  # logger = logging.getLogger(__name__)
18
- #
19
- #
20
- # def _get_session_context():
21
- # return SessionContext.instance()
17
+
18
+
19
+ class HealthView(MethodView):
20
+
21
+ def get(self):
22
+ return {'status': 'healthy'}
23
+
22
24
 
@@ -8,6 +8,17 @@ info:
8
8
  whereas all other microservices have user privileges.
9
9
  For example, it is usefull to monitor containers statuses from any terminal on the network.
10
10
  paths:
11
+ /health:
12
+ get:
13
+ description: "Healthcheck"
14
+ responses:
15
+ 200:
16
+ description: "Healthy"
17
+ content:
18
+ application/json:
19
+ schema:
20
+ type: "string"
21
+
11
22
  /os/env:
12
23
  get:
13
24
  description: "Get environment variable values"
@@ -44,3 +44,10 @@ from holado_test.behave.behave_environment import * # @UnusedWildImport
44
44
 
45
45
  # Define project specific environment methods
46
46
 
47
+ # Wait test daemons are healthy
48
+ from holado_core.common.tools.converters.converter import Converter
49
+ do_wait_test_server = Converter.to_boolean(os.getenv("HOLADO_WAIT_TEST_SERVER", True))
50
+ if do_wait_test_server:
51
+ SessionContext.instance().test_server_client.wait_is_healthy()
52
+
53
+