zrb 0.6.0__py3-none-any.whl → 0.6.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.
Files changed (316) hide show
  1. zrb/__init__.py +24 -20
  2. zrb/__main__.py +5 -5
  3. zrb/action/runner.py +22 -30
  4. zrb/advertisement.py +10 -9
  5. zrb/builtin/__init__.py +18 -16
  6. zrb/builtin/base64.py +13 -18
  7. zrb/builtin/devtool/__init__.py +14 -3
  8. zrb/builtin/devtool/devtool_install.py +207 -221
  9. zrb/builtin/env.py +9 -12
  10. zrb/builtin/eval.py +9 -9
  11. zrb/builtin/explain.py +73 -74
  12. zrb/builtin/generator/__init__.py +7 -11
  13. zrb/builtin/generator/app_generator/add.py +86 -87
  14. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/add.py +78 -77
  15. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +6 -6
  16. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  17. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +32 -32
  18. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +29 -30
  19. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +1 -3
  20. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +5 -4
  21. zrb/builtin/generator/app_generator/template/base/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  22. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/add.py +89 -87
  23. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_common.py +14 -15
  24. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/container.py +42 -54
  25. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  26. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/image.py +19 -22
  27. zrb/builtin/generator/app_generator/template/build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +18 -18
  28. zrb/builtin/generator/app_generator/template/http-port/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/_checker.py +10 -10
  29. zrb/builtin/generator/app_generator/template/http-port-build-custom-image/_automate/generate_snake_zrb_meta_template_name/template/_automate/snake_zrb_app_name/local.py +19 -19
  30. zrb/builtin/generator/app_generator/template/use-helm/_automate/generate_snake_zrb_meta_template_name/template/src/kebab-zrb-app-name/deployment/__main__.py +12 -14
  31. zrb/builtin/generator/cmd_task/add.py +23 -25
  32. zrb/builtin/generator/cmd_task/template/_automate/snake_zrb_task_name.py +3 -5
  33. zrb/builtin/generator/common/helper.py +15 -20
  34. zrb/builtin/generator/common/task_factory.py +29 -26
  35. zrb/builtin/generator/common/task_input.py +97 -91
  36. zrb/builtin/generator/docker_compose_task/add.py +38 -39
  37. zrb/builtin/generator/docker_compose_task/template/_automate/snake_zrb_task_name.py +13 -19
  38. zrb/builtin/generator/docker_compose_task/template/src/kebab-zrb-task-name/image/main.py +18 -14
  39. zrb/builtin/generator/fastapp/add.py +94 -90
  40. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_checker.py +28 -27
  41. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_config.py +68 -39
  42. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env.py +24 -22
  43. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_env_file.py +12 -12
  44. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_get_start_microservices.py +43 -41
  45. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_helper.py +23 -24
  46. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/_input.py +21 -20
  47. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-load-test.sh +1 -1
  48. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-start.sh +1 -1
  49. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/cmd/app-test.sh +2 -2
  50. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/container.py +46 -39
  51. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/deployment.py +28 -20
  52. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/frontend.py +21 -27
  53. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/image.py +23 -18
  54. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/load_test.py +35 -36
  55. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/local.py +68 -58
  56. zrb/builtin/generator/fastapp/template/_automate/snake_zrb_app_name/test.py +24 -38
  57. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/__main__.py +23 -21
  58. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/_common.py +72 -75
  59. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/app_helper.py +70 -75
  60. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_postgresql_helper.py +18 -21
  61. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_rabbitmq_helper.py +11 -19
  62. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_redpanda_helper.py +18 -15
  63. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/deployment/helm_signoz_helper.py +17 -21
  64. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/docker-compose.yml +12 -12
  65. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/loadtest/locustfile.py +10 -12
  66. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/Dockerfile +1 -0
  67. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app.py +35 -30
  68. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_lifespan.py +21 -17
  69. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/app_state.py +3 -2
  70. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/db_connection.py +18 -20
  71. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/frontend_index.py +5 -6
  72. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/log.py +7 -15
  73. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/messagebus.py +38 -34
  74. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/component/rpc.py +19 -18
  75. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/config.py +68 -103
  76. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/error.py +11 -10
  77. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/__init__.py +2 -4
  78. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/admin.py +38 -35
  79. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/consumer.py +38 -45
  80. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/kafka/publisher.py +26 -29
  81. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/messagebus.py +8 -14
  82. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/mock.py +12 -8
  83. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/admin.py +37 -44
  84. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/consumer.py +42 -67
  85. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/messagebus/rabbitmq/publisher.py +32 -55
  86. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/model/repo_model.py +11 -10
  87. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/__init__.py +2 -2
  88. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_entity_mixin.py +3 -6
  89. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/db_repo.py +76 -83
  90. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/repo.py +5 -5
  91. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/repo/search_filter.py +1 -0
  92. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/__init__.py +1 -1
  93. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/caller.py +17 -19
  94. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/messagebus/server.py +14 -18
  95. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/rpc/rpc.py +15 -28
  96. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/__init__.py +1 -1
  97. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/schema/base_schema.py +6 -5
  98. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/__init__.py +1 -3
  99. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/core/serializer/serializer.py +3 -4
  100. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/async_task.py +3 -5
  101. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/conversion.py +10 -10
  102. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/helper/migration.py +6 -10
  103. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/migrate.py +3 -2
  104. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/api.py +7 -12
  105. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/__init__.py +4 -6
  106. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_scheme.py +9 -10
  107. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/access_token_util.py +6 -5
  108. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/authorizer.py +4 -4
  109. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/bearer_token_scheme.py +1 -1
  110. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/model/user_model.py +8 -10
  111. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/password_hasher.py +1 -1
  112. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/refresh_token_util.py +7 -6
  113. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/group_repo.py +3 -8
  114. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/permission_repo.py +3 -7
  115. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/repo/user_repo.py +3 -5
  116. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/component/user.py +12 -7
  117. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/__init__.py +7 -12
  118. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/scheme.py +7 -12
  119. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/access_token/util.py +20 -30
  120. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/authorizer.py +1 -3
  121. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/authorizer/rpc_authorizer.py +5 -12
  122. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/bcrypt_password_hasher.py +3 -8
  123. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/password_hasher/password_hasher.py +0 -1
  124. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/core/refresh_token/util.py +15 -21
  125. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/api.py +42 -49
  126. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/model.py +3 -7
  127. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/repo.py +18 -16
  128. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/group/rpc.py +26 -41
  129. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/api.py +46 -51
  130. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/model.py +5 -7
  131. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/repo.py +11 -8
  132. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/permission/rpc.py +28 -45
  133. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/table.py +10 -10
  134. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/api.py +60 -72
  135. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/model.py +32 -61
  136. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/repo.py +33 -36
  137. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/entity/user/rpc.py +42 -61
  138. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/event.py +2 -4
  139. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/migrate.py +3 -5
  140. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_module.py +11 -12
  141. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/register_permission.py +19 -26
  142. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/rpc.py +5 -13
  143. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/group.py +6 -4
  144. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/permission.py +3 -1
  145. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/request.py +1 -0
  146. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/token.py +2 -2
  147. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/auth/schema/user.py +4 -3
  148. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/api.py +4 -5
  149. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/model/activity_model.py +3 -9
  150. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/component/repo/activity_repo.py +3 -7
  151. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/core/historical_repo_model.py +13 -13
  152. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/api.py +22 -23
  153. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/event.py +5 -7
  154. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/model.py +2 -6
  155. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/repo.py +8 -8
  156. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/activity/rpc.py +28 -45
  157. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/entity/table.py +3 -3
  158. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/event.py +4 -8
  159. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/migrate.py +2 -4
  160. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/register_module.py +10 -11
  161. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/rpc.py +3 -5
  162. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/module/log/schema/activity.py +3 -1
  163. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/src/requirements.txt +12 -12
  164. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_group_crud.py +76 -106
  165. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_permission_crud.py +73 -103
  166. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_crud.py +92 -122
  167. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/auth/test_user_login.py +107 -134
  168. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/conftest.py +2 -2
  169. zrb/builtin/generator/fastapp/template/src/kebab-zrb-app-name/test/test_liveness_and_readiness.py +8 -15
  170. zrb/builtin/generator/fastapp_crud/add.py +74 -79
  171. zrb/builtin/generator/fastapp_crud/helper.py +51 -48
  172. zrb/builtin/generator/fastapp_crud/task_factory.py +17 -14
  173. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/model/snake_zrb_entity_name_model.py +2 -2
  174. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/component/repo/snake_zrb_entity_name_repo.py +3 -2
  175. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/api.py +58 -40
  176. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/model.py +7 -3
  177. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/repo.py +9 -4
  178. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/snake_zrb_entity_name/rpc.py +32 -39
  179. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/schema/snake_zrb_entity_name.py +3 -1
  180. zrb/builtin/generator/fastapp_crud/template/src/kebab-zrb-app-name/test/snake_zrb_module_name/test_snake_zrb_entity_name.py +68 -98
  181. zrb/builtin/generator/fastapp_field/add.py +143 -85
  182. zrb/builtin/generator/fastapp_field/helper.py +184 -125
  183. zrb/builtin/generator/fastapp_module/add.py +90 -67
  184. zrb/builtin/generator/fastapp_module/helper.py +141 -155
  185. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/api.py +3 -2
  186. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/entity/table.py +3 -3
  187. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/event.py +3 -5
  188. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/migrate.py +2 -4
  189. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/register_module.py +10 -11
  190. zrb/builtin/generator/fastapp_module/template/src/kebab-zrb-app-name/src/module/snake_zrb_module_name/rpc.py +3 -5
  191. zrb/builtin/generator/pip_package/add.py +39 -40
  192. zrb/builtin/generator/pip_package/template/_automate/snake_zrb_package_name/local.py +30 -30
  193. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__init__.py +1 -0
  194. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/__main__.py +1 -0
  195. zrb/builtin/generator/pip_package/template/src/kebab-zrb-package-name/src/snake_zrb_package_name/util.py +2 -2
  196. zrb/builtin/generator/plugin/create.py +39 -36
  197. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__init__.py +1 -1
  198. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/__main__.py +1 -0
  199. zrb/builtin/generator/plugin/template/src/snake_zrb_package_name/task/example_task.py +6 -4
  200. zrb/builtin/generator/plugin/template/zrb_init.py +27 -27
  201. zrb/builtin/generator/project/create.py +38 -46
  202. zrb/builtin/generator/project/template/.flake8 +3 -0
  203. zrb/builtin/generator/project/template/project.sh +19 -10
  204. zrb/builtin/generator/project_task/task_factory.py +60 -61
  205. zrb/builtin/generator/project_task/template/_automate/_project/__init__.py +2 -2
  206. zrb/builtin/generator/project_task/template/_automate/_project/build_project_images.py +4 -4
  207. zrb/builtin/generator/project_task/template/_automate/_project/deploy_project.py +4 -4
  208. zrb/builtin/generator/project_task/template/_automate/_project/destroy_project.py +4 -4
  209. zrb/builtin/generator/project_task/template/_automate/_project/push_project_images.py +4 -4
  210. zrb/builtin/generator/project_task/template/_automate/_project/remove_project_containers.py +4 -4
  211. zrb/builtin/generator/project_task/template/_automate/_project/start_project.py +4 -4
  212. zrb/builtin/generator/project_task/template/_automate/_project/start_project_containers.py +4 -4
  213. zrb/builtin/generator/project_task/template/_automate/_project/stop_project_containers.py +4 -4
  214. zrb/builtin/generator/python_task/add.py +25 -33
  215. zrb/builtin/generator/python_task/template/_automate/snake_zrb_task_name.py +8 -7
  216. zrb/builtin/generator/simple_python_app/add.py +81 -75
  217. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/_common.py +14 -15
  218. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/container.py +46 -61
  219. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/deployment.py +34 -32
  220. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/image.py +19 -22
  221. zrb/builtin/generator/simple_python_app/template/_automate/snake_zrb_app_name/local.py +23 -25
  222. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/deployment/__main__.py +24 -32
  223. zrb/builtin/generator/simple_python_app/template/src/kebab-zrb-app-name/src/main.py +18 -14
  224. zrb/builtin/git.py +46 -46
  225. zrb/builtin/group.py +13 -34
  226. zrb/builtin/helper/reccuring_action.py +26 -29
  227. zrb/builtin/md5.py +17 -30
  228. zrb/builtin/process.py +19 -19
  229. zrb/builtin/project.py +13 -15
  230. zrb/builtin/say.py +69 -88
  231. zrb/builtin/schedule.py +15 -19
  232. zrb/builtin/ubuntu.py +44 -35
  233. zrb/builtin/update.py +5 -5
  234. zrb/builtin/version.py +3 -7
  235. zrb/builtin/watch_changes.py +24 -25
  236. zrb/config/config.py +19 -18
  237. zrb/helper/accessories/color.py +18 -6
  238. zrb/helper/accessories/icon.py +24 -3
  239. zrb/helper/accessories/name.py +120 -28
  240. zrb/helper/advertisement.py +9 -13
  241. zrb/helper/callable.py +2 -4
  242. zrb/helper/cli.py +27 -31
  243. zrb/helper/codemod/add_argument_to_function.py +3 -4
  244. zrb/helper/codemod/add_argument_to_function_call.py +4 -7
  245. zrb/helper/codemod/add_assert_resource.py +7 -7
  246. zrb/helper/codemod/add_function_call.py +3 -5
  247. zrb/helper/codemod/add_import_module.py +15 -26
  248. zrb/helper/codemod/add_key_value_to_dict.py +7 -10
  249. zrb/helper/codemod/add_property_to_class.py +10 -8
  250. zrb/helper/codemod/add_upstream_to_task.py +21 -33
  251. zrb/helper/codemod/append_code_to_function.py +6 -13
  252. zrb/helper/codemod/format_code.py +2 -1
  253. zrb/helper/default_env.py +25 -25
  254. zrb/helper/docker_compose/fetch_external_env.py +18 -18
  255. zrb/helper/docker_compose/file.py +5 -4
  256. zrb/helper/docstring.py +44 -47
  257. zrb/helper/env_map/fetch.py +7 -12
  258. zrb/helper/file/copy_tree.py +12 -17
  259. zrb/helper/file/match.py +6 -7
  260. zrb/helper/file/text.py +8 -6
  261. zrb/helper/git/detect_changes.py +9 -8
  262. zrb/helper/loader/load_module.py +14 -13
  263. zrb/helper/log.py +4 -3
  264. zrb/helper/map/conversion.py +4 -5
  265. zrb/helper/python_task.py +2 -4
  266. zrb/helper/render_data.py +25 -18
  267. zrb/helper/string/constant.py +2 -2
  268. zrb/helper/string/conversion.py +17 -16
  269. zrb/helper/string/jinja.py +2 -2
  270. zrb/helper/typecheck.py +6 -4
  271. zrb/helper/typing.py +10 -2
  272. zrb/helper/util.py +44 -40
  273. zrb/task/any_task.py +251 -251
  274. zrb/task/base_remote_cmd_task.py +76 -59
  275. zrb/task/base_task/base_task.py +95 -108
  276. zrb/task/base_task/component/base_task_model.py +73 -71
  277. zrb/task/base_task/component/common_task_model.py +42 -29
  278. zrb/task/base_task/component/pid_model.py +3 -5
  279. zrb/task/base_task/component/renderer.py +26 -36
  280. zrb/task/base_task/component/trackers.py +6 -9
  281. zrb/task/checker.py +14 -9
  282. zrb/task/cmd_task.py +102 -100
  283. zrb/task/decorator.py +19 -13
  284. zrb/task/docker_compose_task.py +127 -98
  285. zrb/task/flow_task.py +16 -19
  286. zrb/task/http_checker.py +40 -36
  287. zrb/task/notifier.py +50 -38
  288. zrb/task/parallel.py +3 -3
  289. zrb/task/path_checker.py +34 -27
  290. zrb/task/path_watcher.py +49 -40
  291. zrb/task/port_checker.py +33 -26
  292. zrb/task/recurring_task.py +36 -42
  293. zrb/task/remote_cmd_task.py +31 -28
  294. zrb/task/resource_maker.py +66 -52
  295. zrb/task/rsync_task.py +24 -21
  296. zrb/task/task.py +4 -3
  297. zrb/task/time_watcher.py +36 -31
  298. zrb/task_env/constant.py +1 -1
  299. zrb/task_env/env.py +33 -31
  300. zrb/task_env/env_file.py +24 -23
  301. zrb/task_group/group.py +27 -30
  302. zrb/task_input/any_input.py +18 -16
  303. zrb/task_input/base_input.py +26 -26
  304. zrb/task_input/bool_input.py +6 -6
  305. zrb/task_input/choice_input.py +11 -9
  306. zrb/task_input/constant.py +1 -1
  307. zrb/task_input/float_input.py +6 -5
  308. zrb/task_input/int_input.py +8 -8
  309. zrb/task_input/password_input.py +9 -9
  310. zrb/task_input/str_input.py +8 -8
  311. zrb/task_input/task_input.py +4 -2
  312. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/METADATA +3 -1
  313. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/RECORD +316 -315
  314. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/LICENSE +0 -0
  315. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/WHEEL +0 -0
  316. {zrb-0.6.0.dist-info → zrb-0.6.1.dist-info}/entry_points.txt +0 -0
