holado 0.8.0__py3-none-any.whl → 0.8.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of holado might be problematic. Click here for more details.

@@ -39,10 +39,6 @@ class Context(DeleteableObject):
39
39
  self.__persisted_method_to_call_manager_inst = None
40
40
  self.__post_process_funcs = []
41
41
 
42
- def initialize(self):
43
- if self.__with_post_process:
44
- self.__persisted_method_to_call_manager.ensure_persistent_db_exists()
45
-
46
42
  @property
47
43
  def __with_post_process(self):
48
44
  return hasattr(self, '_Context__persisted_method_to_call_manager_inst')
@@ -61,6 +57,7 @@ class Context(DeleteableObject):
61
57
  from holado_core.common.resource.persisted_method_to_call_manager import PersistedMethodToCallManager
62
58
  self.__persisted_method_to_call_manager_inst = PersistedMethodToCallManager(scope_name=self.name, **self.__persisted_kwargs)
63
59
  self.__persisted_method_to_call_manager_inst.initialize(SessionContext.instance().resource_manager, SessionContext.instance().expression_evaluator)
60
+ self.__persisted_method_to_call_manager_inst.ensure_persistent_db_exists()
64
61
  return self.__persisted_method_to_call_manager_inst
65
62
 
66
63
  def get_context_name(self):
@@ -120,7 +120,7 @@ class SessionContext(Context):
120
120
  """
121
121
  Override this method to initialize the session context after its configuration and new session creation.
122
122
  """
123
- super().initialize()
123
+ pass
124
124
 
125
125
  @property
126
126
  def services(self):
@@ -292,7 +292,6 @@ class SessionContext(Context):
292
292
  # Create and initialize ScenarioContext
293
293
  scenario_context = ScenarioContext(scenario)
294
294
  self.get_feature_context().add_scenario(scenario_context)
295
- scenario_context.initialize()
296
295
 
297
296
  # Set variable with scenario context instance
298
297
  self.get_scenario_context().get_variable_manager().register_variable("SCENARIO_CONTEXT", self.get_scenario_context())
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: holado
3
- Version: 0.8.0
3
+ Version: 0.8.1
4
4
  Summary: HolAdo framework
5
5
  Project-URL: Homepage, https://gitlab.com/holado_framework/python
6
6
  Project-URL: Issues, https://gitlab.com/holado_framework/python/-/issues
@@ -17,7 +17,9 @@ Classifier: Programming Language :: Python :: 3.12
17
17
  Requires-Python: >=3.10
18
18
  Requires-Dist: behave==1.2.7.dev6
19
19
  Requires-Dist: psutil
20
+ Requires-Dist: pypika
20
21
  Requires-Dist: python-dateutil
22
+ Requires-Dist: sql-metadata
21
23
  Provides-Extra: ais
22
24
  Requires-Dist: pyais; extra == 'ais'
23
25
  Provides-Extra: all
@@ -43,25 +45,18 @@ Requires-Dist: psycopg-binary; extra == 'all'
43
45
  Requires-Dist: pyais; extra == 'all'
44
46
  Requires-Dist: pympler; extra == 'all'
45
47
  Requires-Dist: pyopenssl; extra == 'all'
46
- Requires-Dist: pypika; extra == 'all'
47
48
  Requires-Dist: pysftp; extra == 'all'
48
49
  Requires-Dist: redis; extra == 'all'
49
50
  Requires-Dist: redis-om; extra == 'all'
50
51
  Requires-Dist: ruamel-yaml; extra == 'all'
51
52
  Requires-Dist: sftpserver; extra == 'all'
52
- Requires-Dist: sql-metadata; extra == 'all'
53
53
  Requires-Dist: truststore; extra == 'all'
54
54
  Requires-Dist: zeep; extra == 'all'
55
55
  Provides-Extra: api-connexion
56
56
  Requires-Dist: connexion[flask,swagger-ui,uvicorn]; extra == 'api-connexion'
57
- Provides-Extra: db
58
- Requires-Dist: pypika; extra == 'db'
59
- Requires-Dist: sql-metadata; extra == 'db'
60
57
  Provides-Extra: db-postgresql
