From b701bc9ada34f69189140f80ae133a0d776a9534 Mon Sep 17 00:00:00 2001 From: Alexander Medvedko Date: Fri, 25 Mar 2022 16:22:00 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BD=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9=D0=BA?= =?UTF-8?q?=D0=B0=20=D0=B2=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D1=83=20?= =?UTF-8?q?=D0=BE=D0=B1=D1=8A=D0=B5=D0=BA=D1=82=D0=BE=D0=B2=20=D0=BC=D0=B5?= =?UTF-8?q?=D1=82=D0=B0=D0=B4=D0=B0=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BF=D0=BE?= =?UTF-8?q?=20=D0=BF=D1=80=D0=B5=D1=84=D0=B8=D0=BA=D1=81=D1=83=20=D0=B8?= =?UTF-8?q?=D0=BC=D0=B5=D0=BD=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлена настройка исключения из проверки объектов метаданных Исправлена ошибка падения теста если в настройках не указан параметр ОтборПоПрефиксу Обновлен пример настроек теста --- tests/smoke/smoke.example.json | 13 ++++- .../Ext/Form/Module.bsl" | 49 +++++++++++++------ 2 files changed, 46 insertions(+), 16 deletions(-) diff --git a/tests/smoke/smoke.example.json b/tests/smoke/smoke.example.json index d1dcc4675..134cdc526 100644 --- a/tests/smoke/smoke.example.json +++ b/tests/smoke/smoke.example.json @@ -782,7 +782,18 @@ "Тесты_ПроверкаПраваИнтерактивногоУдаления": { "Используется": false, - "ПроверятьОсновныеРоли": true + "ПроверятьОсновныеРоли": true, + "Префикс": "", + "ОтборПоПрефиксу": false, + "ИсключенияИзПроверок":{ + + "Справочники":[ + "Справочник1" + ], + "Документы":[ + "Документ1" + ], + } }, diff --git "a/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 329c3ce4a..242e73a92 100644 --- "a/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/tests/smoke/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/\320\242\320\265\321\201\321\202\321\213_\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\237\321\200\320\260\320\262\320\260\320\230\320\275\321\202\320\265\321\200\320\260\320\272\321\202\320\270\320\262\320\275\320\276\320\263\320\276\320\243\320\264\320\260\320\273\320\265\320\275\320\270\321\217/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -12,6 +12,8 @@ Перем ОтборПоПрефиксу; &НаКлиенте Перем ПрефиксОбъектов; +&НаКлиенте +Перем ИсключенияИзПроверок; #КонецОбласти @@ -37,7 +39,7 @@ Возврат; КонецЕсли; - ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов); + ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов, ИсключенияИзПроверок); Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл Если ОбъектМетаданных.Значение.Количество() = 0 Тогда @@ -65,12 +67,14 @@ Возврат; КонецЕсли; - ПрефиксОбъектов = ""; - ВыводитьИсключения = Ложь; - ПроверятьОсновныеРоли = Истина; - ПлагинНастроек = КонтекстЯдра.Плагин("Настройки"); - Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки); - Настройки = Объект.Настройки; + ПрефиксОбъектов = ""; + ОтборПоПрефиксу = Ложь; + ИсключенияИзПроверок = Новый Структура; + ПроверятьОсновныеРоли = Истина; + + ПлагинНастроек = КонтекстЯдра.Плагин("Настройки"); + Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки); + Настройки = Объект.Настройки; Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда Объект.Настройки = Новый Структура(ПутьНастройки, Неопределено); @@ -82,11 +86,15 @@ КонецЕсли; Если Настройки.Свойство("Префикс") Тогда - ПрефиксОбъектов = ВРег(Настройки.Префикс); + ПрефиксОбъектов = ВРег(Настройки.Префикс); КонецЕсли; Если Настройки.Свойство("ОтборПоПрефиксу") Тогда - ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу; + ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу; + КонецЕсли; + + Если Настройки.Свойство("ИсключенияИзПроверок") Тогда + ИсключенияИзПроверок = Настройки.ИсключенияИзПроверок; КонецЕсли; КонецПроцедуры @@ -99,8 +107,9 @@ Процедура ТестДолжен_ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных) Экспорт Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных, ПроверятьОсновныеРоли); - Утверждения.Проверить(Результат = "", "Есть право на интерактивное удаление объектов:" + Результат); - + ШаблонСообщения = НСтр("ru = 'Есть право на интерактивное удаление объектов:%1'"); + Утверждения.Проверить(Результат = "", СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат)); + КонецПроцедуры &НаСервереБезКонтекста @@ -129,7 +138,9 @@ #Область СлужебныеПроцедурыИФункции &НаСервереБезКонтекста -Функция ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов) +Функция ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов, ИсключенияИзПроверок) + + ЛокальныйКонтекстЯдра = ВнешниеОбработки.Создать("xddTestRunner"); СтроковыеУтилиты = СтроковыеУтилиты(); Пояснение = НСтр("ru = 'Проверка права интерактивного удаления'"); @@ -146,18 +157,26 @@ Для Каждого Элемент Из ОбъектыМетаданных Цикл Для Каждого ОбъектМетаданных Из Метаданные[Элемент.Ключ] Цикл + ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя(); Если ОтборПоПрефиксу И Не СтрНачинаетсяС(ВРег(ОбъектМетаданных.Имя), ВРег(ПрефиксОбъектов)) Тогда Продолжить; КонецЕсли; - - ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ОбъектМетаданных.ПолноеИмя(), Пояснение); + Если ИсключенияИзПроверок.Свойство(Элемент.Ключ) + И ТипЗнч(ИсключенияИзПроверок[Элемент.Ключ]) = Тип("Массив") + И ЛокальныйКонтекстЯдра.ЕстьВИсключаемойКоллекции(ОбъектМетаданных.Имя, ИсключенияИзПроверок[Элемент.Ключ]) Тогда + Продолжить; + КонецЕсли; + // + ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ПолноеИмяОбъекта, Пояснение); СтруктураЭлемента = Новый Структура; СтруктураЭлемента.Вставить("ИмяТеста", ИмяТеста); - СтруктураЭлемента.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя()); + СтруктураЭлемента.Вставить("ПолноеИмя", ПолноеИмяОбъекта); ОбъектыМетаданных[Элемент.Ключ].Добавить(СтруктураЭлемента); КонецЦикла; КонецЦикла; + ЛокальныйКонтекстЯдра = Неопределено; + Возврат ОбъектыМетаданных; КонецФункции