-
Notifications
You must be signed in to change notification settings - Fork 98
Expand file tree
/
Copy pathall.os
More file actions
145 lines (101 loc) · 8.4 KB
/
Copy pathall.os
File metadata and controls
145 lines (101 loc) · 8.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
#Использовать tempfiles
#Использовать oscript-yaml
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
Перем БДД; //контекст фреймворка 1bdd
// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;
ВсеШаги = Новый Массив;
ВсеШаги.Добавить("ЯСоздаюТестовыйФайлAuthorsВКаталогеИзПеременной");
ВсеШаги.Добавить("ЯЗаписываюВФайлVersionВКаталогеИзПеременной");
ВсеШаги.Добавить("ЯСоздаюФайлНастройкиИзФайлаИСохраняюВПеременную");
Возврат ВсеШаги;
КонецФункции
// Реализация шагов
// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
КонецПроцедуры
// Процедура выполняется после завершения каждого сценария
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
КонецПроцедуры
//Я создаю тестовый файл AUTHORS в каталоге из переменной "ПутьКаталогаИсходников_1"
Процедура ЯСоздаюТестовыйФайлAuthorsВКаталогеИзПеременной(Знач ИмяПеременной) Экспорт
ПутьКаталогаИсходников = БДД.ПолучитьИзКонтекста(ИмяПеременной);
ФайлАвторов = Новый ЗаписьТекста;
ФайлАвторов.Открыть(ОбъединитьПути(ПутьКаталогаИсходников, "AUTHORS"), "utf-8");
ФайлАвторов.ЗаписатьСтроку("Администратор=Администратор <admin@localhost>");
ФайлАвторов.ЗаписатьСтроку("Отладка=Отладка <debug@localhost>");
ФайлАвторов.Закрыть();
КонецПроцедуры
//Я записываю "0" в файл VERSION в каталоге из переменной "ПутьКаталогаИсходников_1"
Процедура ЯЗаписываюВФайлVersionВКаталогеИзПеременной(Знач НомерВерсии, Знач ИмяПеременной) Экспорт
ПутьКаталогаИсходников = БДД.ПолучитьИзКонтекста(ИмяПеременной);
ПутьКФайлуВерсий = ОбъединитьПути(ПутьКаталогаИсходников,"VERSION");
Попытка
Запись = Новый ЗаписьТекста(ПутьКФайлуВерсий, "utf-8");
Запись.ЗаписатьСтроку("<?xml version=""1.0"" encoding=""UTF-8""?>");
Запись.ЗаписатьСтроку("<VERSION>" + НомерВерсии + "</VERSION>");
Запись.Закрыть();
Исключение
Если Запись <> Неопределено Тогда
ОсвободитьОбъект(Запись);
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
КонецПроцедуры
//Я создаю файл настройки из файла <fixtures/default.yaml> и сохраняю в переменную "FILE"
Процедура ЯСоздаюФайлНастройкиИзФайлаИСохраняюВПеременную(Знач ПутьКФайлу, Знач ИмяПеременной) Экспорт
ПутьКаталогаИсходников_1 = БДД.ПолучитьИзКонтекста("ПутьКаталогаИсходников_1");
КаталогХранилища1С_1 = БДД.ПолучитьИзКонтекста("КаталогХранилища1С_1");
ПутьКаталогаИсходников_2 = БДД.ПолучитьИзКонтекста("ПутьКаталогаИсходников_2");
КаталогХранилища1С_2 = БДД.ПолучитьИзКонтекста("КаталогХранилища1С_2");
ПутьКаталогаИсходниковРасширения = БДД.ПолучитьИзКонтекста("ПутьКаталогаИсходниковРасширения");
КаталогХранилищаРасширения = БДД.ПолучитьИзКонтекста("КаталогХранилищаРасширения");
ЧтениеТекста = Новый ЧтениеТекста();
ЧтениеТекста.Открыть(ПутьКФайлу, КодировкаТекста.UTF8);
ТекстYaml = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ТекстYaml = СтрЗаменить(ТекстYaml, "<ПутьКаталогаИсходников_1>", ПутьКаталогаИсходников_1);
ТекстYaml = СтрЗаменить(ТекстYaml, "<КаталогХранилища1С_1>", КаталогХранилища1С_1);
ТекстYaml = СтрЗаменить(ТекстYaml, "<ПутьКаталогаИсходников_2>", ПутьКаталогаИсходников_2);
ТекстYaml = СтрЗаменить(ТекстYaml, "<КаталогХранилища1С_2>", КаталогХранилища1С_2);
ТекстYaml = СтрЗаменить(ТекстYaml, "<ПутьКаталогаИсходниковРасширения>", ПутьКаталогаИсходниковРасширения);
ТекстYaml = СтрЗаменить(ТекстYaml, "<КаталогХранилищаРасширения>", КаталогХранилищаРасширения);
ВременныйФайл = ВременныеФайлы.СоздатьФайл(".yaml");
ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл);
ЗаписьТекста.Записать(ТекстYaml);
ЗаписьТекста.Закрыть();
ЧтениеТекста = Новый ЧтениеТекста();
ЧтениеТекста.Открыть(ВременныйФайл, КодировкаТекста.UTF8);
ТекстYaml = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
Парсер = Новый ПарсерYaml();
Результа = Парсер.ПрочитатьYaml(ТекстYaml);
ТекстJson = ОБъектВJson(Результа);
ВременныйФайл = ВременныеФайлы.СоздатьФайл(".json");
ЗаписьТекста = Новый ЗаписьТекста(ВременныйФайл);
ЗаписьТекста.Записать(ТекстJson);
ЗаписьТекста.Закрыть();
БДД.СохранитьВКонтекст(ИмяПеременной, ВременныйФайл);
КонецПроцедуры
Функция ОБъектВJson(Знач Объект, ПараметрыЗаписи = Неопределено) Экспорт
Если ПараметрыЗаписи = Неопределено Тогда
ПараметрыЗаписи = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Авто, " ", ,,,,,, Истина);
КонецЕсли;
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписи);
ЗаписатьJSON(ЗаписьJSON, Объект);
Возврат ЗаписьJSON.Закрыть();
КонецФункции
Функция ОбъектИзJson(ТекстJSON, ЧитатьВСтруктуру = Ложь, ФорматДаты = Неопределено) Экспорт
Если ФорматДаты = Неопределено Тогда
ФорматДаты = ФорматДатыJSON.ISO;
КонецЕсли;
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ТекстJSON);
Объект = ПрочитатьJSON(ЧтениеJSON,
НЕ ЧитатьВСтруктуру,,
ФорматДаты);
ЧтениеJSON.Закрыть();
Возврат Объект;
КонецФункции