Skip to content

Commit

Permalink
#331 Правка замечаний, вывод информации об окружении в junit
Browse files Browse the repository at this point in the history
  • Loading branch information
alkoleft committed May 25, 2024
1 parent 678c7ee commit e754a2b
Show file tree
Hide file tree
Showing 8 changed files with 84 additions and 36 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@

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

Функция ВычислитьБезопасно(Выражение) Экспорт
Функция ВычислитьБезопасно(Выражение, Параметры = Неопределено) Экспорт

#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
УстановитьБезопасныйРежим(Истина);
Expand All @@ -152,35 +152,25 @@

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

Функция ВычислитьБезопасноНаСервере(Знач Выражение) Экспорт
Функция ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры = Неопределено) Экспорт

Возврат ЮТОбщийСлужебныйВызовСервера.ВычислитьБезопасноНаСервере(Выражение);
Если НЕ ЮТСтроки.ЭтоВалидноеИмяПеременной(ИмяМодуля) Тогда
ВызватьИсключение "Передано невалидное имя общего модуля в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`";
КонецЕсли;

Если НЕ ЮТСтроки.ЭтоВалидноеИмяПеременной(ИмяМетода) Тогда
ВызватьИсключение "Передано невалидное имя метода в `ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере`";
КонецЕсли;

Возврат ЮТОбщийСлужебныйВызовСервера.ВызватьФункциюКонфигурацииНаСервере(ИмяМодуля, ИмяМетода, Параметры);

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

Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт

Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры);

#Если НЕ ВебКлиент И НЕ ТонкийКлиент Тогда
Если Безопасно Тогда
УстановитьБезопасныйРежим(Истина);
Попытка
Значение = Вычислить(Выражение);
Исключение
УстановитьБезопасныйРежим(Ложь);
ВызватьИсключение;
КонецПопытки;
УстановитьБезопасныйРежим(Ложь);
Иначе
//@skip-check server-execution-safe-mode
Значение = Вычислить(Выражение);
КонецЕсли;
#Иначе
Значение = Вычислить(Выражение);
#КонецЕсли

Возврат Значение;
Возврат ВычислитьБезопасно(Выражение, Параметры);

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -124,9 +124,11 @@

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

Функция ВычислитьБезопасноНаСервере(Знач Выражение) Экспорт
Функция ВызватьФункциюКонфигурацииНаСервере(Знач ИмяМодуля, Знач ИмяМетода, Знач Параметры = Неопределено) Экспорт

Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(Выражение);
ПолноеИмяМетода = ЮТСтроки.ДобавитьСтроку(ИмяМодуля, ИмяМетода, ".");

Возврат ЮТМетодыСлужебный.ВызватьФункцию(ПолноеИмяМетода, Параметры, Истина);

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,16 +38,14 @@
Функция ОписаниеОкружения() Экспорт

СистемнаяИнформация = Новый СистемнаяИнформация();
ОписаниеСерверногоОкружения = ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТОкружениеСлужебныйКлиентСервер",
"ОписаниеСерверногоОкружения");

Окружение = Новый Структура;
Окружение.Вставить("ВерсияПлатформы", СистемнаяИнформация.ВерсияПриложения);
Окружение.Вставить("ФайловаяБаза", ЭтоФайловаяБаза());
Окружение.Вставить("ОбычноеПриложение", Ложь);
Окружение.Вставить("ВебКлиент", Ложь);
Окружение.Вставить("ТолстыйКлиент", Ложь);
Окружение.Вставить("ЛокальПлатформы", ЛокальПлатформы());
Окружение.Вставить("ЛокальИнтерфейса", ЛокальИнтерфейса());
Окружение.Вставить("ИнформационнаяСреда", "DEV");

#Если ВебКлиент Тогда
Окружение.ВебКлиент = Истина;
Expand All @@ -58,15 +56,26 @@
Окружение.ТолстыйКлиент = Истина;
#КонецЕсли

Окружение.Вставить("ЛокальПлатформы", ЛокальПлатформы());
Окружение.Вставить("ЛокальИнтерфейса", ЛокальИнтерфейса());
Окружение.Вставить("ВстроенныйЯзык", ОписаниеСерверногоОкружения.ВстроенныйЯзык);

Окружение.Вставить("ИнформационнаяСреда", "DEV");

Платформа = Платформа(СистемнаяИнформация);
Окружение.Вставить("ОперационнаяСистемаКлиент", Платформа.ОперационнаяСистема);
Окружение.Вставить("АрхитектураКлиент", Платформа.Архитектура);