@@ -1,11 +1,15 @@
1
1
  from module.log.core.historical_repo_model import HistoricalRepoModel
2
2
  from module.snake_zrb_module_name.schema.snake_zrb_entity_name import (
3
- PascalZrbEntityName, PascalZrbEntityNameData, PascalZrbEntityNameResult
3
+ PascalZrbEntityName,
4
+ PascalZrbEntityNameData,
5
+ PascalZrbEntityNameResult,
4
6
  )
5
7
 
6
8
 
7
9
  class PascalZrbEntityNameModel(
8
- HistoricalRepoModel[PascalZrbEntityName, PascalZrbEntityNameData, PascalZrbEntityNameResult]
10
+ HistoricalRepoModel[
11
+ PascalZrbEntityName, PascalZrbEntityNameData, PascalZrbEntityNameResult
12
+ ]
9
13
  ):
10
14
  schema_result_cls = PascalZrbEntityNameResult
11
- log_entity_name = 'snake_zrb_entity_name'
15
+ log_entity_name = "snake_zrb_entity_name"
@@ -1,12 +1,17 @@
1
- from sqlalchemy import Column, String
2
- from core.repo import Repo, DBEntityMixin, DBRepo
1
+ from core.repo import DBEntityMixin, DBRepo, Repo
2
+ from module.snake_zrb_module_name.component import Base
3
3
  from module.snake_zrb_module_name.schema.snake_zrb_entity_name import (
4
- PascalZrbEntityName, PascalZrbEntityNameData
4
+ PascalZrbEntityName,
5
+ PascalZrbEntityNameData,
5
6
  )