61
58
  Requires-Dist: psycopg; extra == 'db-postgresql'
62
59
  Requires-Dist: psycopg-binary; extra == 'db-postgresql'
63
- Requires-Dist: pypika; extra == 'db-postgresql'
64
- Requires-Dist: sql-metadata; extra == 'db-postgresql'
65
60
  Provides-Extra: docker
66
61
  Requires-Dist: docker; extra == 'docker'
67
62
  Provides-Extra: docker-tools
@@ -2,9 +2,9 @@ holado/__init__.py,sha256=ibxjS0XIck0rguf8FT_3HftofWmJqyfWraxjczMzzrw,14895
2
2
  holado/holado_config.py,sha256=H1Wgndhz133nm0OcqS5hD6oDxZbDD_DeHJsKOuenQrI,2588
3
3
  holado/common/__init__.py,sha256=ZjXM-FRQgnfzRNXqcvJOGewDHVRR-U5-ugStSs8U2Xs,1525
4
4
  holado/common/context/__init__.py,sha256=3jJBLm8myrYF9jbdV1EhIA6BtnlmjX33eeoDpTzwmLA,1604
5
- holado/common/context/context.py,sha256=duupyt3VESjxoArWoI6J9yM96zcC6faLbqVdLJCijMg,12057
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=mb2BykYzCu2ZlwoEGzm_m_0KSDqPPEXAgkrr3JxTQMA,23180
7
+ holado/common/context/session_context.py,sha256=pNiJlyLsIiwdBCUb3aMQmTJB7ZnO0NsDMvluSd7_ZjE,23122
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
@@ -204,10 +204,10 @@ holado_docker/tools/docker_controller/server/grpc/proto/compile_proto.py,sha256=
204
204
  holado_docker/tools/docker_controller/server/grpc/proto/definitions/docker_controler.proto,sha256=n9bsXaQfnZX-R5HvfquCVt3QjpFtDJSH6p8gnTjm06k,1650
205
205
  holado_docker/tools/docker_controller/server/rest/README,sha256=-uqu3drdPXkPkU4ha1IKcXGBHFIBEWH-uiTT74DExwE,167
206
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=7BYXloz3aA_cFgkUQWymTQMzN_ujJIsAUP5iljDRN5g,6363
207
+ holado_docker/tools/docker_controller/server/rest/openapi.yaml,sha256=HUD7CHasVGjpd6yW9mU0sWOKs4tuG_VSoefa7NuQWFI,6773
208
208
  holado_docker/tools/docker_controller/server/rest/run.py,sha256=8w5Xl7uOnjsYW59cmuUMOUd71fcXQn30k2jVis7cVNs,1748
209
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=Fifg-v8riSHkQ_15ivvNhYcTcv2pcpPGgwYmBerhAVk,2280
210
+ holado_docker/tools/docker_controller/server/rest/api/config.py,sha256=pe76IMkdNoljRsDRyhZW6BwkSSu6LsvnSEGqgd8_Ro4,2459
211
211
  holado_docker/tools/docker_controller/server/rest/api/container.py,sha256=6D612WF4chpDCzr4MBzZXzELxi-yOwrgxCxSBBVMcVo,2673
212
212
  holado_docker/tools/docker_controller/server/rest/api/os.py,sha256=ZdAbx_ZzwMaqHseOWWSf9ZPL_CEdRa2RvEXGvkk5c1o,1830
213
213
  holado_docker/tools/docker_viewer/docker_viewer_manager.py,sha256=tSLuIUdYjJoZIFUc1k4WnrRTUtjjTAmNTbrDmS-8SjI,2287
@@ -363,8 +363,8 @@ holado_python/standard_library/ssl/resources/certificates/NOTES.txt,sha256=GlPGG
363
363
  holado_python/standard_library/ssl/resources/certificates/localhost.crt,sha256=iLmZpDuOQVawUlbZkb72g2-uv1c4SAmRJOrm4Th5anY,1123
364
364
  holado_python/standard_library/ssl/resources/certificates/localhost.key,sha256=lP2NCvB9mr2E5sk8whA8FyQRcyU6H7sdWkJeKz80Hyc,1704
