1
0
mirror of https://github.com/Bayselonarrend/OpenIntegrations.git synced 2025-08-15 20:13:31 +02:00

Преобразование OPI -> OInt (workflow)

This commit is contained in:
Vitaly the Alpaca
2024-05-24 20:25:42 +00:00
committed by Vitaly the Alpaca (bot)
parent 8a000e3450
commit 3bb7c6b84c
5 changed files with 308 additions and 44 deletions

View File

@@ -87,6 +87,10 @@ jobs:
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: Записать логи
uses: actions/upload-artifact@v4

View File

@@ -893,6 +893,10 @@ jobs:
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: Записать логи
uses: actions/upload-artifact@v4

View File

@@ -118,7 +118,7 @@
#КонецОбласти
#Область РаботаСФайлами
#Область РаботаСФайламиИКаталогами
// Загрузить файл
// Загружает файл на облачный диск
@@ -151,19 +151,102 @@
КонецФункции
Функция УдалитьФайл(Знач Токен, Знач Путь) Экспорт
// Удалить объект
// Удаляет объект с облачного диска
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь к объекту удаления - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция УдалитьОбъект(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/files/delete_v2";
URL = "https://api.dropboxapi.com/2/files/delete_v2";
Ответ = ОбработатьОбъект(Токен, URL, Путь);
Возврат Ответ;
КонецФункции
// Копировать объект
// Копирует файл или каталог по выбранному пути
//
// Параметры:
// Токен - Строка - Токен - token
// Откуда - Строка - Путь к объекту оригинала - form
// Куда - Строка - Целевой путь для нового объекта - to
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция КопироватьОбъект(Знач Токен, Знач Откуда, Знач Куда) Экспорт
URL = "https://api.dropboxapi.com/2/files/copy_v2";
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("from_path", Откуда, "Строка", Параметры);
OPI_Инструменты.ДобавитьПоле("to_path" , Куда , "Строка", Параметры);
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
Возврат Ответ;
КонецФункции
// Создать папку
// Создает пустой каталог по выбранному пути
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Целевой путь создания каталога - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция СоздатьПапку(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/files/create_folder_v2";
Ответ = ОбработатьОбъект(Токен, URL, Путь);
Возврат Ответ;
КонецФункции
// Скачать файл
// Скачивает файл по указанному пути или ID
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь или ID файла - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция СкачатьФайл(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/files/download";
Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
Возврат Ответ;
КонецФункции
// Скачать папку
// Скачивает zip архив с содержимым указанного каталога
//
// Параметры:
// Токен - Строка - Токен - token
// Путь - Строка - Путь или ID каталога - path
//
// Возвращаемое значение:
// Соответствие Из КлючИЗначение - сериализованный JSON ответа от Dropbox
Функция СкачатьПапку(Знач Токен, Знач Путь) Экспорт
URL = "https://api.dropboxapi.com/2/files/download_zip";
Ответ = ОбработатьОбъект(Токен, URL, Путь, Истина);
Возврат Ответ;
КонецФункции
#КонецОбласти
@@ -172,6 +255,23 @@
#Область СлужебныеПроцедурыИФункции
Функция ОбработатьОбъект(Знач Токен, Знач URL, Знач Путь, Знач ВЗаголовках = Ложь)
Параметры = Новый Структура;
OPI_Инструменты.ДобавитьПоле("path", Путь, "Строка", Параметры);
Если ВЗаголовках Тогда
Заголовки = ПолучитьЗаголовкиЗапроса(Токен, Параметры);
Ответ = OPI_Инструменты.Post(URL, , Заголовки);
Иначе
Заголовки = ПолучитьЗаголовкиЗапроса(Токен);
Ответ = OPI_Инструменты.Post(URL, Параметры, Заголовки);
КонецЕсли;
Возврат Ответ;
КонецФункции
Функция ПолучитьЗаголовкиЗапроса(Знач Токен, Знач Параметры = "")
OPI_ПреобразованиеТипов.ПолучитьСтроку(Токен);

View File

@@ -3135,49 +3135,37 @@
Процедура ДропБокс_ПолучитьОбновитьТокен() Экспорт
Ключ = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Dropbox_Appkey");
Секрет = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Dropbox_Appsecret");
Результат = OPI_Dropbox.ПолучитьСсылкуАвторизации(Ключ);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуАвторизации");
Код = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Dropbox_Code");
Результат = OPI_Dropbox.ПолучитьТокен(Ключ, Секрет, Код);
Рефреш = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Dropbox_Refresh");
Результат = OPI_Dropbox.ОбновитьТокен(Ключ, Секрет, Рефреш);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьТокен");
Токен = Результат["access_token"];
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Токен).Заполнено();
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_Token", Токен);
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appkey" , ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Appsecret", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Code", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Refresh", ПараметрыТеста);
Dropbox_ПолучитьСсылкуАвторизации(ПараметрыТеста);
Dropbox_ОбновитьТокен(ПараметрыТеста);
КонецПроцедуры
Процедура ДропБокс_ЗагрузитьФайл() Экспорт
Токен = OPI_ПолучениеДанныхТестов.ПолучитьПараметр("Dropbox_Token");
Файл = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture");
Файл2 = OPI_ПолучениеДанныхТестов.ПолучитьДвоичные("Picture2");
Путь = "/New/pic.png";
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста);
Результат = OPI_Dropbox.ЗагрузитьФайл(Токен, Файл, Путь, Истина);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path_display"]).Равно(Путь);
Результат = OPI_Dropbox.УдалитьФайл(Токен, Путь);
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьФайл");
Dropbox_ЗагрузитьФайл(ПараметрыТеста);
Dropbox_СкачатьФайл(ПараметрыТеста);
Dropbox_КопироватьФайл(ПараметрыТеста);
Dropbox_УдалитьОбъект(ПараметрыТеста);
КонецПроцедуры
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
Процедура ДропБокс_СоздатьКаталог() Экспорт
ПараметрыТеста = Новый Структура;
OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Dropbox_Token", ПараметрыТеста);
Dropbox_СоздатьПапку(ПараметрыТеста);
Dropbox_СкачатьПапку(ПараметрыТеста);
КонецПроцедуры
@@ -3226,6 +3214,14 @@
#Область Проверки
Процедура Проверка_Пусто(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
КонецПроцедуры
Процедура Проверка_ДвоичныеДанные(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("ДвоичныеДанные");
КонецПроцедуры
Процедура Проверка_ТелеграмИстина(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Соответствие").Заполнено();
@@ -3456,10 +3452,6 @@
КонецПроцедуры
Процедура Проверка_Пусто(Знач Результат)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(ЗначениеЗаполнено(Результат)).Равно(Ложь);
КонецПроцедуры
Процедура Проверка_ТвиттерТекст(Знач Результат, Знач Текст)
ТекстОтвета = Результат["data"]["text"];
@@ -3491,6 +3483,18 @@
КонецПроцедуры
Процедура Проверка_ДропБоксФайл(Знач Результат, Знач Путь)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["path_display"]).Равно(Путь);
КонецПроцедуры
Процедура Проверка_ДропБоксМетаданные(Знач Результат, Знач Путь)
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат["metadata"]["path_display"]).Равно(Путь);
КонецПроцедуры
#КонецОбласти
#Область АтомарныеТесты
@@ -4623,6 +4627,157 @@
#КонецОбласти
#Область Dropbox
Процедура Dropbox_ПолучитьСсылкуАвторизации(ПараметрыФункции)
Ключ = ПараметрыФункции["Dropbox_Appkey"];
Результат = OPI_Dropbox.ПолучитьСсылкуАвторизации(Ключ);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСсылкуАвторизации");
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Результат).ИмеетТип("Строка");
КонецПроцедуры
Процедура Dropbox_ОбновитьТокен(ПараметрыФункции)
Ключ = ПараметрыФункции["Dropbox_Appkey"];
Секрет = ПараметрыФункции["Dropbox_Appsecret"];
Рефреш = ПараметрыФункции["Dropbox_Refresh"];
Результат = OPI_Dropbox.ОбновитьТокен(Ключ, Секрет, Рефреш);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбновитьТокен");
Токен = Результат["access_token"];
OPI_ПолучениеДанныхТестов.ОжидаетЧто(Токен).Заполнено();
OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("Dropbox_Token", Токен);
КонецПроцедуры
Процедура Dropbox_ЗагрузитьФайл(ПараметрыФункции)
Путь = "/New/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Картинка = ПараметрыФункции["Picture"];
КартинкаПуть = ПолучитьИмяВременногоФайла("png");
КопироватьФайл(Картинка, КартинкаПуть);
Результат = OPI_Dropbox.ЗагрузитьФайл(Токен, КартинкаПуть, Путь, Истина);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ЗагрузитьФайл");
Проверка_ДропБоксФайл(Результат, Путь);
УдалитьФайлы(КартинкаПуть);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_УдалитьОбъект(ПараметрыФункции)
Путь = "/New/pic.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "УдалитьОбъект");
Проверка_ДропБоксМетаданные(Результат, Путь);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_КопироватьФайл(ПараметрыФункции)
Оригинал = "/New/pic.png";
Копия = "/New/pic_copy.png";
Токен = ПараметрыФункции["Dropbox_Token"];
Результат = OPI_Dropbox.КопироватьОбъект(Токен, Оригинал, Копия);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "КопироватьОбъект");
Проверка_ДропБоксМетаданные(Результат, Копия);
Результат = OPI_Dropbox.УдалитьОбъект(Токен, Копия);
Проверка_ДропБоксМетаданные(Результат, Копия);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_СоздатьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/Новый каталог";
Результат = OPI_Dropbox.СоздатьПапку(Токен, Путь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьКаталог");
Проверка_ДропБоксМетаданные(Результат, Путь);
Результат = OPI_Dropbox.УдалитьОбъект(Токен, Путь);
Проверка_ДропБоксМетаданные(Результат, Путь);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_СкачатьФайл(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New/pic.png";
Результат = OPI_Dropbox.СкачатьФайл(Токен, Путь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьФайл");
Проверка_ДвоичныеДанные(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
Процедура Dropbox_СкачатьПапку(ПараметрыФункции)
Токен = ПараметрыФункции["Dropbox_Token"];
Путь = "/New";
Результат = OPI_Dropbox.СкачатьПапку(Токен, Путь);
// END
OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СкачатьПапку");
Проверка_ДвоичныеДанные(Результат);
OPI_Инструменты.Пауза(5);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти

View File

@@ -208,6 +208,7 @@
НовыйТест(ТаблицаТестов, "ДропБокс_ПолучитьОбновитьТокен" , "Получить/Обновить токен" , ДропБокс);
НовыйТест(ТаблицаТестов, "ДропБокс_ЗагрузитьФайл" , "Загрузить файл" , ДропБокс);
НовыйТест(ТаблицаТестов, "ДропБокс_СоздатьКаталог" , "Создать каталог" , ДропБокс);
Возврат ТаблицаТестов;