6
- from module.snake_zrb_module_name.component import Base
7
+ from sqlalchemy import Column, String
7
8
 
8
9
 
9
10
  class DBEntityPascalZrbEntityName(Base, DBEntityMixin):
11
+ class Config:
12
+ orm_mode = True
13
+ from_attributes = True
14
+
10
15
  __tablename__ = "snake_zrb_plural_entity_name"
11
16
  snake_zrb_column_name = Column(String)
12
17
 
@@ -1,79 +1,72 @@
1
- from typing import Any, Mapping
2
1
  from logging import Logger
2
+ from typing import Any, Mapping
3
+
3
4
  from core.messagebus import Publisher
4
- from core.rpc import Caller, Server
5
5
  from core.repo import SearchFilter
6
+ from core.rpc import Caller, Server
7
+ from module.auth.schema.token import AccessTokenData
6
8
  from module.snake_zrb_module_name.component.model.snake_zrb_entity_name_model import (
7
- snake_zrb_entity_name_model
9
+ snake_zrb_entity_name_model,
10
+ )
11
+ from module.snake_zrb_module_name.schema.snake_zrb_entity_name import (
12
+ PascalZrbEntityNameData,
8
13
  )
9
- from module.snake_zrb_module_name.schema.snake_zrb_entity_name import PascalZrbEntityNameData
10
- from module.auth.schema.token import AccessTokenData
11
14
 