365
365
  holado_python/standard_library/ssl/resources/certificates/rootCACert.pem,sha256=ECQDZ8OHRfqpZHCu6JRLMUjiONaPIhKZQF0-kidVrWQ,1424
366
- holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=EmDDk6oOkBFJD_OR-pengQDQqn75LLReNzUbN0EWksg,1237
367
- holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=1pi0zxsTLW6rtphXu02m9II5b0woxaIeo2Mzszgut4w,1704
366
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.crt,sha256=a3fxUXYKjh5MpBo5vaFDlvGESD9n_HKWZ0GvKUjSBWE,1237
367
+ holado_python/standard_library/ssl/resources/certificates/tcpbin.key,sha256=FpUivY3CuG7xMiUcx-fdsIvaImzAJYJBOnxJ2GQevXI,1704
368
368
  holado_python/tests/behave/steps/__init__.py,sha256=TWEk-kBTTDHi9I4nuu48nufmNMdZ9FHAhPZv0A_cWzc,1661
369
369
  holado_python/tests/behave/steps/convert_steps.py,sha256=bZqRvJVp_u6fSPpdu4ne9NwVyZmui7R-AVdO2-H-I1A,2728
370
370
  holado_python/tests/behave/steps/iterable_steps.py,sha256=f4vGIWBH8Qnjq69Q-ZBluYyctQ8SKauazTc41dsktZA,4041
@@ -483,7 +483,7 @@ holado_system/system/command/exceptions.py,sha256=InT6t8GVeGCiBE-NpRr4NzycWVAvzm
483
483
  holado_system/system/filesystem/file.py,sha256=Y5uq2n-ttimdRvLh3QQjpECoOSUzcj9DesuT2HerYuk,2840
484
484
  holado_system/tests/behave/steps/__init__.py,sha256=7LrCSTHk5oHNuEsr4IhJuNDsohtR2cq3YT1owXrhdjc,1351
485
485
  holado_system/tests/behave/steps/system/commands_steps.py,sha256=uYiojPpYPkfif8l8afRrJ0sj-wFBE4j1x67BDMNs76Q,3901
486
- holado_system/tests/behave/steps/system/file_steps.py,sha256=K6DtWtlkppoWdtoQ60J1XFDphV_EE-ZpNsOe9RCvlYc,10321
486
+ holado_system/tests/behave/steps/system/file_steps.py,sha256=kJ7qEzaKkzErRpWCWmq1mJhqO3kHlMa-u5RmsG4664g,10388
487
487
  holado_system/tests/behave/steps/system/system_steps.py,sha256=2XrZwuAaYDjB_HvPgxZq9MpYB_Zo7FVZ0DYcmtKht2s,3778
488
488
  holado_test/__init__.py,sha256=A0edMOLhnuU-A_NazQ50WghvKvB889KNCBddtBPa9Ag,1539
489
489
  holado_test/test_config.py,sha256=yQK2jNHEGltGc3fmsAgcsKN4y3_nuldZHD45XEMrsQA,1575
@@ -499,7 +499,7 @@ holado_test/common/context/feature_context.py,sha256=GhC0lihnvTBhv5tE4JzPt39eP7g
499
499
  holado_test/common/context/scenario_context.py,sha256=x5q9AuBNkL9fG5LjiUzLOnqcyBLiOB_AlSPErKAcD1Y,7102
500
500
  holado_test/common/context/step_context.py,sha256=j6S4ozTPrdlpV9Slopc998fYOV8KfMLAUSW4mcEFUI8,2383
501
501
  holado_test/common/exceptions/undefined_step_exception.py,sha256=SHHX22iz4Ip-V4Y3aM2EJFDt30CCS5EaauN6KB-JORo,1461
502
- holado_test/scenario/step_tools.py,sha256=Sqm7M0vVA9O2lRnv3pK5ryrSPOCGr5P7xD7C3esTpGg,25482
502
+ holado_test/scenario/step_tools.py,sha256=iNay6tQPUi4sG-a8PY5LbbLpX0PRakkOj3ls98aEbHM,26375
503
503
  holado_test/scenario/tester_tools.py,sha256=Tv035FyXPjQ46Ep8KuPOjOvzJFvxnbv9EsrSihUzAwg,2479
