Skip to content
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

Поддержка регистров сведений и накопления для тестов открытия форм и тестов командного интерфейса #1020

Open
wants to merge 7 commits into
base: develop
Choose a base branch
from
3 changes: 3 additions & 0 deletions tests/smoke/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -280,6 +280,8 @@
* `Отчеты` - для настройки исключений для отчетов
* `Обработки` - для настройки исключений для обработок
* `БизнесПроцессы` - для настройки исключений для бизнес-процессов
* `РегистрыСведений` - для настройки исключений для регистров сведений
* `РегистрыНакопления` - для настройки исключений для регистров накопления
* `ПропускаемыеИсключения` - массив с указанием текстов исключений, при появлении которых дымовой тест не будет считаться упавшим. Допускается поиск по подстроке.
* `ИсключитьФормыЗависящиеОтОтключенныхФункциональныхОпций` - для управления исключением форм, зависящих от отключенных функциональных опций
* `СпособГруппировки` - для настройки способа группировки тестовых случаев для использования в интерактивном режиме
Expand Down Expand Up @@ -687,6 +689,7 @@
- `Отчеты`
- `Обработки`
- `БизнесПроцессы`
- `РегистрыСведений`
- `ВнешниеИсточникиДанных`

Для того, чтобы отключить проверки для форм конкретных видов объектов, нужно указать команду интерфейса в массиве исключений.
Expand Down
73 changes: 71 additions & 2 deletions tests/smoke/smoke.bsp.json
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,74 @@
"Существующие": [
"Удалить*"
]
}
},
"РегистрыСведений": {
"Списки": [
"Удалить*",
"АдресныеОбъекты",
"БезопасноеХранилищеДанных*",
"Версии*",
"ДанныеОбъектовДляРегистрацииВОбменах",
"ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов*",
"ИдентификаторыОбъектовВерсийРасширений",
"ИспользуемыеВидыДоступа*",
"КлючиДоступа*",
"МиграцияПриложений*",
"НастройкиТранспортаОбмена*",
"ОбновлениеКлючейДоступа*",
"РазрешенияНаИспользованиеВнешнихРесурсов*",
"РежимыПодключенияВнешнихМодулей*",
"РезультатыОбменаДанными",
"СообщенияОбменаДанными*",
"СоответствияОбъектовИнформационныхБаз",
"СостоянияОбменовДанными*"
],
"Новые": [
"Удалить*",
"АдресныеОбъекты",
"БезопасноеХранилищеДанных*",
"Версии*",
"ДанныеОбъектовДляРегистрацииВОбменах",
"ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов*",
"ИдентификаторыОбъектовВерсийРасширений",
"ИспользуемыеВидыДоступа*",
"КлючиДоступа*",
"МиграцияПриложений*",
"НастройкиТранспортаОбмена*",
"ОбновлениеКлючейДоступа*",
"РазрешенияНаИспользованиеВнешнихРесурсов*",
"РежимыПодключенияВнешнихМодулей*",
"РезультатыОбменаДанными",
"СообщенияОбменаДанными*",
"СоответствияОбъектовИнформационныхБаз",
"СостоянияОбменовДанными*"
],
"Существующие": [
"Удалить*",
"АдресныеОбъекты",
"БезопасноеХранилищеДанных*",
"Версии*",
"ДанныеОбъектовДляРегистрацииВОбменах",
"ЗапросыРазрешенийНаИспользованиеВнешнихРесурсов*",
"ИдентификаторыОбъектовВерсийРасширений",
"ИспользуемыеВидыДоступа*",
"КлючиДоступа*",
"МиграцияПриложений*",
"НастройкиТранспортаОбмена*",
"ОбновлениеКлючейДоступа*",
"РазрешенияНаИспользованиеВнешнихРесурсов*",
"РежимыПодключенияВнешнихМодулей*",
"РезультатыОбменаДанными",
"СообщенияОбменаДанными*",
"СоответствияОбъектовИнформационныхБаз",
"СостоянияОбменовДанными*"
]
},
"РегистрыНакопления": {
"Списки": [
"Удалить*"
]
}
},

"CommandInterface": {
Expand Down Expand Up @@ -224,8 +291,10 @@
"Сканирование"
],
"БизнесПроцессы": [
],
"РегистрыСведений": [
"Удалить*"
]

},

"smokeInputBasedOn": {
Expand Down
20 changes: 19 additions & 1 deletion tests/smoke/smoke.example.json
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,22 @@
"Удалить*"
]
},
"РегистрыСведений": {
"Списки": [
"Удалить*"
],
"Новые": [
"Удалить*"
],
"Существующие": [
"Удалить*"
]
},
"РегистрыНакопления": {
"Списки": [
"Удалить*"
]
},
"Отчеты": [
"Отчет1"
],
Expand Down Expand Up @@ -164,8 +180,10 @@
"БизнесПроцессы": [
"Удалить*",
"БизнесПроцесс2"
],
"РегистрыСведений": [
"Удалить*"
]

},