12
15
 
13
16
  def register_rpc(
14
- logger: Logger,
15
- rpc_server: Server,
16
- rpc_caller: Caller,
17
- publisher: Publisher
17
+ logger: Logger, rpc_server: Server, rpc_caller: Caller, publisher: Publisher
18
18
  ):
19
- logger.info('🥪 Register RPC handlers for "snake_zrb_module_name.snake_zrb_entity_name"')
19
+ logger.info(
20
+ '🥪 Register RPC handlers for "snake_zrb_module_name.snake_zrb_entity_name"'
21
+ )
20
22
 
21
- @rpc_server.register('snake_zrb_module_name_get_snake_zrb_entity_name')
23
+ @rpc_server.register("snake_zrb_module_name_get_snake_zrb_entity_name")
22
24
  async def get(
23
25
  keyword: str,
24
26
  criterion: Mapping[str, Any],
25
27
  limit: int,
26
28
  offset: int,
27
- user_token_data: Mapping[str, Any]
29
+ user_token_data: Mapping[str, Any],
28
30
  ) -> Mapping[str, Any]:
29
31
  result = await snake_zrb_entity_name_model.get(
30
- search_filter=SearchFilter(
31
- keyword=keyword, criterion=criterion
32
- ),
32
+ search_filter=SearchFilter(keyword=keyword, criterion=criterion),
33
33
  limit=limit,
34
- offset=offset
34
+ offset=offset,
35
35
  )
