Skip to content

Commit dcc7846

Browse files
committed
Заготовка фичи gitsync init и реализация первых шагов #112
1 parent 3dcdd9b commit dcc7846

File tree

3 files changed

+164
-1
lines changed

3 files changed

+164
-1
lines changed

features/gitsync-init.feature

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# language: ru
2+
3+
Функционал: Инициализация каталога исходников конфигурации
4+
Как Пользователь
5+
Я хочу создать каталог исходников конфигурации 1С в git-репозитории
6+
Чтобы выполнять автоматическую выгрузку конфигураций из хранилища
7+
8+
Контекст: Тестовый каталог
9+
Когда я подготовил тестовый каталог
10+
И я установил тестовый каталог как текущий
11+
И я подключил каталог тестового хранилища конфигурации
12+
13+
Сценарий: Инициализация каталога исходников в пустом каталоге внутри git-репозитория
14+
Допустим я создал каталог git-репозитория "git-repo"
15+
И установил каталог "git-repo" как текущий
16+
И я создал каталог исходников
17+
# Допустим каталог исходников существует
18+
# И каталог исходников находится в иерархии git-репозитария
19+
# И каталог исходников пустой
20+
Когда я передаю путь тестового каталога хранилища конфигурации для запуска gitsync
21+
И я передаю путь каталога исходников для запуска gitsync
22+
И я выполняю команду gitsync "init"
23+
Тогда в каталоге исходников создается файл "AUTHORS"
24+
И в каталоге исходников создается файл "VERSION"
25+
И в каталоге исходников не создается файл ".git"
26+
27+
#Сценарий: Инициализация каталога исходников, не находящегося внутри git-репозитория
28+
# Допустим каталог исходников не находится в иерархии git-репозитория
29+
# Когда я передаю путь тестового каталога хранилища конфигурации для запуска gitsync
30+
# И я передаю имя каталога исходников для запуска gitsync
31+
# И я выполняю команду gitsync "init"
32+
# Тогда мне выдаётся ошибка "Каталог %1 не принадлежит git-репозиторию", где %1 это имя каталога исходников
33+
# И работа команды прекращается.
Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2+
#Использовать asserts
3+
#Использовать tempfiles
4+
5+
Перем БДД; //контекст фреймворка 1bdd
6+
7+
Перем Лог;
8+
9+
// Метод выдает список шагов, реализованных в данном файле-шагов
10+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
11+
БДД = КонтекстФреймворкаBDD;
12+
13+
ВсеШаги = Новый Массив;
14+
15+
ВсеШаги.Добавить("ЯПодготовилТестовыйКаталог");
16+
ВсеШаги.Добавить("ЯУстановилТестовыйКаталогКакТекущий");
17+
ВсеШаги.Добавить("ЯПодключилКаталогТестовогоХранилищаКонфигурации");
18+
ВсеШаги.Добавить("ЯСоздалКаталогGit_Репозитория");
19+
ВсеШаги.Добавить("УстановилКаталогКакТекущий");
20+
ВсеШаги.Добавить("ЯСоздалКаталогИсходников");
21+
ВсеШаги.Добавить("ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync");
22+
ВсеШаги.Добавить("ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync");
23+
ВсеШаги.Добавить("ЯВыполняюКомандуGitsync");
24+
ВсеШаги.Добавить("ВКаталогеИсходниковСоздаетсяФайл");
25+
ВсеШаги.Добавить("ВКаталогеИсходниковНеСоздаетсяФайл");
26+
27+
Возврат ВсеШаги;
28+
КонецФункции
29+
30+
// Реализация шагов
31+
32+
// Процедура выполняется перед запуском каждого сценария
33+
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
34+
35+
КонецПроцедуры
36+
37+
// Процедура выполняется после завершения каждого сценария
38+
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
39+
40+
КонецПроцедуры
41+
42+
Функция ИмяЛога() Экспорт
43+
Возврат "bdd.gitsync.feature";
44+
КонецФункции
45+
46+
//я подготовил тестовый каталог
47+
Процедура ЯПодготовилТестовыйКаталог() Экспорт
48+
ВременныйКаталог = Новый Файл(ВременныеФайлы.СоздатьКаталог());
49+
Лог.Отладка("Использую временный каталог "+ВременныйКаталог.ПолноеИмя);
50+
51+
БДД.СохранитьВКонтекст("ВременныйКаталог", ВременныйКаталог);
52+
КонецПроцедуры
53+
54+
//я установил тестовый каталог как текущий
55+
Процедура ЯУстановилТестовыйКаталогКакТекущий() Экспорт
56+
ВременныйКаталог = БДД.ПолучитьИзКонтекста("ВременныйКаталог");
57+
Лог.Отладка(СтрШаблон("ВременныйКаталог <%1>", ВременныйКаталог.ПолноеИмя));
58+
УстановитьТекущийКаталог(ВременныйКаталог.ПолноеИмя);
59+
КонецПроцедуры
60+
61+
//я подключил каталог тестового хранилища конфигурации
62+
Процедура ЯПодключилКаталогТестовогоХранилищаКонфигурации() Экспорт
63+
БДД.СохранитьВКонтекст("ПутьКФайлуХранилища1С", ПутьКВременномуФайлуХранилища1С());
64+
КонецПроцедуры
65+
66+
//я создал каталог git-репозитория "git-repo"
67+
Процедура ЯСоздалКаталогGit_Репозитория(Знач ПутьГитРепозитория) Экспорт
68+
ПутьГитРепозитория = ОбъединитьПути(ТекущийКаталог(), ПутьГитРепозитория);
69+
Лог.Отладка(СтрШаблон("ПутьГитРепозитория <%1>", ПутьГитРепозитория));
70+
КодВозврата = ИнициализироватьТестовоеХранилищеГит(ПутьГитРепозитория);
71+
Ожидаем.Что(КодВозврата, "неверно выполнена команда git init").Равно(0);
72+
КонецПроцедуры
73+
74+
//установил каталог "git-repo" как текущий
75+
Процедура УстановилКаталогКакТекущий(Знач ПутьКаталога) Экспорт
76+
УстановитьТекущийКаталог(ОбъединитьПути(ТекущийКаталог(), ПутьКаталога));
77+
КонецПроцедуры
78+
79+
//я создал каталог исходников
80+
Процедура ЯСоздалКаталогИсходников() Экспорт
81+
ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯСоздалКаталогИсходников> не реализован", "Не реализовано.");
82+
КонецПроцедуры
83+
84+
//я передаю путь тестового каталога хранилища конфигурации для запуска gitsync
85+
Процедура ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync() Экспорт
86+
ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync> не реализован", "Не реализовано.");
87+
КонецПроцедуры
88+
89+
//я передаю путь каталога исходников для запуска gitsync
90+
Процедура ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync() Экспорт
91+
ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync> не реализован", "Не реализовано.");
92+
КонецПроцедуры
93+
94+
//я выполняю команду gitsync "init"
95+
Процедура ЯВыполняюКомандуGitsync(Знач ПарамСтрока1) Экспорт
96+
ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯВыполняюКомандуGitsync> не реализован", "Не реализовано.");
97+
КонецПроцедуры
98+
99+
//в каталоге исходников создается файл "AUTHORS"
100+
Процедура ВКаталогеИсходниковСоздаетсяФайл(Знач ПарамСтрока1) Экспорт
101+
ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ВКаталогеИсходниковСоздаетсяФайл> не реализован", "Не реализовано.");
102+
КонецПроцедуры
103+
104+
//в каталоге исходников не создается файл ".git"
105+
Процедура ВКаталогеИсходниковНеСоздаетсяФайл(Знач ПарамСтрока1) Экспорт
106+
ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ВКаталогеИсходниковНеСоздаетсяФайл> не реализован", "Не реализовано.");
107+
КонецПроцедуры
108+
109+
Функция ИнициализироватьТестовоеХранилищеГит(Знач КаталогРепозитория, Знач КакЧистое = Ложь)
110+
111+
КодВозврата = Неопределено;
112+
ЗапуститьПриложение("git init" + ?(КакЧистое, " --bare", ""), КаталогРепозитория, Истина, КодВозврата);
113+
114+
Возврат КодВозврата;
115+
116+
КонецФункции
117+
118+
Функция ПутьКВременномуФайлуХранилища1С()
119+
120+
Возврат ОбъединитьПути(КаталогFixtures(), "ТестовыйФайлХранилища1С.1CD");
121+
122+
КонецФункции
123+
124+
Функция КаталогFixtures()
125+
Возврат ОбъединитьПути(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "..", "tests"), "fixtures");
126+
КонецФункции
127+
128+
Лог = Логирование.ПолучитьЛог(ИмяЛога());
129+
//Лог.УстановитьУровень(Логирование.ПолучитьЛог("bdd").Уровень());
130+
Лог.УстановитьУровень(УровниЛога.Отладка);

src/gitsync.os

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
Команда = Парсер.ОписаниеКоманды("init", "Создает новый репозиторий и создает служебные файлы");
6464

6565
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ПутьКХранилищу", "Файловый путь к каталогу хранилища конфигурации 1С.");
66-
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ЛокальныйКаталогГит", "Адрес локального репозитория GIT.");
66+
Парсер.ДобавитьПозиционныйПараметрКоманды(Команда, "ЛокальныйКаталогГит", "Адрес локального репозитория GIT или каталог исходников внутри локальной копии git-репозитария.");
6767

6868
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-email", "<домен почты для пользователей git>");
6969
Парсер.ДобавитьИменованныйПараметрКоманды(Команда, "-debug", "<on|off>");

0 commit comments

Comments
 (0)