504
504
  holado_test/tests/behave/steps/__init__.py,sha256=rdqrp-UN7vRplIqORx4sXyKwMUkptRizyLWudsmYehM,1362
505
505
  holado_test/tests/behave/steps/scenario/exception_steps.py,sha256=ZIE92Dz7a6O_c0jAP_0dj6Hc0tnW6YRgNKd4_aBpeR0,4054
@@ -655,7 +655,7 @@ test_holado/tools/django/api_rest/api_rest/api1/serializers.py,sha256=o_YxFr-tgC
655
655
  test_holado/tools/django/api_rest/api_rest/api1/tests.py,sha256=mrbGGRNg5jwbTJtWWa7zSKdDyeB4vmgZCRc2nk6VY-g,60
656
656
  test_holado/tools/django/api_rest/api_rest/api1/views.py,sha256=kOt2xT6bxO47_z__5yYR9kcYIWWv4qYzpX0K8Tqonik,758
657
657
  test_holado/tools/django/api_rest/api_rest/api1/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
658
- holado-0.8.0.dist-info/METADATA,sha256=t_7Z0RP1i5ynfg0GGIWhZJRQ3NCM7ddymqIsvP-10YY,7904
659
- holado-0.8.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
660
- holado-0.8.0.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
661
- holado-0.8.0.dist-info/RECORD,,
658
+ holado-0.8.1.dist-info/METADATA,sha256=96tNajEz2ibDQX0118wv3VNay6ndeo-YNIOGQvMo2bI,7671
659
+ holado-0.8.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
660
+ holado-0.8.1.dist-info/licenses/LICENSE,sha256=IgGmNlcFHnbp7UWrLJqAFvs_HIgjJDTmjCNRircJLsk,1070
661
+ holado-0.8.1.dist-info/RECORD,,
@@ -20,6 +20,14 @@ def _get_session_context():
20
20
 
21
21
  class YamlfileView(MethodView):
22
22
 
23
+ def get(self, body: dict):
24
+ file_path = body['file_path']
25
+
26
+ with open(file_path, 'rt') as fin:
27
+ res = fin.read()
28
+
29
+ return res
30
+
23
31
  def patch(self, body: dict):
24
32
  file_path = body['file_path']
25
33
  yaml_string = body['yaml_string']
@@ -186,6 +186,23 @@ paths:
186
186
  type: "string"
187
187
 
188
188
  /config/yaml_file:
189
+ get:
190
+ description: "Get content of a YAML file"
191
+ requestBody:
192
+ content:
193
+ application/json:
194
+ schema:
195
+ type: "object"
196
+ properties:
197
+ file_path:
198
+ type: string
199
+ responses:
200
+ 200:
201
+ description: ""
202
+ content:
203
+ application/text:
204
+ schema:
205
+ type: "string"
189
206
  patch:
190
207
  description: "Update a YAML file"
191
208
  requestBody:
@@ -211,7 +228,7 @@ paths:
211
228
  application/json:
212
229
  schema:
213
230
  type: "string"
214
- patch:
231
+ put:
215
232
  description: "Replace a YAML file"
216
233
  requestBody:
217
234
  content:
@@ -2,20 +2,20 @@
2
2
  MIIDZTCCAk2gAwIBAgIBKjANBgkqhkiG9w0BAQsFADCBizELMAkGA1UEBhMCVVMx
3
3
  CzAJBgNVBAgMAkNBMRYwFAYDVQQHDA1TYW4gRnJhbmNpc2NvMQ8wDQYDVQQKDAZ0
4
4
  Y3BiaW4xDDAKBgNVBAsMA29wczETMBEGA1UEAwwKdGNwYmluLmNvbTEjMCEGCSqG