36
- return result.dict()
36
+ return result.model_dump()
37
37
 
38
- @rpc_server.register('snake_zrb_module_name_get_snake_zrb_entity_name_by_id')
38
+ @rpc_server.register("snake_zrb_module_name_get_snake_zrb_entity_name_by_id")
39
39
  async def get_by_id(
40
- id: str,
41
- user_token_data: Mapping[str, Any] = {}
40
+ id: str, user_token_data: Mapping[str, Any] = {}
42
41
  ) -> Mapping[str, Any]:
43
42
  row = await snake_zrb_entity_name_model.get_by_id(id)
44
- return row.dict()
43
+ return row.model_dump()
45
44
 
46
- @rpc_server.register('snake_zrb_module_name_insert_snake_zrb_entity_name')
45
+ @rpc_server.register("snake_zrb_module_name_insert_snake_zrb_entity_name")
47
46
  async def insert(
48
- data: Mapping[str, Any],
49
- user_token_data: Mapping[str, Any]
47
+ data: Mapping[str, Any], user_token_data: Mapping[str, Any]
50
48
  ) -> Mapping[str, Any]:
51
49
  user_token_data = AccessTokenData(**user_token_data)
52
- data['created_by'] = user_token_data.user_id
53
- data['updated_by'] = user_token_data.user_id
50
+ data["created_by"] = user_token_data.user_id
51
+ data["updated_by"] = user_token_data.user_id
54
52
  row = await snake_zrb_entity_name_model.insert(
55
53
  data=PascalZrbEntityNameData(**data)
56
54
  )
57
- return row.dict()
55
+ return row.model_dump()
58
56
 
