Skip to content

Commit 9b74c28

Browse files
committed
Исправлены тесты на настройки
1 parent 8891003 commit 9b74c28

File tree

5 files changed

+163
-28
lines changed

5 files changed

+163
-28
lines changed

features/step_definitions/Настройки.os

Lines changed: 121 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,11 @@
3333
Процедура ЯЧитаюНастройкиИзФайла(Знач ПутьФайла) Экспорт
3434
Файл = Новый Файл(ОбъединитьПути(ТекущийКаталог(), ПутьФайла));
3535
// Ожидаем.Что(Файл.Существует(), СтрШаблон("Ожидали, что файл <%1> существует, а это не так!", Файл.ПолноеИмя)).ЭтоИстина();
36+
НастройкиOpm.СброситьНастройки();
37+
НастроитьOpmИзФайла(Файл.ПолноеИмя);
38+
// НастройкиOpm.УстановитьФайлНастроек(Файл.ПолноеИмя);
3639

37-
НастройкиПриложенияOpm.УстановитьФайлНастроек(Файл.ПолноеИмя);
38-
39-
Настройки = НастройкиПриложенияOpm.Получить();
40+
Настройки = НастройкиOpm.ПолучитьНастройки();
4041
БДД.СохранитьВКонтекст(КлючКонтекста(), Настройки);
4142
КонецПроцедуры
4243

@@ -75,6 +76,123 @@
7576
Возврат Значение;
7677
КонецФункции
7778

79+
Процедура НастроитьOpmИзФайла(ПутьКФайлуНастроек)
80+
81+
НастройкиOpmИзФайлов = ПрочитатьФайлНастроек(ПутьКФайлуНастроек);
82+
83+
Если НастройкиOpmИзФайлов.Количество() = 0 Тогда
84+
Возврат;
85+
КонецЕсли;
86+
87+
НастройкиПроксиЕсть = ПолучитьЗначение(НастройкиOpmИзФайлов,"Прокси", Неопределено);
88+
89+
Если Не НастройкиПроксиЕсть = Неопределено Тогда
90+
91+
НастройкиПрокси = НастройкиOpmИзФайлов.Прокси;
92+
93+
Сервер = ПолучитьЗначение(НастройкиПрокси, "Сервер", "");
94+
Порт = Число(ПолучитьЗначение(НастройкиПрокси, "Порт", 0));
95+
Пользователь = ПолучитьЗначение(НастройкиПрокси, "Пользователь", "");
96+
Пароль = ПолучитьЗначение(НастройкиПрокси, "Пароль", "");
97+
98+
НастройкиOpm.УстановитьНастройкиПроксиСервера(Сервер, Порт, Пользователь, Пароль);
99+
100+
ПроксиПоУмолчанию = ПолучитьЗначение(НастройкиПрокси,"ПроксиПоУмолчанию", Неопределено);
101+
102+
Если Не ПроксиПоУмолчанию = Неопределено Тогда
103+
104+
НастройкиOpm.УстановитьСистемныеНастройкиПроксиСервера(ПроксиПоУмолчанию);
105+
106+
КонецЕсли;
107+
108+
ИспользованиеПрокси = ПолучитьЗначение(НастройкиПрокси,"ИспользованиеПрокси", Неопределено);
109+
110+
Если Не ИспользованиеПрокси = Неопределено Тогда
111+
112+
НастройкиOpm.УстановитьИспользованиеПрокси(ИспользованиеПрокси);
113+
114+
КонецЕсли;
115+
116+
КонецЕсли;
117+
118+
СоздаватьShСкриптЗапуска = ПолучитьЗначение(НастройкиOpmИзФайлов,"СоздаватьShСкриптЗапуска", Неопределено);
119+
120+
Если Не СоздаватьShСкриптЗапуска = Неопределено Тогда
121+
122+
НастройкиOpm.УстановитьСозданиеShСкриптЗапуска(СоздаватьShСкриптЗапуска);
123+
124+
КонецЕсли;
125+
126+
СервераПакетов = ПолучитьЗначение(НастройкиOpmИзФайлов,"СервераПакетов", Неопределено);
127+
128+
Если Не СервераПакетов = Неопределено Тогда
129+
Индекс = 1;
130+
131+
Для каждого ДополнительныйСервер Из СервераПакетов Цикл
132+
133+
Сервер = ПолучитьЗначение(ДополнительныйСервер, "Сервер", "");
134+
Порт = Число(ПолучитьЗначение(ДополнительныйСервер, "Порт", 80));
135+
ПутьНаСервере = ПолучитьЗначение(ДополнительныйСервер, "ПутьНаСервере", "/");
136+
Имя = ПолучитьЗначение(ДополнительныйСервер, "Имя", СтрШаблон("ДопСервер_%1",Индекс));
137+
Приоритет = Число(ПолучитьЗначение(ДополнительныйСервер, "Приоритет", 0));
138+
139+
Если ПустаяСтрока(Сервер) Тогда
140+
// Лог.Отладка("Для дополнительного сервера <%1> не задан адрес", Индекс);
141+
Продолжить;
142+
КонецЕсли;
143+
144+
НастройкиOpm.ДобавитьСерверПакетов(Имя, Сервер, ПутьНаСервере, Порт, Приоритет);
145+
Индекс = Индекс +1;
146+
147+
КонецЦикла;
148+
149+
КонецЕсли;
150+
151+
КонецПроцедуры
152+
153+
Функция ПрочитатьФайлНастроек(Знач ПутьФайлаНастроек)
154+
155+
Если НЕ Новый Файл(ПутьФайлаНастроек).Существует() Тогда
156+
Возврат НОвый Соответствие;
157+
КонецЕсли;
158+
159+
Текст = ПрочитатьФайл(ПутьФайлаНастроек);
160+
161+
Чтение = Новый ПарсерJSON;
162+
Настройки = Чтение.ПрочитатьJSON(Текст,,,Истина);
163+
164+
Возврат Настройки;
165+
166+
КонецФункции
167+
168+
Функция ПрочитатьФайл(Знач Путь)
169+
170+
Чтение = Новый ЧтениеТекста(Путь);
171+
Текст = Чтение.Прочитать();
172+
Чтение.Закрыть();
173+
174+
Возврат Текст;
175+
176+
КонецФункции
177+
178+
Функция ПолучитьЗначение(ВходящаяСтруктура, Ключ, ЗначениеПоУмолчанию)
179+
180+
Перем ЗначениеКлюча;
181+
182+
Если Не ВходящаяСтруктура.Свойство(Ключ, ЗначениеКлюча) Тогда
183+
184+
Возврат ЗначениеПоУмолчанию;
185+
186+
КонецЕсли;
187+
188+
Если НЕ ЗначениеЗаполнено(ЗначениеКлюча) Тогда
189+
Возврат ЗначениеПоУмолчанию;
190+
КонецЕсли;
191+
192+
Возврат ЗначениеКлюча;
193+
194+
КонецФункции
195+
78196
Функция КонвертироватьЗначениеПриНеобходимости(Знач ЗначениеНастройки)
79197
Если ТипЗнч(ЗначениеНастройки) = Тип("Строка") Тогда
80198
ЗначениеНастройки = НРег(ЗначениеНастройки);

