mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-11-19 20:31:55 +02:00
#331 Сбор окружения
This commit is contained in:
parent
4e55456043
commit
678c7ee87b
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
4
.github/PULL_REQUEST_TEMPLATE.md
vendored
@ -1,7 +1,7 @@
|
||||
<!-- Важно: Пожалуйста, перед созданием PR создайте проблему (issue) -->
|
||||
<!-- Любые изменения необходимо описать и при необходимостиобсудить, прежде чем продолжить. Невыполнение этого требования может привести к отклонению запроса на включение. -->
|
||||
<!-- Любые изменения необходимо описать и при необходимости обсудить, прежде чем продолжить. Невыполнение этого требования может привести к отклонению запроса на включение. -->
|
||||
|
||||
## Описание изменний
|
||||
## Описание изменений
|
||||
|
||||
<!-- Разместите здесь краткое описание изменений -->
|
||||
|
||||
|
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -31,6 +31,7 @@
|
||||
"помогаторы",
|
||||
"пресетов",
|
||||
"Регистронезависимое",
|
||||
"реквеста",
|
||||
"релизный",
|
||||
"Сериализатор",
|
||||
"сериализацию",
|
||||
|
@ -70,47 +70,12 @@
|
||||
|
||||
КорневойКаталог = ЮТФайлы.ОбъединитьПути(Результат, "..", "..", "..");
|
||||
КаталогКомпонент = ЮТФайлы.ОбъединитьПути(КорневойКаталог, "ExtCompT");
|
||||
|
||||
ПараметрыТихойУстановки.РабочийКаталог = КаталогКомпонент;
|
||||
Информация = Новый СистемнаяИнформация();
|
||||
ОперационнаяСистема = Неопределено;
|
||||
Архитектура = Неопределено;
|
||||
|
||||
Linux = "Linux";
|
||||
Windows = "Windows";
|
||||
MacOS = "MacOS";
|
||||
ОписаниеПлатформы = ЮТОкружениеСлужебныйКлиентСервер.Платформа(Новый СистемнаяИнформация());
|
||||
ПараметрыТихойУстановки.ОперационнаяСистема = ОписаниеПлатформы.ОперационнаяСистема;
|
||||
ПараметрыТихойУстановки.Архитектура = ОписаниеПлатформы.Архитектура;
|
||||
|
||||
//@skip-check bsl-variable-name-invalid
|
||||
x86 = "i386";
|
||||
//@skip-check bsl-variable-name-invalid
|
||||
x64 = "x86_64";
|
||||
|
||||
ТипКлиентскойПлатформы = Информация.ТипПлатформы;
|
||||
|
||||
Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда
|
||||
ОперационнаяСистема = Linux;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда
|
||||
ОперационнаяСистема = Linux;
|
||||
Архитектура = x64;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда
|
||||
ОперационнаяСистема = Windows;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда
|
||||
ОперационнаяСистема = Windows;
|
||||
Архитектура = x64;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда
|
||||
ОперационнаяСистема = MacOS;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
|
||||
ОперационнаяСистема = MacOS;
|
||||
Архитектура = x64;
|
||||
Иначе
|
||||
ЮТИсполнительСлужебныйКлиент.ОбработкаОшибки("Неподдерживаемый тип платформы");
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыТихойУстановки.ОперационнаяСистема = ОперационнаяСистема;
|
||||
ПараметрыТихойУстановки.Архитектура = Архитектура;
|
||||
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыТихойУстановки);
|
||||
|
||||
КонецПроцедуры
|
||||
|
@ -152,6 +152,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВычислитьБезопасноНаСервере(Знач Выражение) Экспорт
|
||||
|
||||
Возврат ЮТОбщийСлужебныйВызовСервера.ВычислитьБезопасноНаСервере(Выражение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВызватьФункцию(ПолноеИмяМетода, Параметры, Безопасно = Истина) Экспорт
|
||||
|
||||
Выражение = СтрокаВызоваМетода(ПолноеИмяМетода, Параметры);
|
||||
|
@ -124,6 +124,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВычислитьБезопасноНаСервере(Знач Выражение) Экспорт
|
||||
|
||||
Возврат ЮТМетодыСлужебный.ВычислитьБезопасно(Выражение);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -0,0 +1,167 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2024 BIA-Technologies Limited Liability Company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Собирает информацию об окружения, как сервера, так и клиента.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание окружения:
|
||||
// * ВерсияПлатформы - Строка
|
||||
// * ФайловаяБаза - Булево
|
||||
// * ОбычноеПриложение - Булево
|
||||
// * ВебКлиент - Булево
|
||||
// * ТолстыйКлиент - Булево
|
||||
// * ЛокальПлатформы - Строка
|
||||
// * ЛокальИнтерфейса - Строка
|
||||
// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS
|
||||
// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386
|
||||
// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS
|
||||
// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386
|
||||
// * ВстроенныйЯзык - Строка - Возможные значения: ru, en
|
||||
// * ИнформационнаяСреда - Строка
|
||||
Функция ОписаниеОкружения() Экспорт
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация();
|
||||
|
||||
Окружение = Новый Структура;
|
||||
Окружение.Вставить("ВерсияПлатформы", СистемнаяИнформация.ВерсияПриложения);
|
||||
Окружение.Вставить("ФайловаяБаза", ЭтоФайловаяБаза());
|
||||
Окружение.Вставить("ОбычноеПриложение", Ложь);
|
||||
Окружение.Вставить("ВебКлиент", Ложь);
|
||||
Окружение.Вставить("ТолстыйКлиент", Ложь);
|
||||
Окружение.Вставить("ЛокальПлатформы", ЛокальПлатформы());
|
||||
Окружение.Вставить("ЛокальИнтерфейса", ЛокальИнтерфейса());
|
||||
Окружение.Вставить("ИнформационнаяСреда", "DEV");
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
Окружение.ВебКлиент = Истина;
|
||||
#ИначеЕсли ТолстыйКлиентОбычноеПриложение Тогда
|
||||
Окружение.ОбычноеПриложение = Истина;
|
||||
Окружение.ТолстыйКлиент = Истина;
|
||||
#ИначеЕсли ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
Окружение.ТолстыйКлиент = Истина;
|
||||
#КонецЕсли
|
||||
|
||||
Платформа = Платформа(СистемнаяИнформация);
|
||||
Окружение.Вставить("ОперационнаяСистемаКлиент", Платформа.ОперационнаяСистема);
|
||||
Окружение.Вставить("АрхитектураКлиент", Платформа.Архитектура);
|
||||
|
||||
// TODO придумать другой безопасный универсальный вызов сервера
|
||||
ОписаниеСерверногоОкружения = ЮТМетодыСлужебный.ВычислитьБезопасноНаСервере("ЮТОкружениеСлужебныйКлиентСервер.ОписаниеСерверногоОкружения()");
|
||||
Окружение.Вставить("ОперационнаяСистемаСервер", ОписаниеСерверногоОкружения.ОперационнаяСистема);
|
||||
Окружение.Вставить("АрхитектураСервер", ОписаниеСерверногоОкружения.Архитектура);
|
||||
Окружение.Вставить("ВстроенныйЯзык", ОписаниеСерверногоОкружения.ВстроенныйЯзык);
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Окружение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура Инициализация(ПараметрыЗапуска) Экспорт
|
||||
|
||||
Окружение = ОписаниеОкружения();
|
||||
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("Окружение", Окружение, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЭтоФайловаяБаза()
|
||||
|
||||
Возврат СтрНайти(Врег(СтрокаСоединенияИнформационнойБазы()), "FILE=") = 0;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Платформа(СистемнаяИнформация) Экспорт
|
||||
|
||||
ОперационнаяСистема = Неопределено;
|
||||
Архитектура = Неопределено;
|
||||
|
||||
Linux = "Linux";
|
||||
Windows = "Windows";
|
||||
MacOS = "MacOS";
|
||||
|
||||
//@skip-check bsl-variable-name-invalid
|
||||
x86 = "i386";
|
||||
//@skip-check bsl-variable-name-invalid
|
||||
x64 = "x86_64";
|
||||
|
||||
ТипКлиентскойПлатформы = СистемнаяИнформация.ТипПлатформы;
|
||||
|
||||
Если ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86 Тогда
|
||||
ОперационнаяСистема = Linux;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Linux_x86_64 Тогда
|
||||
ОперационнаяСистема = Linux;
|
||||
Архитектура = x64;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86 Тогда
|
||||
ОперационнаяСистема = Windows;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.Windows_x86_64 Тогда
|
||||
ОперационнаяСистема = Windows;
|
||||
Архитектура = x64;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86 Тогда
|
||||
ОперационнаяСистема = MacOS;
|
||||
Архитектура = x86;
|
||||
ИначеЕсли ТипКлиентскойПлатформы = ТипПлатформы.MacOS_x86_64 Тогда
|
||||
ОперационнаяСистема = MacOS;
|
||||
Архитектура = x64;
|
||||
Иначе
|
||||
ВызватьИсключение "Неподдерживаемый тип платформы";
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Новый Структура("ОперационнаяСистема, Архитектура", ОперационнаяСистема, Архитектура);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Если Сервер Тогда
|
||||
Функция ОписаниеСерверногоОкружения() Экспорт
|
||||
|
||||
СистемнаяИнформация = Новый СистемнаяИнформация();
|
||||
Платформа = Платформа(СистемнаяИнформация);
|
||||
|
||||
Окружение = Новый Структура;
|
||||
Окружение.Вставить("ОперационнаяСистема", Платформа.ОперационнаяСистема);
|
||||
Окружение.Вставить("Архитектура", Платформа.Архитектура);
|
||||
Окружение.Вставить("ВстроенныйЯзык", Формат(Метаданные.ВариантВстроенногоЯзыка = Метаданные.СвойстваОбъектов.ВариантВстроенногоЯзыка.Русский, "БЛ=en; БИ=ru;"));
|
||||
|
||||
Возврат Окружение;
|
||||
|
||||
КонецФункции
|
||||
#КонецЕсли
|
||||
|
||||
Функция ЛокальИнтерфейса()
|
||||
|
||||
#Если Клиент Тогда
|
||||
Возврат ТекущийЯзык();
|
||||
#Иначе
|
||||
Возврат ТекущийЯзык().КодЯзыка;
|
||||
#КонецЕсли
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЛокальПлатформы()
|
||||
|
||||
Возврат ТекущийЯзыкСистемы();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f53b66d1-d3a6-48ff-86e3-d684d219a58d">
|
||||
<name>ЮТОкружениеСлужебныйКлиентСервер</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Окружение служебный</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -220,4 +220,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает информацию об окружении.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание окружения:
|
||||
// * ВерсияПлатформы - Строка
|
||||
// * ФайловаяБаза - Булево
|
||||
// * ОбычноеПриложение - Булево
|
||||
// * ВебКлиент - Булево
|
||||
// * ТолстыйКлиент - Булево
|
||||
// * ЛокальПлатформы - Строка
|
||||
// * ЛокальИнтерфейса - Строка
|
||||
// * ОперационнаяСистемаКлиент - Строка - Возможные значения: Linux, Windows, MacOS
|
||||
// * АрхитектураКлиент - Строка - Возможные значения: x86_64, i386
|
||||
// * ОперационнаяСистемаСервер - Строка - Возможные значения: Linux, Windows, MacOS
|
||||
// * АрхитектураСервер - Строка - Возможные значения: x86_64, i386
|
||||
// * ВстроенныйЯзык - Строка - Возможные значения: ru, en
|
||||
// * ИнформационнаяСреда - Строка
|
||||
Функция Окружение() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("Окружение");
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -96,6 +96,7 @@
|
||||
<commonModules>CommonModule.ЮТНастройкиВыполнения</commonModules>
|
||||
<commonModules>CommonModule.ЮТОбщий</commonModules>
|
||||
<commonModules>CommonModule.ЮТОбщийСлужебныйВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ЮТОкружениеСлужебныйКлиентСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТОтчетAllureСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ЮТОтчетJSONСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ЮТОтчетJUnitСлужебный</commonModules>
|
||||
|
@ -26,6 +26,7 @@
|
||||
<content>CommonModule.ЮТМетодыСлужебный</content>
|
||||
<content>CommonModule.ЮТНастройкиВыполнения</content>
|
||||
<content>CommonModule.ЮТОбщийСлужебныйВызовСервера</content>
|
||||
<content>CommonModule.ЮТОкружениеСлужебныйКлиентСервер</content>
|
||||
<content>CommonModule.ЮТОтчетСлужебный</content>
|
||||
<content>CommonModule.ЮТПодключаемыеМодулиСлужебный</content>
|
||||
<content>CommonModule.ЮТПроверкиСлужебный</content>
|
||||
|
@ -7,5 +7,6 @@
|
||||
</synonym>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<content>CommonModule.ЮТЗависимостиСлужебный</content>
|
||||
<content>CommonModule.ЮТОкружениеСлужебныйКлиентСервер</content>
|
||||
<parentSubsystem>Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
|
@ -29,6 +29,7 @@
|
||||
.ДобавитьТест("ПроверкаПереопределенногоКонтекста").Перед("Перед_ПроверкаПереопределенногоКонтекста")
|
||||
.ДобавитьТестовыйНабор("ПовторнаяПроверкаКонтекста")
|
||||
.ДобавитьТест("ПроверкаКонтекста")
|
||||
.ДобавитьТест("Окружение")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -74,10 +75,10 @@
|
||||
ЮТест.Контекст().Значение("Коллекция").Добавить("ПослеВсехТестов");
|
||||
#Если Сервер Тогда
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция"))
|
||||
.ИмеетДлину(18); // Количество вызванных обработчиков событий
|
||||
.ИмеетДлину(20); // Количество вызванных обработчиков событий
|
||||
#Иначе
|
||||
ЮТест.ОжидаетЧто(ЮТест.Контекст().Значение("Коллекция"))
|
||||
.ИмеетДлину(16); // Количество вызванных обработчиков событий
|
||||
.ИмеетДлину(18); // Количество вызванных обработчиков событий
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
@ -151,4 +152,28 @@
|
||||
КонецПроцедуры
|
||||
#КонецЕсли
|
||||
|
||||
Процедура Окружение() Экспорт
|
||||
|
||||
Окружение = ЮТест.Окружение();
|
||||
|
||||
ЮТест.ОжидаетЧто(Окружение)
|
||||
.Заполнено()
|
||||
.ИмеетТип("Структура")
|
||||
.Свойство("ВстроенныйЯзык").Равно("ru")
|
||||
.Свойство("ОбычноеПриложение").Равно(Ложь)
|
||||
.Свойство("ВебКлиент").Равно(Ложь)
|
||||
.Свойство("ТолстыйКлиент").Равно(Ложь)
|
||||
.Свойство("ВерсияПлатформы")
|
||||
.Свойство("ФайловаяБаза")
|
||||
.Свойство("ЛокальПлатформы")
|
||||
.Свойство("ЛокальИнтерфейса")
|
||||
.Свойство("ОперационнаяСистемаКлиент")
|
||||
.Свойство("АрхитектураКлиент")
|
||||
.Свойство("ОперационнаяСистемаСервер")
|
||||
.Свойство("АрхитектураСервер")
|
||||
.Свойство("ИнформационнаяСреда")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
Loading…
Reference in New Issue
Block a user