django-slack-tools 0.3.2__tar.gz → 0.3.4__tar.gz

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 (214) hide show
  1. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.devcontainer/devcontainer.json +1 -2
  2. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.github/dependabot.yaml +2 -0
  3. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.github/workflows/ci.yaml +9 -14
  4. django_slack_tools-0.3.4/.github/workflows/docs.yaml +41 -0
  5. django_slack_tools-0.3.4/.github/workflows/prepare-release.yaml +51 -0
  6. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.github/workflows/release.yaml +21 -16
  7. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.pre-commit-config.yaml +8 -15
  8. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.vscode/extensions.json +0 -1
  9. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/CONTRIBUTING.md +1 -1
  10. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/Makefile +0 -4
  11. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/PKG-INFO +6 -7
  12. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/README.md +2 -3
  13. django_slack_tools-0.3.4/docs/index.md +1 -0
  14. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/mkdocs.yaml +6 -2
  15. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/pyproject.toml +5 -9
  16. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/backends/test_dummy.py +1 -1
  17. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/backends/test_logging_.py +1 -1
  18. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/backends/test_slack.py +3 -3
  19. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/test_message_templates.py +2 -2
  20. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/test_middlewares.py +1 -1
  21. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/test_template_loaders.py +1 -1
  22. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/test_shortcuts.py +1 -1
  23. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/test_validators.py +2 -2
  24. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/test_app_settings.py +1 -1
  25. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/slack/test_misc.py +2 -2
  26. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/uv.lock +181 -119
  27. django_slack_tools-0.3.2/.github/workflows/docs.yaml +0 -51
  28. django_slack_tools-0.3.2/docs/index.md +0 -33
  29. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.devcontainer/onCreateCommand.sh +0 -0
  30. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.editorconfig +0 -0
  31. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.gitattributes +0 -0
  32. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.gitignore +0 -0
  33. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.python-version +0 -0
  34. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.vscode/launch.json +0 -0
  35. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/.vscode/settings.json +0 -0
  36. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/LICENSE +0 -0
  37. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/__init__.py +0 -0
  38. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/app_settings.py +0 -0
  39. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/locale/ko_KR/LC_MESSAGES/django.po +0 -0
  40. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/__init__.py +0 -0
  41. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/backends/__init__.py +0 -0
  42. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/backends/base.py +0 -0
  43. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/backends/dummy.py +0 -0
  44. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/backends/logging_.py +0 -0
  45. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/backends/slack.py +0 -0
  46. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/message_templates/__init__.py +0 -0
  47. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/message_templates/base.py +0 -0
  48. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/message_templates/python.py +0 -0
  49. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/messenger.py +0 -0
  50. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/middlewares/__init__.py +0 -0
  51. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/middlewares/base.py +0 -0
  52. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/request.py +0 -0
  53. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/response.py +0 -0
  54. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/shortcuts.py +0 -0
  55. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/template_loaders/__init__.py +0 -0
  56. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/template_loaders/base.py +0 -0
  57. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/messenger/template_loaders/errors.py +0 -0
  58. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/py.typed +0 -0
  59. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_events/__init__.py +0 -0
  60. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_events/views.py +0 -0
  61. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/__init__.py +0 -0
  62. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/admin/__init__.py +0 -0
  63. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/admin/mention.py +0 -0
  64. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/admin/message.py +0 -0
  65. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/admin/message_recipient.py +0 -0
  66. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/admin/messaging_policy.py +0 -0
  67. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/apps.py +0 -0
  68. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/messenger/__init__.py +0 -0
  69. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/messenger/message_templates.py +0 -0
  70. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/messenger/middlewares.py +0 -0
  71. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/messenger/template_loaders.py +0 -0
  72. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/0001_initial.py +0 -0
  73. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/0002_default_policy.py +0 -0
  74. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/0003_default_recipient.py +0 -0
  75. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/0004_slackmessagingpolicy_template_type.py +0 -0
  76. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/0005_alter_slackmessagingpolicy_template_type.py +0 -0
  77. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/0006_alter_slackmessage_id.py +0 -0
  78. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/migrations/__init__.py +0 -0
  79. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/models/__init__.py +0 -0
  80. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/models/mention.py +0 -0
  81. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/models/message.py +0 -0
  82. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/models/message_recipient.py +0 -0
  83. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/models/messaging_policy.py +0 -0
  84. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/shortcuts.py +0 -0
  85. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/tasks.py +0 -0
  86. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/slack_messages/validators.py +0 -0
  87. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/__init__.py +0 -0
  88. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/django/__init__.py +0 -0
  89. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/django/model_mixins.py +0 -0
  90. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/django/widgets.py +0 -0
  91. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/import_helper.py +0 -0
  92. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/repr.py +0 -0
  93. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/slack/__init__.py +0 -0
  94. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/django_slack_tools/utils/slack/misc.py +0 -0
  95. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/docs/api-references/messenger.md +0 -0
  96. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/docs/api-references/slack-messages.md +0 -0
  97. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/docs/quick-start.md +0 -0
  98. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/docs/usages/celery-support.md +0 -0
  99. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/docs/usages/sending-messages.md +0 -0
  100. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/.env.example +0 -0
  101. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/.python-version +0 -0
  102. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/Makefile +0 -0
  103. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/README.md +0 -0
  104. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/docker-compose.yaml +0 -0
  105. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/docs/messages.png +0 -0
  106. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/docs/slack-app-home.png +0 -0
  107. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/docs/slash-command.png +0 -0
  108. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/dump.json +0 -0
  109. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/manage.py +0 -0
  110. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/pyproject.toml +0 -0
  111. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo/__init__.py +0 -0
  112. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo/celery.py +0 -0
  113. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo/settings.py +0 -0
  114. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo/slack_app.py +0 -0
  115. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo/urls.py +0 -0
  116. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo/wsgi.py +0 -0
  117. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/__init__.py +0 -0
  118. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/admin.py +0 -0
  119. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/apps.py +0 -0
  120. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/migrations/0001_initial.py +0 -0
  121. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/migrations/__init__.py +0 -0
  122. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/models.py +0 -0
  123. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/services.py +0 -0
  124. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/signals.py +0 -0
  125. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/slack_listeners.py +0 -0
  126. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/templates/todo-created.xml +0 -0
  127. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/todo_app/templates/todo-updated.xml +0 -0
  128. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/examples/todo/uv.lock +0 -0
  129. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/manage.py +0 -0
  130. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/noxfile.py +0 -0
  131. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/__init__.py +0 -0
  132. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/config/__init__.py +0 -0
  133. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/config/settings.py +0 -0
  134. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/config/slack_app.py +0 -0
  135. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/config/urls.py +0 -0
  136. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/config/wsgi.py +0 -0
  137. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/manage.py +0 -0
  138. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/testproj/templates/greet.xml +0 -0
  139. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/__init__.py +0 -0
  140. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/_factories.py +0 -0
  141. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/_helpers.py +0 -0
  142. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/conftest.py +0 -0
  143. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/__init__.py +0 -0
  144. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/_factories.py +0 -0
  145. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/_helpers.py +0 -0
  146. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/backends/__init__.py +0 -0
  147. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/backends/test_base.py +0 -0
  148. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/message_templates/__init__.py +0 -0
  149. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/message_templates/test_base.py +0 -0
  150. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/message_templates/test_python.py +0 -0
  151. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/middlewares/__init__.py +0 -0
  152. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/middlewares/test_base.py +0 -0
  153. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/template_loaders/__init__.py +0 -0
  154. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/template_loaders/test_base.py +0 -0
  155. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/test_messenger.py +0 -0
  156. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/test_request.py +0 -0
  157. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/test_response.py +0 -0
  158. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/messenger/test_shortcuts.py +0 -0
  159. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_events/__init__.py +0 -0
  160. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_events/test_views.py +0 -0
  161. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/__init__.py +0 -0
  162. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/_factories.py +0 -0
  163. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/admin/__init__.py +0 -0
  164. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/admin/test_mention.py +0 -0
  165. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/admin/test_message.py +0 -0
  166. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/admin/test_message_recipient.py +0 -0
  167. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/admin/test_messaging_policy.py +0 -0
  168. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/__init__.py +0 -0
  169. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/approval.json +0 -0
  170. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/approval.png +0 -0
  171. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/approval.xml +0 -0
  172. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/bullet-list.json +0 -0
  173. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/bullet-list.png +0 -0
  174. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/bullet-list.xml +0 -0
  175. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/complex-template-with-context.xml +0 -0
  176. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/complex-template.json +0 -0
  177. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/complex-template.png +0 -0
  178. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/complex-template.xml +0 -0
  179. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/newsletter.json +0 -0
  180. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/newsletter.png +0 -0
  181. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/newsletter.xml +0 -0
  182. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/notification.json +0 -0
  183. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/notification.png +0 -0
  184. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/notification.xml +0 -0
  185. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/onboarding-1.json +0 -0
  186. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/onboarding-1.png +0 -0
  187. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/onboarding-1.xml +0 -0
  188. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/onboarding-2.json +0 -0
  189. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/onboarding-2.png +0 -0
  190. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/onboarding-2.xml +0 -0
  191. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/poll.json +0 -0
  192. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/poll.png +0 -0
  193. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/poll.xml +0 -0
  194. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/search-results-1.json +0 -0
  195. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/search-results-1.png +0 -0
  196. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/search-results-1.xml +0 -0
  197. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/search-results-2.json +0 -0
  198. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/search-results-2.png +0 -0
  199. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/messenger/testcases/search-results-2.xml +0 -0
  200. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/models/__init__.py +0 -0
  201. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/models/_factories.py +0 -0
  202. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/models/test_mention.py +0 -0
  203. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/models/test_message.py +0 -0
  204. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/models/test_message_recipient.py +0 -0
  205. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/models/test_messaging_policy.py +0 -0
  206. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/test_apps.py +0 -0
  207. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/slack_messages/test_tasks.py +0 -0
  208. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/__init__.py +0 -0
  209. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/django/__init__.py +0 -0
  210. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/django/test_model_mixins.py +0 -0
  211. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/django/test_widgets.py +0 -0
  212. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/slack/__init__.py +0 -0
  213. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/test_import_helper.py +0 -0
  214. {django_slack_tools-0.3.2 → django_slack_tools-0.3.4}/tests/utils/test_repr.py +0 -0