59
- @rpc_server.register('snake_zrb_module_name_update_snake_zrb_entity_name')
57
+ @rpc_server.register("snake_zrb_module_name_update_snake_zrb_entity_name")
60
58
  async def update(
61
- id: str,
62
- data: Mapping[str, Any],
63
- user_token_data: Mapping[str, Any]
59
+ id: str, data: Mapping[str, Any], user_token_data: Mapping[str, Any]
64
60
  ) -> Mapping[str, Any]:
65
61
  user_token_data = AccessTokenData(**user_token_data)
66
- data['updated_by'] = user_token_data.user_id
62
+ data["updated_by"] = user_token_data.user_id
67
63
  row = await snake_zrb_entity_name_model.update(
68
64
  id=id, data=PascalZrbEntityNameData(**data)
69
65
  )
70
- return row.dict()
66
+ return row.model_dump()
71
67
 
72
- @rpc_server.register('snake_zrb_module_name_delete_snake_zrb_entity_name')
73
- async def delete(
74
- id: str,
75
- user_token_data: Mapping[str, Any]
76
- ) -> Mapping[str, Any]:
68
+ @rpc_server.register("snake_zrb_module_name_delete_snake_zrb_entity_name")
69
+ async def delete(id: str, user_token_data: Mapping[str, Any]) -> Mapping[str, Any]:
77
70
  user_token_data = AccessTokenData(**user_token_data)
78
71
  row = await snake_zrb_entity_name_model.delete(id=id)
79
- return row.dict()
72
+ return row.model_dump()
@@ -1,5 +1,6 @@
1
1
  from typing import List
2
- from core.schema import BaseDateTimeSchema, BaseCountSchema
2
+
3
+ from core.schema import BaseCountSchema, BaseDateTimeSchema
3
4
 
4
5
 
5
6
  class PascalZrbEntityNameData(BaseDateTimeSchema):
@@ -11,6 +12,7 @@ class PascalZrbEntityName(PascalZrbEntityNameData):
11
12
 
12
13
  class Config:
13
14
  orm_mode = True
15
+ from_attributes = True
14
16
 
15
17
 
16
18
  class PascalZrbEntityNameResult(BaseCountSchema):
@@ -1,228 +1,198 @@
1
1
  from typing import AsyncIterator
2
- from httpx import AsyncClient
3
- from src.config import app_auth_admin_username, app_auth_admin_password
2
+
4
3
  import pytest
4
+ from httpx import AsyncClient
5
+ from src.config import app_auth_admin_password, app_auth_admin_username
5
6
 
6
7
  inserted_success_data = {
7
- 'snake_zrb_column_name': 'test-kebab-create-entity-name-success'
8
+ "snake_zrb_column_name": "test-kebab-create-entity-name-success"
8
9
  }
9
10
  to_be_updated_success_data = {
10
- 'snake_zrb_column_name': 'test-kebab-zrb-entity-name-to-be-updated-success'
11
+ "snake_zrb_column_name": "test-kebab-zrb-entity-name-to-be-updated-success"
11
12
  }
12
13
  updated_success_data = {
13
- 'snake_zrb_column_name': 'test-kebab-zrb-entity-name-updated-success'
14
+ "snake_zrb_column_name": "test-kebab-zrb-entity-name-updated-success"
14
15
  }
15
16
  to_be_deleted_success_data = {
16
- 'snake_zrb_column_name': 'test-kebab-zrb-entity-name-to-be-deleted-success'
17
+ "snake_zrb_column_name": "test-kebab-zrb-entity-name-to-be-deleted-success"
17
18
  }
18
19
 
19
20
 
20
21
  @pytest.mark.asyncio
21
22
  async def test_insert_snake_zrb_entity_name_and_get_success(
22
- test_client_generator: AsyncIterator[AsyncClient]
23
+ test_client_generator: AsyncIterator[AsyncClient],
23
24
  ):
24
25
  async for client in test_client_generator:
25
26
  # login
26
27
  login_admin_response = await client.post(
27
- '/api/v1/auth/login',
28
+ "/api/v1/auth/login",
28
29
  json={
29
- 'identity': app_auth_admin_username,
30
- 'password': app_auth_admin_password
31
- }
30
+ "identity": app_auth_admin_username,
31
+ "password": app_auth_admin_password,
32
+ },
32
33
  )
33
34
  assert login_admin_response.status_code == 200
34
- admin_access_token = login_admin_response.json().get(
35
- 'access_token', ''
36
- )
35
+ admin_access_token = login_admin_response.json().get("access_token", "")
37
36
 
38
37
  # create snake_zrb_entity_name
39
38
  create_response = await client.post(
40
- '/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name',
39
+ "/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name",
41
40
  json=inserted_success_data,
42
- headers={
43
- 'Authorization': 'Bearer ' + admin_access_token
44
- }
41
+ headers={"Authorization": "Bearer " + admin_access_token},
45
42
  )
46
43
  assert create_response.status_code == 200
