From 9f09f6eff892cb35a84fd8bf04f01ccbf79caa0f Mon Sep 17 00:00:00 2001 From: Anton Titovets Date: Tue, 31 Dec 2024 22:16:48 +0300 Subject: [PATCH] Update Module.bsl --- .../src/CommonModules/OPI_ТестыCLI/Module.bsl | 167 ++++++++++++++++-- 1 file changed, 155 insertions(+), 12 deletions(-) diff --git a/src/ru/OPI/src/CommonModules/OPI_ТестыCLI/Module.bsl b/src/ru/OPI/src/CommonModules/OPI_ТестыCLI/Module.bsl index 5a967b0a0e..7279a255f6 100644 --- a/src/ru/OPI/src/CommonModules/OPI_ТестыCLI/Module.bsl +++ b/src/ru/OPI/src/CommonModules/OPI_ТестыCLI/Module.bsl @@ -1433,8 +1433,8 @@ OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture" , ПараметрыТеста); OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture2" , ПараметрыТеста); - Сообщить("Проверка товаров Ozon недоступна"); - Возврат; + // Сообщить("Проверка товаров Ozon недоступна"); + // Возврат; // BSLLS:UnreachableCode-off @@ -2207,6 +2207,40 @@ #КонецОбласти +#Область SQLite + +Процедура CLI_SQLL_ОсновныеМетоды() Экспорт + + ПараметрыТеста = Новый Структура; + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста); + + CLI_SQLite_ВыполнитьЗапросSQL(ПараметрыТеста); + +КонецПроцедуры + +Процедура CLI_SQLL_ORM() Экспорт + + ПараметрыТеста = Новый Структура; + + База = ПолучитьИмяВременногоФайла("sqlite"); + OPI_ПолучениеДанныхТестов.ЗаписатьПараметр("CDEK_OrderUUID", База); + OPI_Инструменты.ДобавитьПоле("SQLite_DB", База, "Строка", ПараметрыТеста); + + OPI_ПолучениеДанныхТестов.ПараметрВКоллекцию("Picture", ПараметрыТеста); + + CLI_SQLite_СоздатьТаблицу(ПараметрыТеста); + + Попытка + УдалитьФайлы(База); + Исключение + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(ОписаниеОшибки(), "Ошибка удаления файла базы", "SQLite"); + КонецПопытки + + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #КонецОбласти @@ -10308,7 +10342,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "ПолучитьСписокКластеров", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокКластеров", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСписокКластеров", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_ОзонКластеры(Результат); КонецПроцедуры @@ -10326,7 +10360,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "ПолучитьСписокСкладовОтгрузки", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокСкладовОтгрузки", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСписокСкладовОтгрузки", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_ОзонПоиск(Результат); КонецПроцедуры @@ -10349,7 +10383,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "СоздатьЧерновикЗаявкиFBO", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "СоздатьЧерновикЗаявкиFBO", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СоздатьЧерновикЗаявкиFBO", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_ОзонЧерновик(Результат); IDЧерновика = Результат["operation_id"]; @@ -10382,7 +10416,7 @@ // END - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьЧерновикЗаявкиFBO", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_ОзонГотовыйЧерновик(Результат); КонецПроцедуры @@ -10394,7 +10428,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "ПолучитьСтруктуруДопПолейОтправления", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруДопПолейОтправления", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСтруктуруДопПолейОтправления", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат); КонецПроцедуры @@ -10406,7 +10440,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "ПолучитьСтруктуруФильтраОтправлений", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСтруктуруФильтраОтправлений", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСтруктуруФильтраОтправлений", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_Соответствие(Результат); КонецПроцедуры @@ -10432,7 +10466,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "ПолучитьСписокОтправленийFBO", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОтправленийFBO", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСписокОтправленийFBO", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_ОзонМассив(Результат); КонецПроцедуры @@ -10458,7 +10492,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("ozon", "ПолучитьТаймслотыFBO", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьТаймслотыFBO", "Ozon"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьТаймслотыFBO", "Ozon"); OPI_ПолучениеДанныхТестов.Проверка_ОзонТаймслоты(Результат); КонецПроцедуры @@ -16886,7 +16920,7 @@ Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("metrika", "ПолучитьСписокОпераций", Опции); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ПолучитьСписокОпераций", "YandexMetrika"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ПолучитьСписокОпераций", "YandexMetrika"); OPI_ПолучениеДанныхТестов.Проверка_МетрикаОперации(Результат); КонецПроцедуры @@ -18110,13 +18144,122 @@ Результат = ПолучитьСтрокуИзДвоичныхДанных(Результат); - OPI_ПолучениеДанныхТестов.ЗаписатьЛог(Результат, "ОбработатьЗапрос", "TCP"); + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ОбработатьЗапрос", "TCP"); OPI_ПолучениеДанныхТестов.Проверка_Строка(СтрЗаменить(Результат, Символы.ПС, "\n"), Данные); КонецПроцедуры #КонецОбласти +#Область SQLite + +Процедура CLI_SQLite_ВыполнитьЗапросSQL(ПараметрыФункции) + + ИВФ = ПолучитьИмяВременногоФайла("sqlite"); + + ФайлКартинки = ПолучитьИмяВременногоФайла("png"); + + Картинка = ПараметрыФункции["Picture"]; + КопироватьФайл(Картинка, ФайлКартинки); + + Блоб = Новый Структура("blob", ФайлКартинки); + + ТекстЗапроса = " + |CREATE TABLE test_table ( + |id INTEGER PRIMARY KEY, + |name TEXT, + |age INTEGER, + |salary REAL, + |is_active BOOLEAN, + |created_at DATETIME, + |data BLOB + |);"; + + Опции = Новый Структура; + Опции.Вставить("sql", СтрЗаменить(ТекстЗапроса, Символы.ПС, "")); + Опции.Вставить("db" , ИВФ); + + Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (Create)", "SQLite"); // SKIP + OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP + + // INSERT с параметрами + + ТекстЗапроса = " + |INSERT INTO test_table (name, age, salary, is_active, created_at, data) + |VALUES (?1, ?2, ?3, ?4, ?5, ?6);"; + + МассивПараметров = Новый Массив; + МассивПараметров.Добавить("Vitaly"); // TEXT + МассивПараметров.Добавить(25); // INTEGER + МассивПараметров.Добавить(1000.12); // REAL + МассивПараметров.Добавить(Истина); // BOOL + МассивПараметров.Добавить(OPI_Инструменты.ПолучитьТекущуюДату()); // DATETIME + МассивПараметров.Добавить(Блоб); // BLOB + + Опции = Новый Структура; + Опции.Вставить("sql" , СтрЗаменить(ТекстЗапроса, Символы.ПС, "")); + Опции.Вставить("params", МассивПараметров); + Опции.Вставить("db" , ИВФ); + + Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "ВыполнитьЗапросSQL", Опции); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (Insert)", "SQLite"); // SKIP + OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); // SKIP + + // SELECT (Результат этого запроса приведен в следующем блоке) + + ТекстЗапроса = "SELECT id, name, age, salary, is_active, created_at, data FROM test_table;"; + + Результат = OPI_SQLite.ВыполнитьЗапросSQL(ТекстЗапроса, , , ИВФ); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "ВыполнитьЗапросSQL (Select, код)", "SQLite"); + OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); + OPI_ПолучениеДанныхТестов.Проверка_Равенство(Base64Значение(Результат["data"][0]["data"]["blob"]).Размер(), Картинка.Размер()); // SKIP + + Попытка + УдалитьФайлы(ИВФ); + УдалитьФайлы(ФайлКартинки); + Исключение + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(ОписаниеОшибки(), "Ошибка удаления файла базы", "SQLite"); + КонецПопытки + +КонецПроцедуры + +Процедура CLI_SQLite_СоздатьТаблицу(ПараметрыФункции) + + База = ПараметрыФункции["SQLite_DB"]; + Таблица = "test"; + + СтруктураКолонок = Новый Структура; + СтруктураКолонок.Вставить("id" , "INTEGER PRIMARY KEY"); + СтруктураКолонок.Вставить("name" , "TEXT"); + СтруктураКолонок.Вставить("age" , "INTEGER"); + СтруктураКолонок.Вставить("salary" , "REAL"); + СтруктураКолонок.Вставить("is_active" , "BOOLEAN"); + СтруктураКолонок.Вставить("created_at", "DATETIME"); + СтруктураКолонок.Вставить("data" , "BLOB"); + + Опции = Новый Структура; + Опции.Вставить("table", Таблица); + Опции.Вставить("cols" , СтруктураКолонок); + Опции.Вставить("db" , База); + + Результат = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "СоздатьТаблицу", Опции); + + Опции.Вставить("noex", Истина); + Текст = OPI_ПолучениеДанныхТестов.ВыполнитьТестCLI("sqlite", "СоздатьТаблицу", Опции); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Текст, "СоздатьТаблицу (запрос)", "SQLite"); + + OPI_ПолучениеДанныхТестов.ЗаписатьЛогCLI(Результат, "СоздатьТаблицу", "SQLite"); + OPI_ПолучениеДанныхТестов.Проверка_SQLiteУспех(Результат); + +КонецПроцедуры + +#КонецОбласти + #КонецОбласти #КонецОбласти