Skip to content

Commit

Permalink
Добавлена настройка включения в проверку объектов метаданных по префи…
Browse files Browse the repository at this point in the history
…ксу имени

Добавлена настройка исключения из проверки объектов метаданных
Исправлена ошибка падения теста если в настройках не указан параметр ОтборПоПрефиксу
Обновлен пример настроек теста
  • Loading branch information
AlexPCRus committed Apr 19, 2023
1 parent 82c24e7 commit d857eb9
Show file tree
Hide file tree
Showing 2 changed files with 46 additions and 16 deletions.
13 changes: 12 additions & 1 deletion tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -756,7 +756,18 @@
"Тесты_ПроверкаПраваИнтерактивногоУдаления": {

"Используется": false,
"ПроверятьОсновныеРоли": true
"ПроверятьОсновныеРоли": true,
"Префикс": "",
"ОтборПоПрефиксу": false,
"ИсключенияИзПроверок":{

"Справочники":[
"Справочник1"
],
"Документы":[
"Документ1"
],
}

},

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
Перем ОтборПоПрефиксу;
&НаКлиенте
Перем ПрефиксОбъектов;
&НаКлиенте
Перем ИсключенияИзПроверок;

#КонецОбласти

Expand All @@ -37,7 +39,7 @@
Возврат;
КонецЕсли;

ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов);
ОбъектыМетаданных = ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов, ИсключенияИзПроверок);

Для Каждого ОбъектМетаданных Из ОбъектыМетаданных Цикл
Если ОбъектМетаданных.Значение.Количество() = 0 Тогда
Expand Down Expand Up @@ -65,12 +67,14 @@
Возврат;
КонецЕсли;

ПрефиксОбъектов = "";
ВыводитьИсключения = Ложь;
ПроверятьОсновныеРоли = Истина;
ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
Настройки = Объект.Настройки;
ПрефиксОбъектов = "";
ОтборПоПрефиксу = Ложь;
ИсключенияИзПроверок = Новый Структура;
ПроверятьОсновныеРоли = Истина;

ПлагинНастроек = КонтекстЯдра.Плагин("Настройки");
Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки);
Настройки = Объект.Настройки;

Если Не ЗначениеЗаполнено(Объект.Настройки) Тогда
Объект.Настройки = Новый Структура(ПутьНастройки, Неопределено);
Expand All @@ -82,11 +86,15 @@
КонецЕсли;

Если Настройки.Свойство("Префикс") Тогда
ПрефиксОбъектов = ВРег(Настройки.Префикс);
ПрефиксОбъектов = ВРег(Настройки.Префикс);
КонецЕсли;

Если Настройки.Свойство("ОтборПоПрефиксу") Тогда
ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу;
ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу;
КонецЕсли;

Если Настройки.Свойство("ИсключенияИзПроверок") Тогда
ИсключенияИзПроверок = Настройки.ИсключенияИзПроверок;
КонецЕсли;

КонецПроцедуры
Expand All @@ -99,8 +107,9 @@
Процедура ТестДолжен_ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных) Экспорт

Результат = ПроверитьЧтоНетПраваНаИнтерактивноеУдаление(ПолноеИмяМетаданных, ПроверятьОсновныеРоли);
Утверждения.Проверить(Результат = "", "Есть право на интерактивное удаление объектов:" + Результат);

ШаблонСообщения = НСтр("ru = 'Есть право на интерактивное удаление объектов:%1'");
Утверждения.Проверить(Результат = "", СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат));

КонецПроцедуры

&НаСервереБезКонтекста
Expand Down Expand Up @@ -129,7 +138,9 @@
#Область СлужебныеПроцедурыИФункции

&НаСервереБезКонтекста
Функция ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов)
Функция ОбъектыМетаданных(ОтборПоПрефиксу, ПрефиксОбъектов, ИсключенияИзПроверок)

ЛокальныйКонтекстЯдра = ВнешниеОбработки.Создать("xddTestRunner");

СтроковыеУтилиты = СтроковыеУтилиты();
Пояснение = НСтр("ru = 'Проверка права интерактивного удаления'");
Expand All @@ -146,18 +157,26 @@

Для Каждого Элемент Из ОбъектыМетаданных Цикл
Для Каждого ОбъектМетаданных Из Метаданные[Элемент.Ключ] Цикл
ПолноеИмяОбъекта = ОбъектМетаданных.ПолноеИмя();
Если ОтборПоПрефиксу И Не СтрНачинаетсяС(ВРег(ОбъектМетаданных.Имя), ВРег(ПрефиксОбъектов)) Тогда
Продолжить;
КонецЕсли;

ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ОбъектМетаданных.ПолноеИмя(), Пояснение);
Если ИсключенияИзПроверок.Свойство(Элемент.Ключ)
И ТипЗнч(ИсключенияИзПроверок[Элемент.Ключ]) = Тип("Массив")
И ЛокальныйКонтекстЯдра.ЕстьВИсключаемойКоллекции(ОбъектМетаданных.Имя, ИсключенияИзПроверок[Элемент.Ключ]) Тогда
Продолжить;
КонецЕсли;
//
ИмяТеста = СтроковыеУтилиты.ПодставитьПараметрыВСтроку("%1 [%2]", ПолноеИмяОбъекта, Пояснение);
СтруктураЭлемента = Новый Структура;
СтруктураЭлемента.Вставить("ИмяТеста", ИмяТеста);
СтруктураЭлемента.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
СтруктураЭлемента.Вставить("ПолноеИмя", ПолноеИмяОбъекта);
ОбъектыМетаданных[Элемент.Ключ].Добавить(СтруктураЭлемента);
КонецЦикла;
КонецЦикла;

ЛокальныйКонтекстЯдра = Неопределено;

Возврат ОбъектыМетаданных;

КонецФункции
Expand Down

0 comments on commit d857eb9

Please sign in to comment.