mirror of
https://github.com/Bayselonarrend/OpenIntegrations.git
synced 2025-01-26 05:37:27 +02:00
Преобразование OPI -> OInt (workflow)
This commit is contained in:
parent
ac413d1fa5
commit
2f3acf62de
44
.github/workflows/oint_test.yml
vendored
44
.github/workflows/oint_test.yml
vendored
@ -623,6 +623,48 @@ jobs:
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ГД_СоздатьКаталог"
|
||||
|
||||
|
||||
Testing-GoogleSheets:
|
||||
runs-on: ubuntu-latest
|
||||
needs: Testing-GoogleWorkspace
|
||||
steps:
|
||||
|
||||
- uses: actions/checkout@v2
|
||||
- uses: otymko/setup-onescript@v1.4
|
||||
with:
|
||||
version: 1.9.0
|
||||
|
||||
- name: Получить тестовые данные из кэша
|
||||
uses: actions/cache/restore@v3
|
||||
with:
|
||||
key: test-data
|
||||
path: ./data.json
|
||||
|
||||
- name: Установить asserts и 1testrunner
|
||||
run: |
|
||||
opm install asserts
|
||||
opm install 1testrunner
|
||||
|
||||
- name: Установить OInt
|
||||
run: |
|
||||
cd ./OInt
|
||||
opm build
|
||||
opm install *.ospx
|
||||
|
||||
|
||||
|
||||
- name: Создать таблицу
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ГТ_СоздатьТаблицу"
|
||||
|
||||
- name: Получить таблицу
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ГТ_ПолучитьТаблицу"
|
||||
|
||||
- name: Заполнить/Очистить ячейки
|
||||
if: ${{ cancelled() }} == false
|
||||
run: oscript /home/runner/.local/share/ovm/current/lib/1testrunner/src/main.os -run ./OInt/tests/Modules/internal/OPI_Тесты.os "ГТ_ЗаполнитьОчиститьЯчейки"
|
||||
|
||||
|
||||
Testing-Notion:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Decode, Build]
|
||||
@ -811,7 +853,7 @@ jobs:
|
||||
|
||||
Clear-Cache:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-Notion, Testing-Slack, Encode]
|
||||
needs: [Testing-Telegram, Testing-VK, Testing-Viber, Testing-Twitter, Testing-YandexDisk, Testing-GoogleWorkspace, Testing-GoogleCalendar, Testing-GoogleDrive, Testing-GoogleSheets, Testing-Notion, Testing-Slack, Encode]
|
||||
if: ${{ always() }}
|
||||
steps:
|
||||
- name: Очистка основного кэша
|
||||
|
@ -40,13 +40,18 @@
|
||||
// ClientID - Строка - Client ID - id
|
||||
// Calendar - Булево - разрешение на методы Calendar - calendar
|
||||
// Drive - Булево - разрешение на методы Drive - drive
|
||||
// Sheets - Булево - разрешение на методы Sheets - sheets
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - Ссылка получения кода
|
||||
Функция СформироватьСсылкуПолученияКода(Знач ClientID, Знач Calendar = Истина, Знач Drive = Истина) Экспорт
|
||||
Функция СформироватьСсылкуПолученияКода(Знач ClientID
|
||||
, Знач Calendar = Истина
|
||||
, Знач Drive = Истина
|
||||
, Знач Sheets = Истина) Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(ClientID);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Calendar);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Sheets);
|
||||
OPI_ПреобразованиеТипов.ПолучитьБулево(Drive);
|
||||
|
||||
URL = "https://accounts.google.com/o/oauth2/auth";
|
||||
@ -56,7 +61,7 @@
|
||||
ПараметрыURL.Вставить("client_id" , ClientID);
|
||||
ПараметрыURL.Вставить("redirect_uri" , "http://localhost");
|
||||
ПараметрыURL.Вставить("access_type" , "offline");
|
||||
ПараметрыURL.Вставить("scope" , ПолучитьСписокРазрешений(Calendar, Drive));
|
||||
ПараметрыURL.Вставить("scope" , ПолучитьСписокРазрешений(Calendar, Drive, Sheets));
|
||||
|
||||
URL = URL + OPI_Инструменты.ПараметрыЗапросаВСтроку(ПараметрыURL);
|
||||
|
||||
@ -144,7 +149,7 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИфункции
|
||||
|
||||
Функция ПолучитьСписокРазрешений(Calendar, Drive)
|
||||
Функция ПолучитьСписокРазрешений(Calendar, Drive, Sheets)
|
||||
|
||||
МассивРазрешений = Новый Массив;
|
||||
|
||||
@ -156,6 +161,10 @@
|
||||
МассивРазрешений.Добавить("https://www.googleapis.com/auth/drive");
|
||||
КонецЕсли;
|
||||
|
||||
Если Sheets Тогда
|
||||
МассивРазрешений.Добавить("https://www.googleapis.com/auth/spreadsheets");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат СтрСоединить(МассивРазрешений, " ");
|
||||
|
||||
КонецФункции
|
||||
|
@ -61,16 +61,23 @@
|
||||
// Выполняет запрос /getUpdates, возвращающий информацию о событиях бота. Используется при работе в polling режиме
|
||||
//
|
||||
// Параметры:
|
||||
// Токен - Строка - Токен бота - token
|
||||
// Токен - Строка - Токен бота - token
|
||||
// Таймаут - Строка,Число - Время ожидания новых событий - timeout
|
||||
// Смещение - Строка,Число - Смещение в списке получаемых сообщений - offset
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Telegram
|
||||
Функция ПолучитьОбновления(Знач Токен) Экспорт
|
||||
Функция ПолучитьОбновления(Знач Токен, Знач Таймаут = 0, Знач Смещение = "") Экспорт
|
||||
|
||||
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);
|
||||
|
||||
URL = "api.telegram.org/bot" + Токен + "/getUpdates";
|
||||
Ответ = OPI_Инструменты.Get(URL);
|
||||
|
||||
Параметры = Новый Структура;
|
||||
OPI_Инструменты.ДобавитьПоле("timeout", Таймаут , "Строка", Параметры);
|
||||
OPI_Инструменты.ДобавитьПоле("offset" , Смещение, "Строка", Параметры);
|
||||
|
||||
Ответ = OPI_Инструменты.Get(URL, Параметры);
|
||||
Возврат Ответ;
|
||||
|
||||
КонецФункции
|
||||
|
@ -2472,6 +2472,144 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область GoogleSheets
|
||||
|
||||
Процедура ГТ_СоздатьТаблицу() Экспорт
|
||||
|
||||
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
|
||||
Наименование = "Тестовая таблица";
|
||||
|
||||
МассивЛистов = Новый Массив;
|
||||
МассивЛистов.Добавить("Лист1");
|
||||
МассивЛистов.Добавить("Лист2");
|
||||
|
||||
Результат = OPI_GoogleSheets.СоздатьКнигу(Токен, Наименование, МассивЛистов);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКнигу");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);
|
||||
|
||||
Для Н = 0 По МассивЛистов.ВГраница() Цикл
|
||||
|
||||
ИмяЛиста = Результат["sheets"][Н]["properties"]["title"];
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ИмяЛиста).Равно(МассивЛистов[Н]);
|
||||
Лист = Результат["sheets"][Н]["properties"]["sheetId"];
|
||||
Лист = OPI_Инструменты.ЧислоВСтроку(Лист);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Книга = Результат["spreadsheetId"];
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GS_Spreadsheet", Книга);
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("GS_Sheet" , Лист);
|
||||
|
||||
Результат = OPI_GoogleSheets.СоздатьКнигу(Токен, Наименование, МассивЛистов);
|
||||
Книга2 = Результат["spreadsheetId"];
|
||||
|
||||
Результат = OPI_GoogleSheets.КопироватьЛист(Токен, Книга, Книга2, Лист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьЛист");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["title"]).Равно(ИмяЛиста + " (копия)");
|
||||
|
||||
Наименование = "Тестовый лист";
|
||||
|
||||
Результат = OPI_GoogleSheets.ДобавитьЛист(Токен, Книга, Наименование);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ДобавитьЛист");
|
||||
|
||||
НовыйЛист = Результат["replies"][0]["addSheet"]["properties"]["sheetId"];
|
||||
НовыйЛист = OPI_Инструменты.ЧислоВСтроку(НовыйЛист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
|
||||
Результат = OPI_GoogleSheets.УдалитьЛист(Токен, Книга, НовыйЛист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьЛист");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
|
||||
Наименование = "Тестовая таблица (изм.)";
|
||||
|
||||
Результат = OPI_GoogleSheets.ИзменитьНаименованиеКниги(Токен, Книга, Наименование);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ИзменитьНаименованиеКниги");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ГТ_ПолучитьТаблицу() Экспорт
|
||||
|
||||
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
|
||||
Книга = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GS_Spreadsheet");
|
||||
Наименование = "Тестовая таблица";
|
||||
|
||||
Результат = OPI_GoogleSheets.ПолучитьКнигу(Токен, Книга);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаблицу");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["properties"]["title"]).Равно(Наименование);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ГТ_ЗаполнитьОчиститьЯчейки() Экспорт
|
||||
|
||||
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Google_Token");
|
||||
Книга = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("GS_Spreadsheet");
|
||||
Лист = "Лист2";
|
||||
|
||||
СтруктураЯчеек = Новый Соответствие;
|
||||
СтруктураЯчеек.Вставить("A1", "Это A1");
|
||||
СтруктураЯчеек.Вставить("A2", "Это A2");
|
||||
СтруктураЯчеек.Вставить("B2", "Это B2");
|
||||
СтруктураЯчеек.Вставить("B3", "Это B3");
|
||||
СтруктураЯчеек.Вставить("A3", "Это A3");
|
||||
СтруктураЯчеек.Вставить("A4", "Это A4");
|
||||
СтруктураЯчеек.Вставить("B1", "Это B1");
|
||||
СтруктураЯчеек.Вставить("B4", "Это B4");
|
||||
|
||||
МассивЯчеек = Новый Массив;
|
||||
МассивЯчеек.Добавить("B2");
|
||||
МассивЯчеек.Добавить("A3");
|
||||
МассивЯчеек.Добавить("B4");
|
||||
|
||||
Результат = OPI_GoogleSheets.УстановитьЗначенияЯчеек(Токен, Книга, СтруктураЯчеек, Лист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УстановитьЗначенияЯчеек");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["totalUpdatedCells"]).Равно(СтруктураЯчеек.Количество());
|
||||
|
||||
Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, МассивЯчеек, Лист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗначенияЯчеек");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["valueRanges"].Количество()).Равно(МассивЯчеек.Количество());
|
||||
|
||||
Результат = OPI_GoogleSheets.ПолучитьЗначенияЯчеек(Токен, Книга, , Лист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЗначенияЯчеек");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
|
||||
МассивЯчеек = Новый Массив;
|
||||
МассивЯчеек.Добавить("B2");
|
||||
МассивЯчеек.Добавить("A3");
|
||||
МассивЯчеек.Добавить("B4");
|
||||
|
||||
Результат = OPI_GoogleSheets.ОчиститьЯчейки(Токен, Книга, МассивЯчеек, Лист);
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОчиститьЯчейки");
|
||||
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["spreadsheetId"]).Равно(Книга);
|
||||
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["clearedRanges"].Количество()).Равно(МассивЯчеек.Количество());
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область Twitter
|
||||
|
||||
Процедура Твиттер_ПолучитьСсылкуАвторизации() Экспорт
|
||||
|
@ -52,6 +52,7 @@
|
||||
Разделы.Вставить("GoogleWorkspace", СтандартныеЗависимости);
|
||||
Разделы.Вставить("GoogleCalendar" , ЗависимостиГугл);
|
||||
Разделы.Вставить("GoogleDrive" , ЗависимостиГугл);
|
||||
Разделы.Вставить("GoogleSheets" , ЗависимостиГугл);
|
||||
Разделы.Вставить("Notion" , СтандартныеЗависимости);
|
||||
Разделы.Вставить("Slack" , СтандартныеЗависимости);
|
||||
|
||||
@ -71,6 +72,7 @@
|
||||
ВСпейс = "GoogleWorkspace";
|
||||
Ноушн = "Notion";
|
||||
Слак = "Slack";
|
||||
Таблицы = "GoogleSheets";
|
||||
|
||||
ТаблицаТестов = Новый ТаблицаЗначений;
|
||||
ТаблицаТестов.Колонки.Добавить("Метод");
|
||||
@ -146,6 +148,10 @@
|
||||
НовыйТест(ТаблицаТестов, "ГД_СоздатьУдалитьКомментарий" , "Создать/Удалить кооментарий" , Драйв);
|
||||
НовыйТест(ТаблицаТестов, "ГД_СоздатьКаталог" , "Создать/Удалить каталог" , Драйв);
|
||||
|
||||
НовыйТест(ТаблицаТестов, "ГТ_СоздатьТаблицу" , "Создать таблицу" , Таблицы);
|
||||
НовыйТест(ТаблицаТестов, "ГТ_ПолучитьТаблицу" , "Получить таблицу" , Таблицы);
|
||||
НовыйТест(ТаблицаТестов, "ГТ_ЗаполнитьОчиститьЯчейки" , "Заполнить/Очистить ячейки" , Таблицы);
|
||||
|
||||
НовыйТест(ТаблицаТестов, "Твиттер_ПолучитьСсылкуАвторизации" , "Получить ссылку авторизации" , Твиттер);
|
||||
НовыйТест(ТаблицаТестов, "Твиттер_ОбновитьТокен" , "Обновить токен" , Твиттер);
|
||||
НовыйТест(ТаблицаТестов, "Твиттер_СоздатьТекстовыйТвит" , "Текстовый твит" , Твиттер);
|
||||
|
@ -291,4 +291,5 @@
|
||||
Или ТипЗнч(Значение) = Тип("Дата");
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
x
Reference in New Issue
Block a user