Skip to content

Commit ab98573

Browse files
committed
Доработка команды all
1 parent 03de27e commit ab98573

File tree

6 files changed

+622
-2
lines changed

6 files changed

+622
-2
lines changed

config-example.yaml

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
globals:
2+
storage-user: Администратор
3+
storage-pwd: ''
4+
git-path: git
5+
temp-dir: ""
6+
v8version: 8.3
7+
domain-email: localhost
8+
lic-try-count: 5
9+
plugins:
10+
enable:
11+
- test
12+
- test2
13+
disable:
14+
- test3
15+
plugins-config:
16+
- git-url: git-url
17+
- push: true
18+
- pull: true
19+
repositories:
20+
- name: <ТестовыйРепозиторий>
21+
disable: true
22+
storage-path: <КаталогХранилища1С_1>
23+
git-local-path: <ПутьКаталогаИсходников_1>
24+
- name: <ТестовыйРепозиторий2>
25+
disable: true
26+
storage-path: <КаталогХранилища1С_2>
27+
git-local-path: <ПутьКаталогаИсходников_2>
28+
storage-user: Администратор
29+
storage-pwd: ''
30+
git-path: git
31+
temp-dir: ""
32+
v8version: 8.3
33+
domain-email: localhost
34+
lic-try-count: 5
35+
plugins:
36+
enable:
37+
- test
38+
- test2
39+
disable:
40+
- test3
41+
plugins-config:
42+
- git-url: git-url
43+
- push: true
44+
- pull: true
45+
46+
47+
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#Использовать tempfiles
2+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
3+
4+
Перем БДД; //контекст фреймворка 1bdd
5+
6+
// Метод выдает список шагов, реализованных в данном файле-шагов
7+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
8+
БДД = КонтекстФреймворкаBDD;
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+
//Я добавляю файл "example.yaml" в каталог проекта с содержанием
46+
//"""
47+
//"""
48+
Процедура ЯДобавляюФайлВКаталогПроектаССодержанием(Знач ИмяФайла, Знач ТекстФайла) Экспорт
49+
КаталогПроекта = БДД.ПолучитьИзКонтекста("КаталогПроекта");
50+
ФайлНастроек = Новый ЗаписьТекста;
51+
ФайлНастроек.Открыть(ОбъединитьПути(КаталогПроекта, ИмяФайла), "utf-8");
52+
ФайлНастроек.ЗаписатьСтроку(ТекстФайла);
53+
ФайлНастроек.Закрыть();
54+
КонецПроцедуры
55+
56+
//Я заменяю "<КаталогХранилища1С_1>" значением из переменной "КаталогХранилища1С_1" в файле "example.yaml"
57+
Процедура ЯЗаменяюЗначениемИзПеременнойВФайле(Знач ЗначениеПоиска, Знач ИмяПеременной, Знач ИмяФайла) Экспорт
58+
59+
КаталогПроекта = БДД.ПолучитьИзКонтекста("КаталогПроекта");
60+
61+
ПутьКФайлу = ОбъединитьПути(КаталогПроекта, ИмяФайла);
62+
63+
ФайлНастроек = Новый ЧтениеТекста(ПутьКФайлу);
64+
ТекстФайла = ФайлНастроек.Прочитать();
65+
ФайлНастроек.Закрыть();
66+
67+
ЗначениеЗамены = БДД.ПолучитьИзКонтекста(ИмяПеременной);
68+
69+
ТекстФайла = СтрЗаменить(ТекстФайла, ЗначениеПоиска, ЗначениеЗамены);
70+
71+
ФайлНастроек = Новый ЗаписьТекста;
72+
ФайлНастроек.Открыть(ПутьКФайлу, "utf-8");
73+
ФайлНастроек.ЗаписатьСтроку(ТекстФайла);
74+
ФайлНастроек.Закрыть();
75+
76+
77+
КонецПроцедуры
78+
79+
//Я устанавливаю авторизацию "Администратор" с паролем "" в ПакетнаяСинхронизация
80+
Процедура ЯУстанавливаюАвторизациюСПаролемВПакетнаясинхронизация(Знач Пользователь, Знач Пароль) Экспорт
81+
82+
ПакетнаяСинхронизация = БДД.ПолучитьИзКонтекста("ПакетнаяСинхронизация");
83+
ПакетнаяСинхронизация.АвторизацияВХранилищеКонфигурации(Пользователь, Пароль);
84+
85+
КонецПроцедуры
86+
87+
//Я устанавливаю версию платформы "8.3" в ПакетнаяСинхронизация
88+
Процедура ЯУстанавливаюВерсиюПлатформыВПакетнаясинхронизация(Знач ВерсияПлатформы) Экспорт
89+
90+
ПакетнаяСинхронизация = БДД.ПолучитьИзКонтекста("ПакетнаяСинхронизация");
91+
ПакетнаяСинхронизация.ВерсияПлатформы(ВерсияПлатформы);
92+
93+
КонецПроцедуры
94+
95+
//Я выполняю выполняют пакетную синхронизацию
96+
Процедура ЯВыполняюВыполняютПакетнуюСинхронизацию() Экспорт
97+
98+
ПакетнаяСинхронизация = БДД.ПолучитьИзКонтекста("ПакетнаяСинхронизация");
99+
ПакетнаяСинхронизация.ВыполнитьСинхронизацию();
100+
101+
КонецПроцедуры
102+
103+
//Я устанавливаю файл настройки "example.yaml" в ПакетнаяСинхронизация
104+
Процедура ЯУстанавливаюФайлНастройкиВПакетнаясинхронизация(Знач ИмяФайла) Экспорт
105+
106+
КаталогПроекта = БДД.ПолучитьИзКонтекста("КаталогПроекта");
107+
108+
ПутьКФайлу = ОбъединитьПути(КаталогПроекта, ИмяФайла);
109+
110+
ПакетнаяСинхронизация = БДД.ПолучитьИзКонтекста("ПакетнаяСинхронизация");
111+
112+
ПакетнаяСинхронизация.УстановитьНастройки(ПутьКФайлу);
113+
114+
КонецПроцедуры