47
44
  json_create_response = create_response.json()
48
- create_response_id = json_create_response.get('id', '')
49
- assert create_response_id != ''
45
+ create_response_id = json_create_response.get("id", "")
46
+ assert create_response_id != ""
50
47
 
51
48
  # get_by_id
52
49
  get_by_id_response = await client.get(
53
- f'/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}',
54
- headers={
55
- 'Authorization': 'Bearer ' + admin_access_token
56
- }
50
+ f"/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}",
51
+ headers={"Authorization": "Bearer " + admin_access_token},
57
52
  )
58
53
  assert get_by_id_response.status_code == 200
59
54
  json_get_by_id_response = get_by_id_response.json()
60
- get_by_id_response_id = json_get_by_id_response.get('id', '')
55
+ get_by_id_response_id = json_get_by_id_response.get("id", "")
61
56
  assert get_by_id_response_id == create_response_id
62
57
 
63
58
  # get
64
59
  get_response = await client.get(
65
- '/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name',
66
- headers={
67
- 'Authorization': 'Bearer ' + admin_access_token
68
- }
60
+ "/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name",
61
+ headers={"Authorization": "Bearer " + admin_access_token},
69
62
  )
70
63
  assert get_response.status_code == 200
71
64
  json_get_response = get_response.json()
72
- get_response_count = json_get_response.get('count', '')
65
+ get_response_count = json_get_response.get("count", "")
73
66
  assert get_response_count > 0
74
- get_response_data = json_get_response.get('data', [])
67
+ get_response_data = json_get_response.get("data", [])
75
68
  get_created_response_data = [
76
- row for row in get_response_data
77
- if row['id'] == create_response_id
69
+ row for row in get_response_data if row["id"] == create_response_id
78
70
  ]
79
71
  assert len(get_created_response_data) == 1
80
72
 
81
73
 
82
74
  @pytest.mark.asyncio
83
75
  async def test_update_snake_zrb_entity_name_and_get_success(
84
- test_client_generator: AsyncIterator[AsyncClient]
76
+ test_client_generator: AsyncIterator[AsyncClient],
85
77
  ):
86
78
  async for client in test_client_generator:
87
79
  # login
88
80
  login_admin_response = await client.post(
89
- '/api/v1/auth/login',
81
+ "/api/v1/auth/login",
90
82
  json={
91
- 'identity': app_auth_admin_username,
92
- 'password': app_auth_admin_password,
93
- }
83
+ "identity": app_auth_admin_username,
84
+ "password": app_auth_admin_password,
85
+ },
94
86
  )
95
87
  assert login_admin_response.status_code == 200
96
- admin_access_token = login_admin_response.json().get(
97
- 'access_token', ''
98
- )
88
+ admin_access_token = login_admin_response.json().get("access_token", "")
99
89
 
100
90
  # create snake_zrb_entity_name
101
91
  create_response = await client.post(
102
- '/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name',
92
+ "/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name",
103
93
  json=to_be_updated_success_data,
104
- headers={
105
- 'Authorization': 'Bearer ' + admin_access_token
106
- }
94
+ headers={"Authorization": "Bearer " + admin_access_token},
107
95
  )
108
96
  assert create_response.status_code == 200
109
97
  json_create_response = create_response.json()
110
- create_response_id = json_create_response.get('id', '')
111
- assert create_response_id != ''
98
+ create_response_id = json_create_response.get("id", "")
99
+ assert create_response_id != ""
112
100
 
113
101
  # update snake_zrb_entity_name
114
102
  update_response = await client.put(
115
- f'/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}',
103
+ f"/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}",
116
104
  json=updated_success_data,
117
- headers={
118
- 'Authorization': 'Bearer ' + admin_access_token
119
- }
105
+ headers={"Authorization": "Bearer " + admin_access_token},
120
106
  )
121
107
  assert update_response.status_code == 200
122
108
  json_update_response = update_response.json()
123
- update_response_id = json_update_response.get('id', '')
109
+ update_response_id = json_update_response.get("id", "")
124
110
  assert update_response_id == create_response_id
125
111
 
126
112
  # get_by_id
127
113
  get_by_id_response = await client.get(
128
- f'/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}',
129
- headers={
130
- 'Authorization': 'Bearer ' + admin_access_token
131
- }
114
+ f"/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}",
115
+ headers={"Authorization": "Bearer " + admin_access_token},
132
116
  )
133
117
  assert get_by_id_response.status_code == 200
134
118
  json_get_by_id_response = get_by_id_response.json()
135
- get_by_id_response_id = json_get_by_id_response.get('id', '')
119
+ get_by_id_response_id = json_get_by_id_response.get("id", "")
136
120
  assert get_by_id_response_id == create_response_id
137
121
  for key, expected_value in updated_success_data.items():