5
- SIb3DQEJARYUaGFycnliYWdkaUBnbWFpbC5jb20wHhcNMjUwODI5MTY1MjU5WhcN
6
- MjUwODMwMTY1MjU5WjAcMRowGAYDVQQDDBF0Y3BiaW4uY29tLWNsaWVudDCCASIw
7
- DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALC6p5c+jUv0u8U+DKgo+p6QVIn4
8
- iTosy2BLSzeWrpR4NpD0xzDT86shEudDCPglmef2fqfTebJGAA+C5qAyvIvwWyAZ
9
- sFJXtS9l9TYoo3+BEeLqOc4CO9N5+I5HOL1ojsesYMSFMKj9ymZgjymy1vINRAf6
10
- ymx3977foonI+NMJu3wzlrnHmZQwC9Q80o4zWUrGDcEMndVTQZKXPGJyRuVCXNlF
11
- 6CYWCsLmDJXAkkyx7TkbZ7MfZEF7rnQO6oop+0s7iGrc2vXvJxkSASvPBtiyf4K3
12
- fQCV0t1ryYVvQexbNbUS6eV9biRbx0YYwVLvR368ctki8rQYo2OGiY48j1sCAwEA
13
- AaNCMEAwHQYDVR0OBBYEFOwN7RRRxJ60AcDoAMkF0OMxAZBYMB8GA1UdIwQYMBaA
14
- FOLuMowBSAZfV5v82LmlaIIOvU/DMA0GCSqGSIb3DQEBCwUAA4IBAQCV8UUfSoks
15
- OejnJUGrYJdvQdPZlqE7x7PayLQEmjCnCRecfeCnxLSiswgKAqjy96AThpwFkgKq
16
- eI0Nd4a3DffNZ0FLQl4OxNnWxT/KvP7ZblPkyfpHVOu1fht/RzTEZhhsFgn4sykm
17
- scC+VGSsvd88XvB6arfDDx9148RhW8ZB+UaPPzDSfJ5TNtMMLFMnwkB2tusZS9CD
18
- D+9Z1lC9xyUFY25YpYw4kjmKGH5sgpLzigOiG+0Hyjh/9Gfj79/MrKLXUmp37n/Z
19
- HDv2aAKuEwLboY+Nsz7FD4B5b+Wc98CDcSz4WUwmHO4rMKz7Vk1WwqGKKUgz1LL3
20
- vPscjXeU87dw
5
+ SIb3DQEJARYUaGFycnliYWdkaUBnbWFpbC5jb20wHhcNMjUwOTAxMTAxNDQ4WhcN
6
+ MjUwOTAyMTAxNDQ4WjAcMRowGAYDVQQDDBF0Y3BiaW4uY29tLWNsaWVudDCCASIw
7
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMHQeuEPAhoVTo8M3sAmA6gDvsz6
8
+ 6dZ8UvhuvT8euQWB2p37nrNy+/DskwdR5NYdyrqyJ8ZxgO9UGcOi6Kg/xpv5R4Hv
9
+ DKL5PJ1zVsG10pAY3zbAyVuw03S++tXhG910pTTUQyMEgXTxg18PBaA9ocW5VRCJ
10
+ cbjQVVLikaI+YzeeOmDbgEBys0svG5W8oDoTh+AcoKp6Jpoxh5mZ2TrVXgP0IAZY
11
+ 5I1S7HJLTtd7DOLiyWg3OydHNvvZaJ8MJPxZWtRqJbjRVfKbctgCgXDsH0YPHatX
12
+ 48Z7gOK17LUFQYOa4FAcT1wlrxKW6jE8tDRO3W4lyr7S3mzrsshxBzCcz7cCAwEA
13
+ AaNCMEAwHQYDVR0OBBYEFO3W/Yg4a3z1jH7AZOpc38UZy9onMB8GA1UdIwQYMBaA
14
+ FOLuMowBSAZfV5v82LmlaIIOvU/DMA0GCSqGSIb3DQEBCwUAA4IBAQAJ10bOcpm3
15
+ /CqQSf2Lz1P0Fcf/I2o2TnCUgrkDDKUVOEK7txnpc6Djz9KxSJiePM/U9NYOzFX1
16
+ 48qpynGOlA2m/tR+56RVCvTI8yPIqKWk/NGU7TpDfxrbY4DKCqEnDewiiEx4+aJg
17
+ kwvoH4qClrt+PWY3NKpvFI9Bh1ilRTEB/bGqTwOZWMpv+s215SxywjXcXsZ49dFm
18
+ gebdkuQVnD4VkSvH8SjyT28H0Yk/GyCfjzRdKPR8PilHnkJLlO9tmBTyFJ6eSwdZ
19
+ fSxNqDyv9JwK7uGUZv5k4A7QZMLkSJNwAxyck8lLNW9YpY74wpaDqTB+ZUy8XNai
20
+ jpB+z/vD71Qg
21
21
  -----END CERTIFICATE-----