features/sync.batch.feature

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# language: ru
2+
3+
Функционал: Пакетная синхронизация хранилищ конфигурации 1С и гит
4+
Как Пользователь
5+
Я хочу выполнять автоматическую синхронизацию конфигурации из хранилища
6+
Чтобы автоматизировать свою работы с хранилищем с git
7+
8+
Контекст: Тестовый контекст синхронизации
9+
Когда Я создаю новый объект ГитРепозиторий
10+
И Я создаю новый объект ПакетнаяСинхронизация
11+
# Подготовка хранилища 1
12+
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С_1"
13+
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С_1"
14+
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников_1"
15+
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников_1"
16+
# И Я создаю тестовой файл AUTHORS
17+
# И Я записываю "0" в файл VERSION
18+
19+
# Подготовка хранилища 2
20+
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С_2"
21+
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С_2"
22+
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников_2"
23+
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников_2"
24+
# И Я создаю тестовой файл AUTHORS
25+
# И Я записываю "0" в файл VERSION
26+
27+
И Я создаю временный каталог и сохраняю его в переменной "КаталогПроекта"
28+
И Я добавляю файл "example.yaml" в каталог проекта с содержанием
29+
"""
30+
globals:
31+
storage-user: Администратор
32+
storage-pwd: ''
33+
git-path: git
34+
temp-dir: ""
35+
v8version: 8.3
36+
domain-email: localhost
37+
lic-try-count: 5
38+
plugins:
39+
enable:
40+
- test
41+
- test2
42+
disable:
43+
- test3
44+
plugins-config:
45+
- git-url: git-url
46+
- push: true
47+
- pull: true
48+
repositories:
49+
- name: <ТестовыйРепозиторий>
50+
disable: false
51+
storage-path: <КаталогХранилища1С_1>
52+
git-local-path: <ПутьКаталогаИсходников_1>
53+
plugins:
54+
more:
55+
- test3
56+
- name: <ТестовыйРепозиторий2>
57+
disable: true
58+
storage-path: <КаталогХранилища1С_2>
59+
git-local-path: <ПутьКаталогаИсходников_2>
60+
storage-user: Администратор
61+
storage-pwd: ''
62+
git-path: git
63+
temp-dir: ""
64+
v8version: 8.3
65+
domain-email: localhost
66+
lic-try-count: 5
67+
plugins:
68+
enable:
69+
- test
70+
- test2
71+
disable:
72+
- test3
73+
plugins-config:
74+
- git-url: git-url
75+
- push: true
76+
- pull: true
77+
78+
"""
79+
80+
И Я заменяю "<КаталогХранилища1С_1>" значением из переменной "КаталогХранилища1С_1" в файле "example.yaml"
81+
И Я заменяю "<ПутьКаталогаИсходников_1>" значением из переменной "ПутьКаталогаИсходников_1" в файле "example.yaml"
82+
И Я заменяю "<КаталогХранилища1С_2>" значением из переменной "КаталогХранилища1С_2" в файле "example.yaml"
83+
И Я заменяю "<ПутьКаталогаИсходников_2>" значением из переменной "ПутьКаталогаИсходников_2" в файле "example.yaml"
84+
И Я устанавливаю файл настройки "example.yaml" в ПакетнаяСинхронизация
85+
И Я включаю отладку лога с именем "oscript.lib.gitsync.batch"
86+
# И Я включаю отладку лога с именем "oscript.lib.configor"
87+
И Я включаю отладку лога с именем "oscript.lib.configor.yaml"
88+
И Я включаю отладку лога с именем "oscript.lib.configor.constructor"
89+
90+
Сценарий: Простая синхронизация хранилища с git-репозиторием
91+
Допустим Я устанавливаю авторизацию "Администратор" с паролем "" в ПакетнаяСинхронизация
92+
И Я устанавливаю версию платформы "8.3" в ПакетнаяСинхронизация
93+
Когда Я выполняю выполняют пакетную синхронизацию
94+
Тогда Вывод лога содержит "Завершена синхронизации с git"
95+
96+
# Сценарий: Cинхронизация хранилища с git-репозиторием c плагинами
97+
# Допустим Я устанавливаю авторизацию в хранилище пользователя "Администратор" с паролем ""
98+
# И Я устанавливаю версию платформы "8.3"
99+
# И Я создаю временный каталог и сохраняю его в переменной "КаталогПлагинов"
100+
# И Я создаю новый УправлениеПлагинами
101+
# И Я собираю тестовый плагин и сохраняю в контекст "ПутьКФайлуПлагина"
102+
# И Я устанавливаю файл плагина из переменной "ПутьКФайлуПлагина"
103+
# И Я загружаю плагины из каталога в переменной "КаталогПлагинов"
104+
# И Я подключаю плагины в МенеджерСинхронизации
105+
# Когда Я выполняю выполняют синхронизацию
106+
# Тогда Вывод лога содержит "Завершена синхронизации с git"
107+
# И Вывод лога содержит "Вызвано событие <ПриАктивизации> для плагина <test_plugin>"
108+

packagedef

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@
8888
.ЗависитОт("reflector", "0.4.0")
8989
.ЗависитОт("opm", "0.14.1")
9090
.ЗависитОт("cli", "0.9.8")
91+
.ЗависитОт("configor", "0.5.0")
9192
.ВключитьФайл("src")
9293
.ВключитьФайл("docs")
9394
.ВключитьФайл("embedded_plugins")

0 commit comments

Comments
 (0)