// TODO придумать другой безопасный универсальный вызов сервера
ОписаниеСерверногоОкружения = ЮТМетодыСлужебный.ВычислитьБезопасноНаСервере("ЮТОкружениеСлужебныйКлиентСервер.ОписаниеСерверногоОкружения()");
Окружение.Вставить("ОперационнаяСистемаСервер", ОписаниеСерверногоОкружения.ОперационнаяСистема);
Окружение.Вставить("АрхитектураСервер", ОписаниеСерверногоОкружения.Архитектура);
Окружение.Вставить("ВстроенныйЯзык", ОписаниеСерверногоОкружения.ВстроенныйЯзык);

Окружение.Вставить("ТестовыйДвижок", ОписаниеСерверногоОкружения.ТестовыйДвижок);
Окружение.Вставить("ВерсияТестовогоДвижка", ОписаниеСерверногоОкружения.ВерсияТестовогоДвижка);
Окружение.Вставить("ВерсияПлатформы", СистемнаяИнформация.ВерсияПриложения);
Окружение.Вставить("Конфигурация", ОписаниеСерверногоОкружения.Конфигурация);
Окружение.Вставить("ВерсияКонфигурации", ОписаниеСерверногоОкружения.ВерсияКонфигурации);
//@skip-check use-non-recommended-method
Окружение.Вставить("ВремяЗапуска", ТекущаяДата());

//@skip-check constructor-function-return-section
Возврат Окружение;
Expand Down Expand Up @@ -141,7 +150,15 @@
Окружение = Новый Структура;
Окружение.Вставить("ОперационнаяСистема", Платформа.ОперационнаяСистема);
Окружение.Вставить("Архитектура", Платформа.Архитектура);
Окружение.Вставить("ВстроенныйЯзык", Формат(Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский, "БЛ=en; БИ=ru;"));

ЭтоРусскийВстроенныйЯзык = Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский;
Окружение.Вставить("ВстроенныйЯзык", Формат(ЭтоРусскийВстроенныйЯзык, "БЛ=en; БИ=ru;"));

Расширение = Метаданные.ОбщиеМодули.ЮТОкружениеСлужебныйКлиентСервер.РасширениеКонфигурации();
Окружение.Вставить("ТестовыйДвижок", Расширение.Имя);
Окружение.Вставить("ВерсияТестовогоДвижка", Расширение.Версия);
Окружение.Вставить("Конфигурация", Метаданные.Представление());
Окружение.Вставить("ВерсияКонфигурации", Метаданные.Версия);

Возврат Окружение;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@

КонецЦикла;

ЗаписатьСвойства(ЗаписьXML, Новый Структура("executor, reportDate", "BIA YAxUnit", ТекущаяДата()));
Окружение = ЮТест.Окружение();
ЗаписатьСвойства(ЗаписьXML, Окружение);

ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,20 @@

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

// Фрмирует сообщение об ошибки.
//
// Параметры:
// Описание - Строка - Префикс текста ошибки
// Ошибка - Строка, ИнформацияОбОшибке -
//
// Возвращаемое значение:
// Строка
Функция ПредставлениеОшибки(Описание, Ошибка = Неопределено) Экспорт

Возврат ЮТРегистрацияОшибокСлужебный.ПредставлениеОшибки(Описание, Ошибка);

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

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

#Область СлужебныеПроцедурыИФункции
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,15 @@

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

Функция ПредставлениеОшибки(Знач Описание, Знач Ошибка) Экспорт
Функция ПредставлениеОшибки(Описание, Ошибка) Экспорт

Если ТипЗнч(Ошибка) = Тип("ИнформацияОбОшибке") Тогда
Ошибка = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка);
ПредставлениеОшибки = Символы.ПС + ПодробноеПредставлениеОшибки(Ошибка);
Иначе
ПредставлениеОшибки = Ошибка;
КонецЕсли;

Возврат СтрШаблон("%1: %2", Описание, Ошибка);
Возврат ЮТСтроки.ДобавитьСтроку(Описание, ПредставлениеОшибки, ": ");

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,9 @@

ЮТЛогирование.Отладка(СтрШаблон("Обработка события `%1` - `%2`", ИмяСобытия, ПолноеИмяМетода));
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода, ПараметрыСобытия);
Если Ошибка <> Неопределено Тогда
ЮТЛогирование.Ошибка(ЮТРегистрацияОшибок.ПредставлениеОшибки("Ошибка обработки события", Ошибка));
КонецЕсли;

Если Ошибка <> Неопределено Тогда
Ошибки.Добавить(Ошибка);
Expand Down
19 changes: 19 additions & 0 deletions exts/yaxunit/src/CommonModules/ЮТСтроки/Module.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,25 @@

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

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

Попытка
Проверка = Новый Структура;
Проверка.Вставить(ИмяПеременной);
Возврат Истина;
Исключение
Возврат Ложь;
КонецПопытки;

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

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

#Область СлужебныеПроцедурыИФункции
Expand Down

0 comments on commit e754a2b

Please sign in to comment.