features/Настройки.feature

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,34 @@
1818
Допустим Я копирую файл "opm.cfg" из каталога "tests/fixtures" проекта в рабочий каталог
1919
Когда я читаю настройки из файла "opm.cfg"
2020
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false"
21-
И значение настройки "Прокси.ИспользоватьПрокси" равно "false"
22-
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "false"
23-
И значение настройки "Прокси.Сервер" равно ""
24-
И значение настройки "Прокси.Порт" равно 0
25-
И значение настройки "Прокси.Пользователь" равно ""
26-
И значение настройки "Прокси.Пароль" равно ""
27-
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false"
21+
И значение настройки "ИспользоватьПрокси" равно "false"
22+
И значение настройки "ИспользоватьСистемныйПрокси" равно "false"
23+
И значение настройки "НастройкиПрокси.Сервер" равно ""
24+
И значение настройки "НастройкиПрокси.Порт" равно 0
25+
И значение настройки "НастройкиПрокси.Пользователь" равно ""
26+
И значение настройки "НастройкиПрокси.Пароль" равно ""
27+
И значение настройки "НастройкиПрокси.ИспользоватьАутентификациюОС" равно "false"
2828

2929
Сценарий: Получение значения по умолчанию, если настройка не задана в файле настроек
3030
Допустим Я копирую файл "opm-incomplete.cfg" из каталога "tests/fixtures" проекта в рабочий каталог
3131
Когда я читаю настройки из файла "opm-incomplete.cfg"
3232
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false"
33-
И значение настройки "Прокси.ИспользоватьПрокси" равно "false"
34-
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "Истина"
35-
И значение настройки "Прокси.Сервер" равно "Неопределено"
36-
И значение настройки "Прокси.Порт" равно 0
37-
И значение настройки "Прокси.Пользователь" равно "Неопределено"
38-
И значение настройки "Прокси.Пароль" равно "Неопределено"
39-
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false"
33+
И значение настройки "ИспользоватьПрокси" равно "Истина"
34+
И значение настройки "ИспользоватьСистемныйПрокси" равно "Истина"
35+
И значение настройки "НастройкиПрокси.Сервер" равно ""
36+
И значение настройки "НастройкиПрокси.Порт" равно 0
37+
И значение настройки "НастройкиПрокси.Пользователь" равно ""
38+
И значение настройки "НастройкиПрокси.Пароль" равно ""
39+
И значение настройки "НастройкиПрокси.ИспользоватьАутентификациюОС" равно "false"
4040

