-
Notifications
You must be signed in to change notification settings - Fork 183
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix smoketest Тесты_ПроверкаРеквизитовДокументовКомментарийОтветственный #816
The head ref may contain hidden characters: "fix-smoketest-\u0422\u0435\u0441\u0442\u044B_\u041F\u0440\u043E\u0432\u0435\u0440\u043A\u0430\u0420\u0435\u043A\u0432\u0438\u0437\u0438\u0442\u043E\u0432\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432\u041A\u043E\u043C\u043C\u0435\u043D\u0442\u0430\u0440\u0438\u0439\u041E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u044B\u0439"
Changes from 1 commit
76cedb6
1e9b949
67efea9
33e9ec9
59c3587
e2e7b55
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -12,6 +12,14 @@ | |
Перем ПрефиксОбъектов; | ||
&НаКлиенте | ||
Перем ИсключенияИзПроверок; | ||
&НаКлиенте | ||
Перем ВыводитьИсключения; | ||
&НаКлиенте | ||
Перем ИмяТипаКомментарий; | ||
&НаКлиенте | ||
Перем ИмяТипаОтветственный; | ||
&НаКлиенте | ||
Перем ПропускатьОбъектыСПрефиксомУдалить; | ||
|
||
#КонецОбласти | ||
|
||
|
@@ -24,23 +32,33 @@ | |
Утверждения = КонтекстЯдра.Плагин("БазовыеУтверждения"); | ||
СтроковыеУтилиты = КонтекстЯдра.Плагин("СтроковыеУтилиты"); | ||
|
||
ПутьНастройки = "Тесты"; | ||
Настройки(КонтекстЯдра, ПутьНастройки); | ||
Настройки(КонтекстЯдра, ИмяТеста()); | ||
|
||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдра) Экспорт | ||
Процедура ЗаполнитьНаборТестов(НаборТестов, КонтекстЯдраПараметр) Экспорт | ||
|
||
Инициализация(КонтекстЯдраПараметр); | ||
|
||
Если Не ВыполнятьТест(КонтекстЯдра) Тогда | ||
Возврат; | ||
КонецЕсли; | ||
|
||
НаборТестов.НачатьГруппу("Документы", Ложь); | ||
мДокументы = Документы(ПрефиксОбъектов, ОтборПоПрефиксу); | ||
Для Каждого Документ Из мДокументы Цикл | ||
мДокументы = Документы(ПрефиксОбъектов, ОтборПоПрефиксу); | ||
Если Не ВыводитьИсключения Тогда | ||
МассивТестов = УбратьИсключения(мДокументы); | ||
Иначе | ||
МассивТестов = мДокументы; | ||
КонецЕсли; | ||
Для Каждого Тест Из МассивТестов Цикл | ||
ИмяПроцедуры = "ТестДолжен_ПроверитьРеквизитыДокументовКомментарийОтветственный"; | ||
НаборТестов.Добавить(ИмяПроцедуры, НаборТестов.ПараметрыТеста(Документ.Имя, Документ.ПолноеИмя), Документ.Имя); | ||
ИмяТеста = КонтекстЯдра.СтрШаблон_( | ||
"%1 [%2]", | ||
Тест.ПолноеИмя, | ||
НСтр("ru = 'Проверка реквизитов документа: комментарий, ответственный'")); | ||
НаборТестов.Добавить(ИмяПроцедуры, НаборТестов.ПараметрыТеста(Тест.Имя, Тест.ПолноеИмя), ИмяТеста); | ||
КонецЦикла; | ||
|
||
КонецПроцедуры | ||
|
@@ -57,7 +75,11 @@ | |
КонецЕсли; | ||
|
||
ОтборПоПрефиксу = Ложь; | ||
ВыводитьИсключения = Ложь; | ||
ПрефиксОбъектов = ""; | ||
ИмяТипаКомментарий = ""; | ||
ИмяТипаОтветственный = ""; | ||
ПропускатьОбъектыСПрефиксомУдалить = Ложь; | ||
ИсключенияИзПроверок = Новый Соответствие; | ||
ПлагинНастроек = КонтекстЯдра.Плагин("Настройки"); | ||
Объект.Настройки = ПлагинНастроек.ПолучитьНастройку(ПутьНастройки); | ||
|
@@ -67,16 +89,32 @@ | |
Объект.Настройки = Новый Структура(ПутьНастройки, Неопределено); | ||
Возврат; | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство("Префикс") Тогда | ||
ПрефиксОбъектов = ВРег(Настройки.Префикс); | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство("ОтборПоПрефиксу") Тогда | ||
ОтборПоПрефиксу = Настройки.ОтборПоПрефиксу; | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство("ОпределяемыйТипКомментарий") Тогда | ||
ИмяТипаКомментарий = Настройки.ОпределяемыйТипКомментарий; | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство("ОпределяемыйТипОтветственный") Тогда | ||
ИмяТипаОтветственный = Настройки.ОпределяемыйТипОтветственный; | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство("Параметры") И Настройки.Параметры.Свойство("Префикс") Тогда | ||
ПрефиксОбъектов = Настройки.Параметры.Префикс; | ||
Если Настройки.Свойство("ВыводитьИсключения") Тогда | ||
ВыводитьИсключения = Настройки.ВыводитьИсключения; | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство(ИмяТеста()) И Настройки[ИмяТеста()].Свойство("ОтборПоПрефиксу") Тогда | ||
ОтборПоПрефиксу = Настройки[ИмяТеста()].ОтборПоПрефиксу; | ||
Если Настройки.Свойство("ПропускатьОбъектыСПрефиксомУдалить") Тогда | ||
ПропускатьОбъектыСПрефиксомУдалить = Настройки.ПропускатьОбъектыСПрефиксомУдалить; | ||
КонецЕсли; | ||
|
||
Если Настройки.Свойство(ИмяТеста()) И Настройки[ИмяТеста()].Свойство("ИсключенияИзПроверок") Тогда | ||
Если Настройки.Свойство("ИсключенияИзПроверок") Тогда | ||
ИсключенияИзПроверок(Настройки); | ||
КонецЕсли; | ||
|
||
|
@@ -85,7 +123,7 @@ | |
&НаКлиенте | ||
Процедура ИсключенияИзПроверок(Настройки) | ||
|
||
Для Каждого ИсключенияИзПроверокПоОбъектам Из Настройки[ИмяТеста()].ИсключенияИзпроверок Цикл | ||
Для Каждого ИсключенияИзПроверокПоОбъектам Из Настройки.ИсключенияИзпроверок Цикл | ||
Для Каждого ИсключениеИзПроверок Из ИсключенияИзПроверокПоОбъектам.Значение Цикл | ||
ИсключенияИзПроверок.Вставить(ВРег(ИсключенияИзПроверокПоОбъектам.Ключ + "." + ИсключениеИзПроверок), Истина); | ||
КонецЦикла; | ||
|
@@ -102,7 +140,9 @@ | |
|
||
ПропускатьТест = ПропускатьТест(ПолноеИмяДокумента); | ||
|
||
Результат = ПроверитьРеквизитыДокументовКомментарийОтветственный(ИмяДокумента); | ||
Результат = ПроверитьРеквизитыДокументовКомментарийОтветственный( | ||
ИмяДокумента, ИмяТипаКомментарий, ИмяТипаОтветственный); | ||
|
||
Если Результат <> "" И ПропускатьТест.Пропустить Тогда | ||
Утверждения.ПропуститьТест(ПропускатьТест.ТекстСообщения); | ||
Иначе | ||
|
@@ -112,22 +152,38 @@ | |
КонецПроцедуры | ||
|
||
&НаСервереБезКонтекста | ||
Функция ПроверитьРеквизитыДокументовКомментарийОтветственный(ИмяДокумента) | ||
Функция ПроверитьРеквизитыДокументовКомментарийОтветственный(ИмяДокумента, ИмяТипаКомментарий, ИмяТипаОтветственный) | ||
|
||
Документ = Метаданные.Документы.Найти(ИмяДокумента); | ||
Результат = ""; | ||
СтроковыеУтилиты = СтроковыеУтилиты(); | ||
|
||
Если Документ.Реквизиты.Найти("Комментарий") = Неопределено Тогда | ||
Разделитель = ?(ЗначениеЗаполнено(Результат), ",", ""); | ||
ШаблонСообщения = НСтр("ru = '%1%2 комментарий'"); | ||
Результат = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат, Разделитель); | ||
РеквизитКомментарий = Документ.Реквизиты.Найти("Комментарий"); | ||
Если РеквизитКомментарий = Неопределено Тогда | ||
ШаблонСообщения = НСтр("ru = '%1%2 не указан реквизит ""Комментарий""'"); | ||
ДобавитьСообщениеВРезультат(СтроковыеУтилиты, Результат, ШаблонСообщения) | ||
КонецЕсли; | ||
Если РеквизитКомментарий <> Неопределено И ЗначениеЗаполнено(ИмяТипаКомментарий) Тогда | ||
ОпределяемыйТипКомментарий = Метаданные.ОпределяемыеТипы.Найти(ИмяТипаКомментарий); | ||
Если РеквизитКомментарий.Тип <> ОпределяемыйТипКомментарий.Тип Тогда | ||
ШаблонСообщения = НСтр("ru = '%1 тип реквизита ""Комментарий"" не соответствует определяемому типу %2'"); | ||
ШаблонСообщения = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, "%1%2", ИмяТипаКомментарий); | ||
ДобавитьСообщениеВРезультат(СтроковыеУтилиты, Результат, ШаблонСообщения) | ||
КонецЕсли; | ||
КонецЕсли; | ||
|
||
Если Документ.Реквизиты.Найти("Ответственный") = Неопределено Тогда | ||
Разделитель = ?(ЗначениеЗаполнено(Результат), ",", ""); | ||
ШаблонСообщения = НСтр("ru = '%1%2 ответственный'"); | ||
Результат = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат, Разделитель); | ||
РеквизитОтветственный = Документ.Реквизиты.Найти("Ответственный"); | ||
Если РеквизитОтветственный = Неопределено Тогда | ||
ШаблонСообщения = НСтр("ru = '%1%2 не указан реквизит ""Ответственный""'"); | ||
ДобавитьСообщениеВРезультат(СтроковыеУтилиты, Результат, ШаблонСообщения) | ||
КонецЕсли; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. аналогично пропускать по реквизиту Ответственный. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. готово |
||
Если РеквизитОтветственный <> Неопределено И ЗначениеЗаполнено(ИмяТипаОтветственный) Тогда | ||
ОпределяемыйТипОтветственный = Метаданные.ОпределяемыеТипы.Найти(ИмяТипаОтветственный); | ||
Если РеквизитОтветственный.Тип <> ОпределяемыйТипОтветственный.Тип Тогда | ||
ШаблонСообщения = НСтр("ru = '%1 тип реквизита ""Ответственный"" не соответствует определяемому типу %2'"); | ||
ШаблонСообщения = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, "%1%2", ИмяТипаОтветственный); | ||
ДобавитьСообщениеВРезультат(СтроковыеУтилиты, Результат, ШаблонСообщения) | ||
КонецЕсли; | ||
КонецЕсли; | ||
|
||
Возврат Результат; | ||
|
@@ -138,6 +194,12 @@ | |
|
||
#Область СлужебныеПроцедурыИФункции | ||
|
||
&НаСервереБезКонтекста | ||
Процедура ДобавитьСообщениеВРезультат(СтроковыеУтилиты, Результат, ШаблонСообщения) | ||
Разделитель = ?(ЗначениеЗаполнено(Результат), ";", ""); | ||
Результат = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, Результат, Разделитель); | ||
КонецПроцедуры | ||
|
||
&НаКлиенте | ||
Функция ПропускатьТест(ИмяДокумента) | ||
|
||
|
@@ -151,6 +213,13 @@ | |
Результат.Пропустить = Истина; | ||
Возврат Результат; | ||
КонецЕсли; | ||
|
||
Если ПропускатьОбъектыСПрефиксомУдалить = Истина И СтрНайти(ВРег(ИмяДокумента), ".УДАЛИТЬ") > 0 Тогда | ||
ШаблонСообшения = НСтр("ru = 'Объект ""%1"" исключен из проверки, префикс ""Удалить""'"); | ||
Результат.ТекстСообщения = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообшения, ИмяДокумента); | ||
Результат.Пропустить = Истина; | ||
Возврат Результат; | ||
КонецЕсли; | ||
|
||
Возврат Результат; | ||
|
||
|
@@ -159,39 +228,86 @@ | |
&НаКлиенте | ||
Функция ТекстСообщения(ИмяДокумента, Результат) | ||
|
||
ШаблонСообщения = НСтр("ru = 'Для документа ""%1"" не указаны реквизиты:%2.'"); | ||
ШаблонСообщения = НСтр("ru = 'Для документа ""%1"":%2.'"); | ||
ТекстСообщения = СтроковыеУтилиты.ПодставитьПараметрыВСтроку(ШаблонСообщения, ИмяДокумента, Результат); | ||
|
||
Возврат ТекстСообщения; | ||
|
||
КонецФункции | ||
|
||
&НаКлиенте | ||
Функция УбратьИсключения(МассивТестов) | ||
|
||
Исключения = Новый Соответствие; | ||
Результат = Новый Массив; | ||
|
||
Для Каждого Тест Из МассивТестов Цикл | ||
Если ИсключенИзПроверок(Тест.ПолноеИмя) Тогда | ||
Исключения.Вставить(Тест, Истина); | ||
КонецЕсли; | ||
КонецЦикла; | ||
|
||
Для Каждого Тест Из МассивТестов Цикл | ||
Если Исключения.Получить(Тест) = Истина Тогда | ||
Продолжить; | ||
КонецЕсли; | ||
Результат.Добавить(Тест); | ||
КонецЦикла; | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
&НаКлиенте | ||
Функция ИсключенИзПроверок(ПолноеИмяМетаданных) | ||
|
||
Результат = Ложь; | ||
ИмяТеста = ПолноеИмяМетаданных; | ||
ИслючениеВсехОбъектов = "Документ.*"; | ||
|
||
Если ИсключенияИзПроверок.Получить(ВРег(ИмяТеста)) <> Неопределено | ||
Или ИсключенияИзПроверок.Получить(ВРег(ИслючениеВсехОбъектов)) <> Неопределено Тогда | ||
Результат = Истина; | ||
КонецЕсли; | ||
|
||
Возврат Результат; | ||
|
||
КонецФункции | ||
|
||
&НаСервереБезКонтекста | ||
Функция СтроковыеУтилиты() | ||
Возврат ВнешниеОбработки.Создать("СтроковыеУтилиты"); | ||
КонецФункции | ||
|
||
&НаСервере | ||
&НаКлиенте | ||
Функция ИмяТеста() | ||
|
||
Если Не ЗначениеЗаполнено(Объект.ИмяТеста) Тогда | ||
Объект.ИмяТеста = ИмяТестаНаСервере(); | ||
КонецЕсли; | ||
|
||
Возврат Объект.ИмяТеста; | ||
|
||
КонецФункции | ||
|
||
&НаСервере | ||
Функция ИмяТестаНаСервере() | ||
Возврат РеквизитФормыВЗначение("Объект").Метаданные().Имя; | ||
КонецФункции | ||
|
||
&НаКлиенте | ||
Функция ВыполнятьТест(КонтекстЯдра) | ||
|
||
ВыполнятьТест = Истина; | ||
artbear marked this conversation as resolved.
Show resolved
Hide resolved
|
||
ПутьНастройки = "Тесты"; | ||
Настройки(КонтекстЯдра, ПутьНастройки); | ||
Настройки(КонтекстЯдра, ИмяТеста()); | ||
Настройки = Объект.Настройки; | ||
|
||
Если Не ЗначениеЗаполнено(Настройки) Тогда | ||
Возврат ВыполнятьТест; | ||
КонецЕсли; | ||
|
||
Если ТипЗнч(Настройки) = Тип("Структура") | ||
И Настройки.Свойство("Параметры") | ||
И Настройки.Параметры.Свойство(ИмяТеста()) Тогда | ||
ВыполнятьТест = Настройки.Параметры[ИмяТеста()]; | ||
Если ТипЗнч(Настройки) = Тип("Структура") И Настройки.Свойство("Используется") Тогда | ||
ВыполнятьТест = Настройки.Используется; | ||
КонецЕсли; | ||
|
||
Возврат ВыполнятьТест; | ||
|
@@ -226,7 +342,7 @@ | |
КонецЕсли; | ||
|
||
ДлинаПрефикса = СтрДлина(Префикс); | ||
Возврат СтрНайти(ВРег(Лев(Имя, ДлинаПрефикса)), ВРег(Префикс)) > 0; | ||
Возврат СтрНайти(ВРег(Лев(Имя, ДлинаПрефикса)), Префикс) > 0; | ||
|
||
КонецФункции | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Предлагаю сразу пропускать тест, если у документа нет реквизита Комментарий
сейчас, если я правильно понимаю, будет выдана ошибка, что неверно.
не во всех документах есть этот реквизит.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
готово