"ПроведениеДокументов":{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -680,6 +680,7 @@
ДобавитьИсключения(ИсключаемыеОперации, "Отчеты", "Отчет.");
ДобавитьИсключения(ИсключаемыеОперации, "Обработки", "Обработка.");
ДобавитьИсключения(ИсключаемыеОперации, "БизнесПроцессы", "БизнесПроцесс.");
ДобавитьИсключения(ИсключаемыеОперации, "РегистрыСведений", "РегистрСведений.");
ДобавитьИсключения(ИсключаемыеОперации, "ВнешниеИсточникиДанных", "ВнешнийИсточникДанных.");

ИсключаемыеРазделы = Новый Массив;
Expand Down Expand Up @@ -740,6 +741,7 @@
Результат.Вставить("Отчет", "Отчеты");
Результат.Вставить("Обработка", "Обработки");
Результат.Вставить("БизнесПроцесс", "БизнесПроцессы");
Результат.Вставить("РегистрСведений", "РегистрыСведений");
Результат.Вставить("ВнешнийИсточникДанных", "ВнешниеИсточникиДанных");

Возврат Новый ФиксированнаяСтруктура(Результат);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,51 @@
Возврат ПолучитьИсключения(ВидыМетаданных.БизнесПроцессы, ВидыПроверок.Новые);

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

// Получить список значений для исключения форм списков регистров сведений.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыСведений_Списки() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыСведений, ВидыПроверок.Списки);

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

// Получить список значений для исключения существующих записей регистров сведений.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыСведений_Существующие() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыСведений, ВидыПроверок.Существующие);

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

// Получить список значений для исключения новых записей регистров сведений.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыСведений_Новые() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыСведений, ВидыПроверок.Новые);

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

// Получить список значений для исключения форм списков регистров накопления.
//
// Возвращаемое значение:
// СписокЗначений, Ложь - ключ - это имя метаданного, Ложь возвращается, если полностью исключается вид проверки
//
Функция ПолучитьСписокИсключений_РегистрыНакопления_Списки() Экспорт

Возврат ПолучитьИсключения(ВидыМетаданных.РегистрыНакопления, ВидыПроверок.Списки);

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

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

#Область ФормированиеСпискаТестовыхСлучаев
Expand Down Expand Up @@ -1145,6 +1190,8 @@
ВидыМетаданных.Вставить("Обработки", "Обработки");
ВидыМетаданных.Вставить("Отчеты", "Отчеты");
ВидыМетаданных.Вставить("БизнесПроцессы", "БизнесПроцессы");
ВидыМетаданных.Вставить("РегистрыСведений", "РегистрыСведений");
ВидыМетаданных.Вставить("РегистрыНакопления", "РегистрыНакопления");
ВидыМетаданных = Новый ФиксированнаяСтруктура(ВидыМетаданных);
КонецЕсли;
Возврат ВидыМетаданных;
Expand Down Expand Up @@ -1561,8 +1608,6 @@
КонецЕсли;
КонецФункции



Функция СоздатьЭлементИВернутьСсылку(ИД, Наименование, ПроверяемоеПравоДоступа = Неопределено) Экспорт
Элем = СоздатьЭлемент(ИД, Наименование, ПроверяемоеПравоДоступа);
Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
Expand Down Expand Up @@ -1681,10 +1726,80 @@
Элем = СоздатьБизнесПроцесс(ИД, ПроверяемоеПравоДоступа);
Возврат ?(Элем = Неопределено, Неопределено, Элем.Ссылка);
КонецФункции

// Получить ключ существующей записи регистра сведений.
//
// Параметры:
// ИД - Строка - Имя регистра.
// НужноИсключениеЕслиНеНайденоЗаписей - Булево - Флаг выброса исключений.
// ДопОписаниеДляИсключения - Строка - Дополнительный текст исключения.
//
// Возвращаемое значение:
// РегистрСведенийКлючЗаписи, Неопределено - Ключ записи регистра или Неопределено
//
Функция ПолучитьСуществующуюЗаписьРегистраИВернутьКлючЗаписи(ИД, НужноИсключениеЕслиНеНайденоЗаписей, ДопОписаниеДляИсключения) Экспорт
Выборка = ВыборкаИзРегистраСведений(ИД);
Успешно = Выборка.Следующий();
Если Не Успешно Тогда
Если НужноИсключениеЕслиНеНайденоЗаписей Тогда
ВызватьИсключение
СтрШаблон_("%1: выборка.Следующий() - не найдено существующих записей %2! ",
ДопОписаниеДляИсключения, Ид);
Иначе
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
НаборИзмерений = СоздатьПустойНаборИзмеренийРегистраСведений(ИД);
ЗаполнитьЗначенияСвойств(НаборИзмерений, Выборка);

КлючЗаписи = РегистрыСведений[ИД].СоздатьКлючЗаписи(НаборИзмерений);

Возврат КлючЗаписи;
КонецФункции

Функция ВыборкаИзРегистраСведений(ИД)

Запрос = Новый Запрос;

ШаблонТекста =
"ВЫБРАТЬ ПЕРВЫЕ 1
| *
|ИЗ
| РегистрСведений.%1 КАК ТаблицаРегистра";

ТекстЗапроса = СтрШаблон(ШаблонТекста, ИД);

Запрос.Текст = ТекстЗапроса;

Возврат Запрос.Выполнить().Выбрать();

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

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

#Область ВспомогательныеМетоды

Функция СоздатьПустойНаборИзмеренийРегистраСведений(ИД)

КлючЗаписи = Новый Структура;

МетаданныеРегистра = Метаданные.РегистрыСведений[ИД];

Измерения = МетаданныеРегистра.Измерения;

Для каждого Измерение Из Измерения Цикл
КлючЗаписи.Вставить(Измерение.Имя);
КонецЦикла;

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

Возврат КлючЗаписи;

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

Функция ИмяМетодаПропускаТестов()
Возврат "ТестДолжен_ПропуститьТестФормы";
КонецФункции
Expand Down
Loading