4141
Сценарий: Получение значений по умолчанию, если файл настроек отсутствует
4242
Дано Файл "opm.cfg" не существует
4343
Когда я читаю настройки из файла "opm.cfg"
4444
Тогда значение настройки "СоздаватьShСкриптЗапуска" равно "false"
45-
И значение настройки "Прокси.ИспользоватьПрокси" равно "false"
46-
И значение настройки "Прокси.ПроксиПоУмолчанию" равно "Истина"
47-
И значение настройки "Прокси.Сервер" равно "Неопределено"
48-
И значение настройки "Прокси.Порт" равно 0
49-
И значение настройки "Прокси.Пользователь" равно "Неопределено"
50-
И значение настройки "Прокси.Пароль" равно "Неопределено"
51-
И значение настройки "Прокси.ИспользоватьАутентификациюОС" равно "false"
45+
И значение настройки "ИспользоватьПрокси" равно "false"
46+
И значение настройки "ИспользоватьСистемныйПрокси" равно "false"
47+
И значение настройки "НастройкиПрокси.Сервер" равно ""
48+
И значение настройки "НастройкиПрокси.Порт" равно ""
49+
И значение настройки "НастройкиПрокси.Пользователь" равно ""
50+
И значение настройки "НастройкиПрокси.Пароль" равно ""
51+
И значение настройки "НастройкиПрокси.ИспользоватьАутентификациюОС" равно "false"

src/core/Модули/НастройкиOpm.os

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,11 @@
1010
Возврат мНастройки;
1111
КонецФункции
1212

13-
Процедура УстановитьНастройкиПроксиСервера(Знач Сервер, Знач Порт = 0 , Знач Пользователь = "", Знач Пароль = "", Знач ИспользоватьАутентификациюОС = Ложь) Экспорт
13+
Процедура УстановитьНастройкиПроксиСервера(Знач Сервер,
14+
Знач Порт = 0,
15+
Знач Пользователь = "",
16+
Знач Пароль = "",
17+
Знач ИспользоватьАутентификациюОС = Ложь) Экспорт
1418

1519
НастройкиПрокси = Новый Структура();
1620

@@ -87,13 +91,23 @@
8791

8892
КонецФункции //
8993

90-
Процедура ДобавитьСерверПакетов(Знач Имя, Знач Сервер, Знач ПутьНаСервере = "", Знач Порт = 80, Знач Приоритет = Неопределено) Экспорт
94+
Процедура ДобавитьСерверПакетов(Знач Имя,
95+
Знач Сервер,
96+
Знач ПутьНаСервере = "",
97+
Знач Порт = 80,
98+
Знач Приоритет = Неопределено) Экспорт
9199

92100
мНастройки.СервераПакетов.Добавить(НастройкиСервераПакетов(Имя, Сервер, ПутьНаСервере, Порт, Приоритет));
93101
Лог.Отладка("Добавлен дополнительный сервер <%1>, Адрес <%2>, ПутьНаСервере <%3>, Порт <%4>, Приоритет <%5>", Имя, Сервер, ПутьНаСервере, Порт, Приоритет);
94102

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

105+
Процедура СброситьНастройки() Экспорт
106+
107+
Инициализация();
108+
109+
КонецПроцедуры
110+
97111
Процедура Инициализация()
98112

99113
мНастройки = Новый Структура();

tests/download.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#Использовать fs
33
#Использовать tempfiles
44

5-
#Использовать "../src/core"
5+
#Использовать "../src/cmd"
66

77
Перем Лог;
88

tests/fixtures/opm-incomplete.cfg

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
{
2-
}
2+
"Прокси": {
3+
"ПроксиПоУмолчанию": true
4+
}
5+
}

0 commit comments

Comments
 (0)