@@ -1,28 +1,28 @@
1
1
  -----BEGIN PRIVATE KEY-----
2
- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCwuqeXPo1L9LvF
3
- PgyoKPqekFSJ+Ik6LMtgS0s3lq6UeDaQ9Mcw0/OrIRLnQwj4JZnn9n6n03myRgAP
4
- guagMryL8FsgGbBSV7UvZfU2KKN/gRHi6jnOAjvTefiORzi9aI7HrGDEhTCo/cpm
5
- YI8pstbyDUQH+spsd/e+36KJyPjTCbt8M5a5x5mUMAvUPNKOM1lKxg3BDJ3VU0GS
6
- lzxickblQlzZRegmFgrC5gyVwJJMse05G2ezH2RBe650DuqKKftLO4hq3Nr17ycZ
7
- EgErzwbYsn+Ct30AldLda8mFb0HsWzW1EunlfW4kW8dGGMFS70d+vHLZIvK0GKNj
8
- homOPI9bAgMBAAECggEATIvsPwQm6zlLgzlG/icRtlBJbaEqvvnb9Q9nuuIXJ9OR
9
- vuNmy21iY0LmDyjn36NZsDEB1uswENlk+VL3VXfkVrB6p8K4rlGy9p6wwQ6FEprz
10
- BlfxRZuOEiEIWYfbuZ5qCW5OU5Bk7S1P11wHZkZB94FrcBFeT/D+a7wtiIR10eHy
11
- 6mZ+i4i9XBjYNnNbinHb6PLSGL8ixyXsz5TqJSeo3mFinnJzicn0c6HMKvll9eho
12
- LQuSRRaq9RtVN8XBAgJpGPYMR05+b5eaQbMwmT5DufOwNAa7B9JkaB9NfqVklhmZ
13
- ifBz8aVTV9LoVOCMxfy2PUIlmMxIhrUXQ61EsUHgYQKBgQDbox6WpzmDGbT1o6uU
14
- A2D+Vdj0rbEtUeVq1B5oZmMPNzzHSxTOgr74k7KXkk/CeERbdnb3UAJgT0lVTlD1
15
- G7IdEMwXbaZDhkkZlP/1+yhqfY6BXVdiozwp0hV264jWpQQ4Z3+i1JRNa0CJtTCj
16
- M1/bYRymiDwm78p7/9ZP0YjD2QKBgQDN/PaLkiM6azOaXySW0UMHlQjY+c47TS9u
17
- VPnHCIr4NP2oK9N4S1wjJJfMjvF2NbwQ31dx6hOCbIoYeX9Ttp8pLYvpI8mdK8+X
18
- 8EehDlrGMzY6EVPrHuAELlBNPp/iDqpqBDyXsNoTdJlxxGmgfYUaY9tnIzuYIsTR
19
- 56SIwLOQUwKBgCBq5hPkYLe57pym6KczDHjdoOUUUedXhB4NauOL4SkYxQ7BRTPp
20
- 1lgILL70aHNSnvxE8vAzzfX7Hd7KbWaQDOz/UrBOjdC/nEB7XoAm7uMw3vy3EzPK
21
- 1hFyIZrozsynlITiudMFv1Hh96ebp68e4RIXNkxaJU6169P7gd1MFvyZAoGAVb8U
22
- nlryATJ446zxXTq1DWXzream+7aQpPwIkdqzhskAQk4kFHJCY3qrGgLy7sNFizx9
23
- eTT4dBVckv2YjC98J7cHA8Da/2sqWlQybQ+9p73Pt/JYnYpXtEXXNaB5C7ARLlqf
24
- IoIC9ZBXA63AToeRrb+dqFxZRWZLyhkEO80DsnMCgYBiMQQfXXvStKGvEUFI3DGB
25
- e27HByFdIYGiSd90crg8VmW7iFJl03v/10hQaaBDR8L1u28ni10p8Rqtfmf9hqEz
26
- S+OOxFvJOoEbjZ4b/0QI+Uz1u3E/+/asoRq1czTiU/bKdic5CaYuWOAhZhTMFbX8
27
- Yx8xkRen+8bY3oXMsbOBJA==
2
+ MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDB0HrhDwIaFU6P
3
+ DN7AJgOoA77M+unWfFL4br0/HrkFgdqd+56zcvvw7JMHUeTWHcq6sifGcYDvVBnD
4
+ ouioP8ab+UeB7wyi+Tydc1bBtdKQGN82wMlbsNN0vvrV4RvddKU01EMjBIF08YNf
5
+ DwWgPaHFuVUQiXG40FVS4pGiPmM3njpg24BAcrNLLxuVvKA6E4fgHKCqeiaaMYeZ
6
+ mdk61V4D9CAGWOSNUuxyS07Xewzi4sloNzsnRzb72WifDCT8WVrUaiW40VXym3LY
7
+ AoFw7B9GDx2rV+PGe4Ditey1BUGDmuBQHE9cJa8SluoxPLQ0Tt1uJcq+0t5s67LI
8
+ cQcwnM+3AgMBAAECggEAIIfVmCDkwWwCG5CVcrrusiyuwcj7pryHUJuFuCp386yv
9
+ /QRWxtft4apTo07jkey+Mkfk1TIH6iO7j1KwqkzKETPuBKkS/efHfMX3MdxK01TZ
10
+ Yl9JbNJpK5dCktON0cXaVNuryRzgfbhrzHDBCPxPQtiwpm3rYJHXQGo293xxOsxR
11
+ MzVn4oGjQIxQc49QAs0Xgqxn38wUPcgej3vCtSlaUIDxTwfugEoQQ1x5n2D6k7Re
12
+ 7gPPrHskIr9YuuqQlDzyJ3qVAI/HQiQPQbJzwWgtRVSb12/Yzb0gSMi86kMvn4Oy
13
+ Zb3S+PSM+dKhMNLG/7QZHyc3R+Us3PMOnS/QiidvgQKBgQDp0zIluHEVcN6+wHsD
14
+ pugM4A1Rll1VY/tu8OIwb7X8Tb24wIKQyA64FkAz6BVriXBN5gqqgXclE5PNh34b
15
+ 0FVfv0t0Hm9aVzxKXlfDVEFzIMQammKHZuVyHILNxNqggnTC4zzqrxUlITzqb+kc
16
+ 7l0rb8aoc7HYsxq8ZWv6l+5LbwKBgQDUMegGYQ8S6QhJeRoO12E7tDFSJVXhjW3Z
17
+ jXsZaXgENI3d3wk2WUSQZK8D8fFoRM41ctfn9c4xm3vj1iDaGIYox76FCE4QyXez
18
+ mvQoVPz+3lBiTBQTQpcI3XLZPH+rjdM4M7WsAxd5yGaW2r23+8WNDdEdGd+P0sQ4
19
+ GnIEuyA8OQKBgQCuLY+2f41lbl3O9GzuTH+hT6k8NGk0ObVLcA7eC+khl/uSy3y3
20
+ Qv+L669Ju0FxiMDqlkktuCE7sjiwqpSrPWbLWyFmz2Edh8w2jc6Mh4/1pdvPAWAS
21
+ Avk6JrjddR1y4Zr+re1r2J5EuVy6OkEJNxqaR7pRM1Ww2cI5wsdLta9h6wKBgQCl
22
+ aYIF9wNZKm9bVxwJFbymXgFUl+YqvaU0QiYD2UPFg3JT0tnLlCrupI4J9UDKl1ho
23
+ Me481FC4OwyIvxM88IEkqRDLg33XeDXnvJM4HYha5dKjzcqYeQBj2Lz+uzqK8TQG
24
+ S8kDHiXeuWm/jyT1lz6YhnzMwq6T3yk20uau6XBngQKBgCpM3x2XqCiPzlQ/da84
25
+ 7SsCJ1jp4PJt1PCjFbp6jzPw9FD7lj1nSzGvVAEwKyL0OXq4k3+o9Nj/KYqncXzJ
26
+ v8GmSyjEtSy1VynW8D1VAtCbfI7GHa+TflcjLqKb2BN+BpTGjeVPRbXVUlwqFF3I
27
+ ughugjyndVciKdl7MmifCz92
28
28
  -----END PRIVATE KEY-----
