chore: база
This commit is contained in:
1 parent
93790da617
commit
5f53cadf89
39 files changed
+1458
-19
No files matched your search
@@ -3,3 +3,6 @@ from django.apps import AppConfig
|
||||
|
||||
class AppConfig(AppConfig):
|
||||
name = 'App'
|
||||
|
||||
def ready(self):
|
||||
from . import bot # noqa: F401 регистрирует интерфейс бота
|
||||
@@ -0,0 +1,39 @@
|
||||
from Telegram.interfaces import Interface, command, register, text
|
||||
|
||||
MAIN_MENU = 'главное меню'
|
||||
CANCEL = 'отмена'
|
||||
FAQ = 'ФАК'
|
||||
ADD_SERVER = 'добавить сервер'
|
||||
HELP = 'помощь'
|
||||
|
||||
MAIN_KEYBOARD = [[FAQ, ADD_SERVER, HELP]]
|
||||
|
||||
|
||||
@register
|
||||
class MyPointInterface(Interface):
|
||||
title = 'MyPoint VPN'
|
||||
|
||||
@command('start')
|
||||
@text(MAIN_MENU, CANCEL)
|
||||
def main_menu(self, ctx):
|
||||
ctx.reset()
|
||||
# TODO: перечислить серверы пользователя и добавить кнопку "управление сервером", когда появится модель данных
|
||||
ctx.reply('привет. выбери действие', keyboard=MAIN_KEYBOARD)
|
||||
|
||||
@text(FAQ)
|
||||
def faq(self, ctx):
|
||||
# TODO: текст FAQ
|
||||
ctx.reply('FAQ пока пуст')
|
||||
|
||||
@text(HELP)
|
||||
def help(self, ctx):
|
||||
# TODO: текст помощи
|
||||
ctx.reply('Помощь пока пуста')
|
||||
|
||||
@text(ADD_SERVER)
|
||||
def add_server(self, ctx):
|
||||
# TODO: меню добавления сервера, когда появится модель данных App
|
||||
ctx.reply('Добавление сервера пока не реализовано')
|
||||
|
||||
def fallback(self, ctx):
|
||||
ctx.reply('Не понял. Воспользуйся кнопками меню.', keyboard=MAIN_KEYBOARD)
|
||||
@@ -0,0 +1,18 @@
|
||||
from django.test import TestCase
|
||||
|
||||
from Telegram import interfaces
|
||||
from Telegram.dispatcher import handle_update
|
||||
from Telegram.models import Bot
|
||||
from Telegram.tests import FakeApi, message_update
|
||||
|
||||
from .bot import MAIN_KEYBOARD, MyPointInterface
|
||||
|
||||
|
||||
class MyPointInterfaceTests(TestCase):
|
||||
def test_start_and_main_menu_button_are_same(self):
|
||||
api = FakeApi()
|
||||
bot = Bot.objects.create(token='1:test', interface=interfaces.key(MyPointInterface))
|
||||
handle_update(api, bot, message_update(1, '/start'))
|
||||
handle_update(api, bot, message_update(2, 'главное меню'))
|
||||
self.assertEqual(api.sent[0][1], api.sent[1][1])
|
||||
self.assertEqual([button['text'] for button in api.sent[0][2].keyboard[0]], MAIN_KEYBOARD[0])
|
||||
Reference in new issue
Block a user