Skip to content
Permalink
Branch: master
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
54 lines (41 sloc) 2.97 KB

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

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

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

Для всех ботов необходимо определить файл 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.