diff --git a/OPI/src/CommonModules/OPI_Тесты/Module.bsl b/OPI/src/CommonModules/OPI_Тесты/Module.bsl index 818c63b0b3..dab34548ac 100644 --- a/OPI/src/CommonModules/OPI_Тесты/Module.bsl +++ b/OPI/src/CommonModules/OPI_Тесты/Module.bsl @@ -65,9 +65,7 @@ // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьИнформациюБота"); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["username"]).Заполнено(); + Проверка_ТелеграмИнформацияБота(Результат); OPI_Инструменты.Пауза(5); @@ -82,9 +80,7 @@ OPI_Telegram.УдалитьWebhook(Токен); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено(); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Массив"); + Проверка_ТелеграмМассив(Результат); OPI_Инструменты.Пауза(5); @@ -98,10 +94,7 @@ // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьWebhook"); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was set"); + Проверка_ТелеграмУстановкаВебхук(Результат); OPI_Инструменты.Пауза(5); @@ -114,10 +107,7 @@ // !OInt OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьWebhook"); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина); - OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was deleted"); + Проверка_ТелеграмУдалениеВебхук(Результат); OPI_Инструменты.Пауза(5); @@ -2635,6 +2625,40 @@ КонецПроцедуры +Процедура Проверка_ТелеграмИнформацияБота(Знач Результат) + + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]["username"]).Заполнено(); + +КонецПроцедуры + +Процедура Проверка_ТелеграмМассив(Результат) + + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие") .Заполнено(); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).ИмеетТип("Массив"); + +КонецПроцедуры + +Процедура Проверка_ТелеграмУстановкаВебхук(Знач Результат) + + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was set"); + +КонецПроцедуры + +Процедура Проверка_ТелеграмУдалениеВебхук(Знач Результат) + + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["ok"]).Равно(Истина); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["result"]).Равно(Истина); + OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["description"]).Равно("Webhook was deleted"); + +КонецПроцедуры + Процедура Проверка_ВКИстина(Знач Результат) OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено(); diff --git a/cli/app.os b/cli/app.os index dc2b0eb2d3..e97fb3aff7 100644 --- a/cli/app.os +++ b/cli/app.os @@ -57,30 +57,36 @@ ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--token" , "Токен" , "Токен бота"); ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--id" , "IDЧата" , "ID чата / ID чата*ID темы"); ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--text" , "Текст" , "Текст сообщения"); + ДобавитьПараметрМетода(ТПМ, "ОтправитьТекстовоеСообщение", "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст"); ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--token" , "Токен" , "Токен бота"); ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы"); ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--text" , "Текст" , "Текст сообщения"); ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--path" , "Картинка" , "Путь к файлу"); + ДобавитьПараметрМетода(ТПМ, "ОтправитьКартинку" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст"); ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--token" , "Токен" , "Токен бота"); ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы"); ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--text" , "Текст" , "Текст сообщения"); + ДобавитьПараметрМетода(ТПМ, "ОтправитьВидео" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст"); ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--token" , "Токен" , "Токен бота"); ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы"); ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--text" , "Текст" , "Текст сообщения"); ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--path" , "Гифка" , "Путь к файлу"); + ДобавитьПараметрМетода(ТПМ, "ОтправитьГифку" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст"); ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--token" , "Токен" , "Токен бота"); ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы"); ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--text" , "Текст" , "Текст сообщения"); ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--path" , "Аудио" , "Путь к файлу"); + ДобавитьПараметрМетода(ТПМ, "ОтправитьАудио" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст"); ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--token" , "Токен" , "Токен бота"); ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--id" , "IDЧата" , "ID чата / ID чата*ID темы"); ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--text" , "Текст" , "Текст сообщения"); ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--path" , "Документ" , "Путь к файлу"); + ДобавитьПараметрМетода(ТПМ, "ОтправитьДокумент" , "--keyboard", "Клавиатура", "JSON клавиатуры / файл .json клавиатуры (необяз.)" , "ОбработатьПараметрТекст"); КонецПроцедуры @@ -252,16 +258,10 @@ Функция ОбработатьВходящийПараметр(Знач Значение, Знач ВидОбработки) - Если ВидОбработки = "СтруктураИзJSONФайла" Тогда - - ЧтениеJSON = Новый ЧтениеJSON; - ЧтениеJSON.ОткрытьФайл(Значение); - ЧтениеJSON.Прочитать(); - - Значение = ПрочитатьJSON(ЧтениеJSON, Истина); - - ЧтениеJSON.Закрыть(); - + Если ВидОбработки = "СоответствиеJSON" Тогда + ОбработатьПараметрJSON(Значение); + ИначеЕсли ВидОбработки = "ТекстовыеДанные" Тогда + ОбработатьПараметрТекст(Значение); Иначе Значение = Строка(Значение); КонецЕсли; @@ -270,6 +270,39 @@ КонецФункции +Процедура ОбработатьПараметрJSON(Значение) + + Файл = Новый Файл(Значение); + ЧтениеJSON = Новый ЧтениеJSON; + + Если Файл.Существует() Тогда + ЧтениеJSON.ОткрытьФайл(Значение); + ЧтениеJSON.Прочитать(); + Иначе + ЧтениеJSON.УстановитьСтроку(СокрЛП(Значение)); + КонецЕсли; + + Значение = ПрочитатьJSON(ЧтениеJSON, Истина, Неопределено, ФорматДатыJSON.ISO); + ЧтениеJSON.Закрыть(); + +КонецПроцедуры + +Процедура ОбработатьПараметрТекст(Значение) + + Файл = Новый Файл(Значение); + + Если Файл.Существует() Тогда + ЧтениеТекста = Новый ЧтениеТекста(Значение); + Значение = ЧтениеТекста.Прочитать(); + ЧтениеТекста.Закрыть(); + Иначе + Значение = Строка(Значение); + КонецЕсли; + + Значение = СокрЛП(Значение); + +КонецПроцедуры + #КонецОбласти #Область Справки @@ -317,9 +350,11 @@ Сообщить(" ## Доступные методы: " + Символы.ПС, СтатусСообщения.Информация); Для каждого Метод Из МассивМетодов Цикл - Сообщить(" - " + Метод + Символы.ПС, СтатусСообщения.Внимание); + Сообщить(" - " + Метод, СтатусСообщения.Внимание); КонецЦикла; + Сообщить(Символы.ПС); + КонецПроцедуры Процедура ВывестиСправкуПоПараметрам(Знач ТаблицаПараметров)