138
- actual_value = json_get_by_id_response.get(key, '')
139
- assert f'{key}:{actual_value}' == f'{key}:{expected_value}'
122
+ actual_value = json_get_by_id_response.get(key, "")
123
+ assert f"{key}:{actual_value}" == f"{key}:{expected_value}"
140
124
 
141
125
  # get
142
126
  get_response = await client.get(
143
- '/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name',
144
- headers={
145
- 'Authorization': 'Bearer ' + admin_access_token
146
- }
127
+ "/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name",
128
+ headers={"Authorization": "Bearer " + admin_access_token},
147
129
  )
148
130
  assert get_response.status_code == 200
149
131
  json_get_response = get_response.json()
150
- get_response_count = json_get_response.get('count', '')
132
+ get_response_count = json_get_response.get("count", "")
151
133
  assert get_response_count > 0
152
- get_response_data = json_get_response.get('data', [])
134
+ get_response_data = json_get_response.get("data", [])
153
135
  get_created_response_data = [
154
- row for row in get_response_data
155
- if row['id'] == create_response_id
136
+ row for row in get_response_data if row["id"] == create_response_id
156
137
  ]
157
138
  assert len(get_created_response_data) == 1
158
139
 
159
140
 
160
141
  @pytest.mark.asyncio
161
142
  async def test_delete_snake_zrb_entity_name_and_get_success(
162
- test_client_generator: AsyncIterator[AsyncClient]
143
+ test_client_generator: AsyncIterator[AsyncClient],
163
144
  ):
164
145
  async for client in test_client_generator:
165
146
  # login
166
147
  login_admin_response = await client.post(
167
- '/api/v1/auth/login',
148
+ "/api/v1/auth/login",
168
149
  json={
169
- 'identity': app_auth_admin_username,
170
- 'password': app_auth_admin_password
171
- }
150
+ "identity": app_auth_admin_username,
151
+ "password": app_auth_admin_password,
152
+ },
172
153
  )
173
154
  assert login_admin_response.status_code == 200
174
- admin_access_token = login_admin_response.json().get(
175
- 'access_token', ''
176
- )
155
+ admin_access_token = login_admin_response.json().get("access_token", "")
177
156
 
178
157
  # create snake_zrb_entity_name
179
158
  create_response = await client.post(
180
- '/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name',
159
+ "/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name",
181
160
  json=to_be_deleted_success_data,
182
- headers={
183
- 'Authorization': 'Bearer ' + admin_access_token
184
- }
161
+ headers={"Authorization": "Bearer " + admin_access_token},
185
162
  )
186
163
  assert create_response.status_code == 200
187
164
  json_create_response = create_response.json()
188
- create_response_id = json_create_response.get('id', '')
189
- assert create_response_id != ''
165
+ create_response_id = json_create_response.get("id", "")
166
+ assert create_response_id != ""
190
167
 
191
168
  # create snake_zrb_entity_name
192
169
  delete_response = await client.delete(
193
- f'/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}',
194
- headers={
195
- 'Authorization': 'Bearer ' + admin_access_token
196
- }
170
+ f"/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}",
171
+ headers={"Authorization": "Bearer " + admin_access_token},
197
172
  )
198
173
  assert delete_response.status_code == 200
199
174
  json_delete_response = delete_response.json()
200
- delete_response_id = json_delete_response.get('id', '')
175
+ delete_response_id = json_delete_response.get("id", "")
201
176
  assert delete_response_id == create_response_id
202
177
 
203
178
  # get_by_id
204
179
  get_by_id_response = await client.get(
205
- f'/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}',
206
- headers={
207
- 'Authorization': 'Bearer ' + admin_access_token
208
- }
180
+ f"/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name/{create_response_id}",
181
+ headers={"Authorization": "Bearer " + admin_access_token},
209
182
  )
210
183
  assert get_by_id_response.status_code == 404
211
184
 
212
185
  # get
213
186
  get_response = await client.get(
214
- '/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name',
215
- headers={
216
- 'Authorization': 'Bearer ' + admin_access_token
217
- }
187
+ "/api/v1/snake_zrb_module_name/kebab-zrb-plural-entity-name",
188
+ headers={"Authorization": "Bearer " + admin_access_token},
218
189
  )
219
190
  assert get_response.status_code == 200
220
191
  json_get_response = get_response.json()
221
- get_response_count = json_get_response.get('count', '')
192
+ get_response_count = json_get_response.get("count", "")
222
193
  assert get_response_count > 0
223
- get_response_data = json_get_response.get('data', [])
194
+ get_response_data = json_get_response.get("data", [])
224
195
  get_created_response_data = [
225
- row for row in get_response_data
226
- if row['id'] == create_response_id
196
+ row for row in get_response_data if row["id"] == create_response_id
227
197
  ]
228
198
  assert len(get_created_response_data) == 0