Skip to content
Branch: master
Find file History
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
.gitignore
README.md
bot_configparser.py
requirements.in
requirements.txt
run_bot_tests.py

README.md

Автоматическое тестирование ботов

Для ботов поддерживаются конфиги, которые описывают базовую информацию о боте и его тест кейсы.

В будущем, по нему же, возможно, будет происходить автоматическая регистрация бота.

Для всех ботов необходимо определить файл bot-spec.yml.

Пример конфига для карма-бота:

# bot_name - имя бота, которое будет использоваться для построение URL
# до этого бота. Обязательное поле.
bot_name: "karma-bot"

# Значение ключа `bot`, которые должно приходить в успешном ответе бота вместе
# с текстом ответа. Необязательное поле, по умолчанию равно bot_name.
bot_display_name: "karma-bot"

# Значения по умолчанию username и display_name пользователя, от имени которого
# будут рассылаться тестовые сообщения боту.
# Если эти данные не влияют на содержимое ответа, то можно не указывать эту секцию.
defaults:
  username: "test-user"
  display_name: "Test User"

# Список команд, для которых бот должен отвечать с HTTP кодом 417
ignored_commands:
  - "Ignored message 1"
  - "Ignored message 2"
  - "Ignored message 3"

# Список команд, для которых бот должен отвечать с HTTP кодом 201
# и ответом вида {"bot": "karma-bot", "text": "текст ответа"}
test_cases:
  - command: "/karma selevit"
    # result - ожидаемый ответ бота. Является регулярным выражением (передается в re.compile).
    # стоит быть внимательным с экранированием спецсимволов, особенно круглых скобо и бекслешей.
    result: "^Карма пользователя @selevit: \\d+.$"

  # содержимое command может быть как строкой, так и словарем.
  # если это строка, то значения username и display_name берутся по умолчанию
  # если вы хотите проверить конкретный кейс с особыми username и display_name,
  # то можно указать эти данные как в примере ниже.
  - command:
      username: "selevit"
      text: "selevit +1"
    result: "^Вы не можете изменять свою карму!$"

  - command: "selevit++"
    result: "^Карма пользователя @selevit увеличена \\(текущее значение: \\d+\\).$"
You can’t perform that action at this time.