@@ -126,24 +126,31 @@ def step_impl(context, var_name, is_text_file_str, path): # @DuplicatedSignatur
126
126
  path = StepTools.evaluate_scenario_parameter(path)
127
127
 
128
128
  mode = 'rt' if is_text_file else 'rb'
129
- content = open(path, mode).read()
129
+ with open(path, mode) as fin:
130
+ res = fin.read()
130
131
 
131
- __get_variable_manager().register_variable(var_name, content)
132
+ __get_variable_manager().register_variable(var_name, res)
132
133
 
133
134
  @Given(r"(?P<var_name>{Variable}) = content of file (?P<path>{Str}) in base 64")
134
135
  def step_impl(context, var_name, path): # @DuplicatedSignature
135
136
  var_name = StepTools.evaluate_variable_name(var_name)
136
137
  path = StepTools.evaluate_scenario_parameter(path)
137
- content = open(path, "rb").read()
138
- content64 = base64.b64encode(content)
139
- __get_variable_manager().register_variable(var_name, content64)
138
+
139
+ with open(path, "rb") as fin:
140
+ content = fin.read()
141
+ res = base64.b64encode(content)
142
+
143
+ __get_variable_manager().register_variable(var_name, res)
140
144
 
141
145
  @Given(r"(?P<var_name>{Variable}) = lines of file (?P<path>{Str})")