@@ -1,5 +1,5 @@
1
1
  {
2
- "name": "lasuillard/django-slack-tools",
2
+ "name": "lasuillard-s/django-slack-tools",
3
3
  "image": "mcr.microsoft.com/devcontainers/base:1-bookworm",
4
4
  "features": {
5
5
  "ghcr.io/devcontainers-extra/features/pre-commit:2": {},
@@ -21,7 +21,6 @@
21
21
  "tamasfe.even-better-toml",
22
22
  "streetsidesoftware.code-spell-checker",
23
23
  "EditorConfig.EditorConfig",
24
- "VisualStudioExptTeam.vscodeintellicode",
25
24
  "charliermarsh.ruff",
26
25
  "ms-python.mypy-type-checker",
27
26
  "njpwerner.autodocstring",
@@ -9,6 +9,8 @@ updates:
9
9
 
10
10
  - package-ecosystem: uv
11
11
  directory: /
12
+ exclude-paths:
13
+ - "examples/**"
12
14
  schedule:
13
15
  interval: monthly
14
16
  ignore:
@@ -6,21 +6,18 @@ on:
6
6
  pull_request:
7
7
  branches: [main]
8
8
 
9
- permissions: read-all
10
-
11
9
  env:
12
10
  UV_FROZEN: 1
13
11
 
14
12
  jobs:
15
13
  lint:
16
- name: Lint
17
14
  runs-on: ubuntu-latest
15
+ timeout-minutes: 5
16
+ permissions:
17
+ contents: read
18
18
  steps:
19
- - name: Checkout
20
- uses: actions/checkout@v5
21
-
22
- - name: Set up uv
23
- uses: astral-sh/setup-uv@v6
19
+ - uses: actions/checkout@v6
20
+ - uses: astral-sh/setup-uv@v7
24
21
  with:
25
22
  version: latest
26
23
  enable-cache: true
@@ -36,8 +33,9 @@ jobs:
36
33
  if: always()
37
34
 
38
35
  test:
39
- name: Test (Python ${{ matrix.python-version }}, Django ${{ matrix.django-version }})
36
+ name: test (py${{ matrix.python-version }}, django${{ matrix.django-version }})
40
37
  runs-on: ubuntu-latest
38
+ timeout-minutes: 10
41
39
  permissions:
42
40
  contents: read
43
41
  id-token: write
@@ -54,11 +52,8 @@ jobs:
54
52
  django-version: "5.2"
55
53
 
56
54
  steps:
57
- - name: Checkout
58
- uses: actions/checkout@v5
59
-
60
- - name: Set up uv
61
- uses: astral-sh/setup-uv@v6
55
+ - uses: actions/checkout@v6
56
+ - uses: astral-sh/setup-uv@v7
62
57
  with:
63
58
  version: latest
64
59
  enable-cache: true
@@ -0,0 +1,41 @@
1
+ name: Docs
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: [v*]
7
+
8
+ concurrency:
9
+ group: docs
10
+ cancel-in-progress: false
11
+
12
+ env:
13
+ UV_FROZEN: 1
14
+
15
+ jobs:
16
+ docs:
17
+ runs-on: ubuntu-latest
18
+ timeout-minutes: 10
19
+ permissions:
20
+ contents: write
21
+ steps:
22
+ - uses: actions/checkout@v6
23
+ with:
24
+ fetch-depth: 0
25
+
26
+ - uses: astral-sh/setup-uv@v7
27
+ with:
28
+ version: latest
29
+ enable-cache: true
30
+
31
+ - name: Install deps
32
+ run: uv sync
33
+
34
+ - name: Configure Git user
35
+ run: |
36
+ git config --local user.email "github-actions[bot]@github.com"
37
+ git config --local user.name "GitHub Action"
38
+
39
+ - name: Build docs
40
+ run: |
41
+ uv run mike deploy --push "${{ github.ref_name }}"
@@ -0,0 +1,51 @@
1
+ name: Prepare Release
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ tag:
7
+ description: Semver-style tag for release (e.g., v1.0.0)
8
+ required: true
9
+
10
+ jobs:
11
+ create-pr:
12
+ runs-on: ubuntu-latest
13
+ timeout-minutes: 5
14
+ permissions:
15
+ contents: write
16
+ pull-requests: write
17
+ steps:
18
+ - name: Check tag format
19
+ run: |
20
+ if [[ ! "${{ inputs.tag }}" =~ ^v ]]; then
21
+ echo "Tag must start with 'v'"
22
+ exit 1
23
+ fi
24
+
25
+ - uses: actions/checkout@v6
26
+ - uses: astral-sh/setup-uv@v7
27
+ with:
28
+ version: latest
29
+ enable-cache: true
30
+
31
+ - name: Set version
32
+ run: |
33
+ tag="${{ inputs.tag }}"
34
+ tag_no_v="${tag#v}"
35
+ uv version "${tag#v}"
36
+
37
+ - name: Generate GitHub App token
38
+ uses: actions/create-github-app-token@v2
39
+ id: generate-token
40
+ with:
41
+ app-id: ${{ vars.GH_APP_ID }}
42
+ private-key: ${{ secrets.GH_APP_PRIVATE_KEY }}
43
+
44
+ - name: Create pull request
45
+ uses: peter-evans/create-pull-request@v8.1.0
46
+ with:
47
+ token: ${{ steps.generate-token.outputs.token }}
48
+ sign-commits: true
49
+ title: Release ${{ inputs.tag }}
50
+ branch: release/${{ inputs.tag }}
51
+ delete-branch: true
@@ -1,24 +1,21 @@
1
1
  name: Release
2
2
 
3
3
  on:
4
- push:
5
- tags: [v*]
4
+ release:
5
+ types: [published]
6
6
 
7
7
  env:
8
8
  UV_FROZEN: 1
9
9
 
10
10
  jobs:
11
11
  release:
12
- name: Release
13
12
  runs-on: ubuntu-latest
13
+ timeout-minutes: 5
14
14
  permissions:
15
15
  contents: write
16
16
  steps:
17
- - name: Checkout
18
- uses: actions/checkout@v5
19
-
20
- - name: Set up uv
21
- uses: astral-sh/setup-uv@v6
17
+ - uses: actions/checkout@v6
18
+ - uses: astral-sh/setup-uv@v7
22
19
  with:
23
20
  version: latest
24
21
  enable-cache: true
@@ -30,31 +27,39 @@ jobs:
30
27
  run: uv build
31
28
 
32
29
  - name: Create release
33
- uses: softprops/action-gh-release@v2
30
+ uses: softprops/action-gh-release@v2.5.0
34
31
  with:
32
+ tag_name: ${{ github.event.release.tag_name }}
35
33
  generate_release_notes: true
36
34
  files: dist/*
37
35
 
36
+ - name: Show files
37
+ run: ls -l --all --recursive dist
38
+
38
39
  - name: Upload release distributions
39
- uses: actions/upload-artifact@v4
40
+ uses: actions/upload-artifact@v6
40
41
  with:
41
42
  name: release-dists
42
43
  path: dist/
43
44
 
44
45
  publish-pypi:
45
- name: Publish to PyPI
46
+ needs: release
46
47
  runs-on: ubuntu-latest
47
- needs:
48
- - release
48
+ environment: pypi
49
+ timeout-minutes: 5
49
50
  permissions:
50
51
  id-token: write
51
- environment: pypi
52
52
  steps:
53
- - name: Retrieve release distributions
54
- uses: actions/download-artifact@v5
53
+ - name: Download release distributions
54
+ uses: actions/download-artifact@v7
55
55
  with:
56
56
  name: release-dists
57
57
  path: dist/
58
58
 
59
+ - name: Show artifacts
60
+ run: ls -l --all --recursive dist
61
+
59
62
  - name: Publish release distributions to PyPI
60
63
  uses: pypa/gh-action-pypi-publish@release/v1
64
+ with:
65
+ skip-existing: true
@@ -7,24 +7,17 @@ repos:
7
7
  - id: trailing-whitespace
8
8
  - id: end-of-file-fixer
9
9
 
10
- - repo: https://github.com/lasuillard/pre-commit-hooks
11
- rev: v0.4.1
10
+ - repo: https://github.com/lasuillard-s/devobs
11
+ rev: v0.2.1
12
12
  hooks:
13
- - id: source-matching-test
13
+ - id: check-file-pair
14
14
  args:
15
- - --source
16
- - django_slack_tools
15
+ - --from=pulumi_extra
16
+ - --to=tests
17
+ - --include=*.py
18
+ - --exclude=errors.py,**/migrations/*.py
19
+ - --expect={to}/{relative_from}/test_{filename}
17
20
  - --create-if-not-exists
18
- - --extend-exclude
19
- - "**/migrations/*.py"
20
- - --extend-exclude
21
- - "**/errors.py"
22
- - id: test-matching-source
23
- args:
24
- - --target
25
- - django_slack_tools
26
- - id: preferred-suffix
27
- args: [--rename]
28
21
 
29
22
  - repo: local
30
23
  hooks:
@@ -8,7 +8,6 @@
8
8
  "tamasfe.even-better-toml",
9
9
  "streetsidesoftware.code-spell-checker",
10
10
  "EditorConfig.EditorConfig",
11
- "VisualStudioExptTeam.vscodeintellicode",
12
11
  "charliermarsh.ruff",
13
12
  "ms-python.mypy-type-checker",
14
13
  "njpwerner.autodocstring",
@@ -1,6 +1,6 @@
1
1
  # 💝 Contributing
2
2
 
3
- Thank you for your interest in contributing to our project. Before contributing, please check [existing issues](https://github.com/lasuillard/django-slack-tools/issues). If there is a bug or feature that is not listed, create a new issue and make changes on it.
3
+ Thank you for your interest in contributing to our project. Before contributing, please check [existing issues](https://github.com/lasuillard-s/django-slack-tools/issues). If there is a bug or feature that is not listed, create a new issue and make changes on it.
4
4
 
5
5
  ## ⚙️ Developing
6
6
 
@@ -68,10 +68,6 @@ test: ## Run tests
68
68
  uv run coverage html
69
69
  .PHONY: test
70
70
 
71
- docs: ## Generate dev documents
72
- uv run mkdocs build
73
- .PHONY: docs
74
-
75
71
 
76
72
  # =============================================================================
77
73
  # Handy Scripts
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: django-slack-tools
3
- Version: 0.3.2
3
+ Version: 0.3.4
4
4
  Summary: Little helpers working with Slack bot 🤖 in Django.
5
- Project-URL: Homepage, https://github.com/lasuillard/django-slack-tools
6
- Project-URL: Repository, https://github.com/lasuillard/django-slack-tools.git
7
- Project-URL: Issues, https://github.com/lasuillard/django-slack-tools/issues
5
+ Project-URL: Homepage, https://github.com/lasuillard-s/django-slack-tools
6
+ Project-URL: Repository, https://github.com/lasuillard-s/django-slack-tools.git
7
+ Project-URL: Issues, https://github.com/lasuillard-s/django-slack-tools/issues
8
8
  Author-email: Yuchan Lee <lasuillard@gmail.com>
9
9
  License-Expression: MIT
10
10
  License-File: LICENSE
@@ -20,8 +20,7 @@ Description-Content-Type: text/markdown
20
20
  # django-slack-tools
21
21
 
22
22
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
23
- [![CI](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml)
24
- [![codecov](https://codecov.io/gh/lasuillard/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard/django-slack-tools)
23
+ [![codecov](https://codecov.io/gh/lasuillard-s/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard-s/django-slack-tools)
25
24
  [![PyPI - Version](https://img.shields.io/pypi/v/django-slack-tools)](https://pypi.org/project/django-slack-tools/)
26
25
 
27
26
  Little helpers working with Slack bot 🤖 in Django.
@@ -58,7 +57,7 @@ Please check the [documentation](https://lasuillard.github.io/django-slack-tools
58
57
 
59
58
  ## 💖 Contributing
60
59
 
61
- All contributions and helps are welcome. Please check the [CONTRIBUTING.md](./CONTRIBUTING.md) file for about details.
60
+ All contributions and helps are welcome. Please check the [CONTRIBUTING.md](/CONTRIBUTING.md) file for about details.
62
61
 
63
62
  ## 📜 License
64
63
 
@@ -1,8 +1,7 @@
1
1
  # django-slack-tools
2
2
 
3
3
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
4
- [![CI](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml/badge.svg)](https://github.com/lasuillard/django-slack-tools/actions/workflows/ci.yaml)
5
- [![codecov](https://codecov.io/gh/lasuillard/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard/django-slack-tools)
4
+ [![codecov](https://codecov.io/gh/lasuillard-s/django-slack-tools/graph/badge.svg?token=c8kzjqjplF)](https://codecov.io/gh/lasuillard-s/django-slack-tools)
6
5
  [![PyPI - Version](https://img.shields.io/pypi/v/django-slack-tools)](https://pypi.org/project/django-slack-tools/)
7
6
 
8
7
  Little helpers working with Slack bot 🤖 in Django.
@@ -39,7 +38,7 @@ Please check the [documentation](https://lasuillard.github.io/django-slack-tools
39
38
 
40
39
  ## 💖 Contributing
41
40
 
42
- All contributions and helps are welcome. Please check the [CONTRIBUTING.md](./CONTRIBUTING.md) file for about details.
41
+ All contributions and helps are welcome. Please check the [CONTRIBUTING.md](/CONTRIBUTING.md) file for about details.
43
42
 
44
43
  ## 📜 License
45
44
 
@@ -0,0 +1 @@
1
+ ../README.md
@@ -1,6 +1,6 @@
1
1
  site_name: django-slack-tools
2
- repo_url: https://github.com/lasuillard/django-slack-tools
3
- repo_name: lasuillard/django-slack-tools
2
+ repo_url: https://github.com/lasuillard-s/django-slack-tools
3
+ repo_name: lasuillard-s/django-slack-tools
4
4
  theme:
5
5
  name: material
6
6
  icon:
@@ -14,6 +14,7 @@ plugins:
14
14
  filters:
15
15
  - "!^_[^_]"
16
16
  - search
17
+ - mike
17
18
  nav:
18
19
  - Introduction: index.md
19
20
  - Quick Start: quick-start.md
@@ -34,3 +35,6 @@ markdown_extensions:
34
35
  - pymdownx.inlinehilite
35
36
  - pymdownx.snippets
36
37
  - pymdownx.superfences
38
+ extra:
39
+ version:
40
+ provider: mike
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "django-slack-tools"
3
- version = "0.3.2"
3
+ version = "0.3.4"
4
4
  description = "Little helpers working with Slack bot 🤖 in Django."
5
5
  authors = [{ name = "Yuchan Lee", email = "lasuillard@gmail.com" }]
6
6
  readme = "README.md"
@@ -27,8 +27,7 @@ dev = [
27
27
  "mkdocstrings[python]~=0.26",
28
28
  "mypy~=1.11",
29
29
  "ruff~=0.6",
30
- ]
31
- test = [
30
+ "mike>=2.1.3",
32
31
  "coverage~=7.3",
33
32
  "django-coverage-plugin~=3.1",
34
33
  "factory-boy~=3.3",
@@ -42,9 +41,9 @@ test = [
42
41
  ]
43
42
 
44
43
  [project.urls]
45
- Homepage = "https://github.com/lasuillard/django-slack-tools"
46
- Repository = "https://github.com/lasuillard/django-slack-tools.git"
47
- Issues = "https://github.com/lasuillard/django-slack-tools/issues"
44
+ Homepage = "https://github.com/lasuillard-s/django-slack-tools"
45
+ Repository = "https://github.com/lasuillard-s/django-slack-tools.git"
46
+ Issues = "https://github.com/lasuillard-s/django-slack-tools/issues"
48
47
 
49
48
  [build-system]
50
49
  requires = ["hatchling"]
@@ -53,9 +52,6 @@ build-backend = "hatchling.build"
53
52
  [tool.hatch.build.targets.wheel]
54
53
  packages = ["django_slack_tools"]
55
54
 
56
- [tool.uv]
57
- default-groups = ["dev", "test"]
58
-
59
55
  [tool.ruff]
60
56
  target-version = "py39"
61
57
  lint.select = ["ALL"]
@@ -44,5 +44,5 @@ class TestDummyBackend:
44
44
  header=MessageHeader(),
45
45
  body=None,
46
46
  )
47
- with pytest.raises(ValueError, match="Message body is required."):
47
+ with pytest.raises(ValueError, match=r"Message body is required."):
48
48
  backend.deliver(request)
@@ -44,5 +44,5 @@ class TestLoggingBackend:
44
44
  header=MessageHeader(),
45
45
  body=None,
46
46
  )
47
- with pytest.raises(ValueError, match="Message body is required."):
47
+ with pytest.raises(ValueError, match=r"Message body is required."):
48
48
  backend.deliver(request)
@@ -41,7 +41,7 @@ class TestSlackBackend:
41
41
  assert SlackBackend(slack_app=_slack_app)
42
42
  with pytest.raises(
43
43
  TypeError,
44
- match="Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
44
+ match=r"Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
45
45
  ):
46
46
  SlackBackend(slack_app="tests.messenger.backends.test_slack._not_slack_app")
47
47
 
@@ -74,7 +74,7 @@ class TestSlackBackend:
74
74
  header=MessageHeader(),
75
75
  body=None,
76
76
  )
77
- with pytest.raises(ValueError, match="Message body is required."):
77
+ with pytest.raises(ValueError, match=r"Message body is required."):
78
78
  backend.deliver(request)
79
79
 
80
80
  def test_deliver_remote_api_error(self, backend: SlackBackend, mock_slack_client: Mock) -> None:
@@ -158,7 +158,7 @@ class TestSlackRedirectBackend:
158
158
  header=MessageHeader(),
159
159
  body=None,
160
160
  )
161
- with pytest.raises(ValueError, match="Message body is required."):
161
+ with pytest.raises(ValueError, match=r"Message body is required."):
162
162
  backend.deliver(request)
163
163
 
164
164
  def test_deliver_remote_api_error(self, backend: SlackRedirectBackend, mock_slack_client: Mock) -> None:
@@ -17,11 +17,11 @@ def data_dir() -> Path:
17
17
  class TestDjangoTemplate:
18
18
  def test_instance_creation(self) -> None:
19
19
  # Mutually exclusive arguments provided
20
- with pytest.raises(TypeError, match="Exactly one of 'file' or 'inline' must be provided."):
20
+ with pytest.raises(TypeError, match=r"Exactly one of 'file' or 'inline' must be provided."):
21
21
  DjangoTemplate(file="whatever.xml", inline="<whatever>Whatever</whatever>") # type: ignore[call-overload]
22
22
 
23
23
  # Unsupported file extension
24
- with pytest.raises(TemplateDoesNotExist, match="template-does-not-exists.xml"):
24
+ with pytest.raises(TemplateDoesNotExist, match=r"template-does-not-exists.xml"):
25
25
  DjangoTemplate(file="template-does-not-exists.xml")
26
26
 
27
27
  @pytest.mark.parametrize(
@@ -78,7 +78,7 @@ class TestDjangoDatabasePersister:
78
78
  DjangoDatabasePersister(slack_app=None, get_permalink=False)
79
79
  with pytest.raises(
80
80
  ValueError,
81
- match="`slack_app` must be an instance of `App` if `get_permalink` is set `True`.",
81
+ match=r"`slack_app` must be an instance of `App` if `get_permalink` is set `True`.",
82
82
  ):
83
83
  DjangoDatabasePersister(slack_app=None, get_permalink=True)
84
84
 
@@ -126,5 +126,5 @@ class TestDjangoPolicyTemplateLoader:
126
126
  )
127
127
 
128
128
  loader = DjangoPolicyTemplateLoader()
129
- with pytest.raises(ValueError, match="Unsupported template type: '?'"):
129
+ with pytest.raises(ValueError, match=r"Unsupported template type: '?'"):
130
130
  loader.load("TEST")
@@ -134,7 +134,7 @@ def test_slack_message_mutually_exclusive_arguments(mock_slack_client: Mock) ->
134
134
  mock_slack_client.chat_postMessage.return_value = SlackMessageResponseFactory()
135
135
 
136
136
  # Act & Assert
137
- with pytest.raises(ValueError, match="Either `template` or `message` must be set, but not both."):
137
+ with pytest.raises(ValueError, match=r"Either `template` or `message` must be set, but not both."):
138
138
  slack_message( # type: ignore[call-overload]
139
139
  "whatever-channel",
140
140
  message="Hello, World!",
@@ -16,7 +16,7 @@ def test_header_validator() -> None:
16
16
  "unfurl_media": None,
17
17
  },
18
18
  )
19
- with pytest.raises(ValidationError, match=".+"):
19
+ with pytest.raises(ValidationError, match=r".+"):
20
20
  header_validator(
21
21
  {
22
22
  "_unknown_": "Give me an error",
@@ -37,5 +37,5 @@ def test_body_validator() -> None:
37
37
  "username": None,
38
38
  },
39
39
  )
40
- with pytest.raises(ValidationError, match=".+"):
40
+ with pytest.raises(ValidationError, match=r".+"):
41
41
  body_validator({})
@@ -145,7 +145,7 @@ class TestAppSettings:
145
145
  def test_bad_config_not_slack_app(self) -> None:
146
146
  with pytest.raises(
147
147
  ImproperlyConfigured,
148
- match="Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
148
+ match=r"Expected <class 'slack_bolt.app.app.App'> instance, got <class 'int'>",
149
149
  ):
150
150
  AppSettings.from_dict(
151
151
  {
@@ -4,10 +4,10 @@ from django_slack_tools.utils.slack import get_block_kit_builder_url
4
4
 
5
5
 
6
6
  def test_get_block_kit_builder_url() -> None:
7
- with pytest.raises(ValueError, match="Only one of `blocks` or `attachments` should be provided."):
7
+ with pytest.raises(ValueError, match=r"Only one of `blocks` or `attachments` should be provided."):
8
8
  get_block_kit_builder_url()
9
9
 
10
- with pytest.raises(ValueError, match="Only one of `blocks` or `attachments` should be provided."):
10
+ with pytest.raises(ValueError, match=r"Only one of `blocks` or `attachments` should be provided."):
11
11
  get_block_kit_builder_url(blocks=[], attachments=[])
12
12
 
13
13
  payload = [