142
146
  def step_impl(context, var_name, path): # @DuplicatedSignature
143
147
  var_name = StepTools.evaluate_variable_name(var_name)
144
148
  path = StepTools.evaluate_scenario_parameter(path)
145
- lines = open(path, "r").readlines()
149
+
150
+ with open(path, "r") as fin:
151
+ lines = fin.readlines()
146
152
  res = list(map(lambda x: x.strip('\n'), lines))
153
+
147
154
  __get_variable_manager().register_variable(var_name, res)
148
155
 
149
156
 
@@ -398,6 +398,28 @@ class StepTools(object):
398
398
  except FunctionalException as exc:
399
399
  raise FunctionalException(f"Obtained table contains at least a row of expected table (obtained = table 1 ; expected = table 2):\n{Tools.indent_string(4, exc.message)}") from exc
400
400
 
401
+ @classmethod
402
+ def format_step(cls, step_str, keyword=None, table=None, text=None):
403
+ step_str = step_str.strip()
404
+
405
+ if keyword is not None:
406
+ res = f"{keyword} {step_str}"
407
+ else:
408
+ res = step_str
409
+
410
+ if table is not None:
411
+ if isinstance(table, Table):
412
+ rendered_table = table.represent(indent=4)
413
+ else:
414
+ raise TechnicalException(f"Unmanaged table of type '{Typing.get_object_class_fullname(table)}'")
415
+ res = u"{res}\n{table}".format(res=res, table=rendered_table)
416
+ elif text is not None:
417
+ rendered_text = text.replace(u'"""', u'\\"\\"\\"')
418
+ rendered_text = Tools.indent_string(4, u'"""\n' + rendered_text + '\n"""\n')
419
+ res = u"{res}\n{text}".format(res=res, text=rendered_text)
420
+
421
+ return res
422
+
401
423
  @classmethod
402
424
  def format_steps_with(cls, steps, format_with_list):
403
425
  res = steps
File without changes