forked from pumbaEO/precommit1c
-
Notifications
You must be signed in to change notification settings - Fork 62
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
14 changed files
with
433 additions
and
331 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,94 @@ | ||
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd | ||
|
||
#Использовать asserts | ||
|
||
Перем БДД; //контекст фреймворка 1bdd | ||
|
||
// Метод выдает список шагов, реализованных в данном файле-шагов | ||
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт | ||
БДД = КонтекстФреймворкаBDD; | ||
|
||
ВсеШаги = Новый Массив; | ||
|
||
ВсеШаги.Добавить("ВРабочемКаталогеСодержатсяИсходникиОбработкиВФормате"); | ||
ВсеШаги.Добавить("ВПодпапкеРабочегоКаталогаСодержатсяИсходникиОбработкиВФормате"); | ||
|
||
Возврат ВсеШаги; | ||
КонецФункции | ||
|
||
// Реализация шагов | ||
|
||
// Процедура выполняется перед запуском каждого сценария | ||
Процедура ПередЗапускомСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
// Процедура выполняется после завершения каждого сценария | ||
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
|
||
//в подпапке "src/1" рабочего каталога содержатся исходники обработки "Fixture" в формате "v8reader" | ||
Процедура ВПодпапкеРабочегоКаталогаСодержатсяИсходникиОбработкиВФормате(Знач Подпапка, Знач ИмяОбработки, Знач Формат) Экспорт | ||
Если Формат = "v8reader" Тогда | ||
ИмяКаталогаИсходниковОбработки = ОбъединитьПути(Подпапка, ИмяОбработки); | ||
ПроверяемИсходникиВРабочемКаталоге(ИмяКаталогаИсходниковОбработки, ОписаниеИсходниковФорматаV8reader()); | ||
ИначеЕсли Формат = "designer" Тогда | ||
ИмяКаталогаИсходниковОбработки = ОбъединитьПути(Подпапка, ИмяОбработки); | ||
ПроверяемИсходникиВРабочемКаталоге(ИмяКаталогаИсходниковОбработки, ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки)); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
//в рабочем каталоге содержатся исходники обработки "Fixture" в формате "v8reader" | ||
Процедура ВРабочемКаталогеСодержатсяИсходникиОбработкиВФормате(Знач ИмяОбработки, Знач Формат) Экспорт | ||
Если Формат = "v8reader" Тогда | ||
ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходниковФорматаV8reader()); | ||
ИначеЕсли Формат = "designer" Тогда | ||
ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки)); | ||
КонецЕсли; | ||
КонецПроцедуры | ||
|
||
//{ Служебные методы | ||
|
||
Функция РабочийКаталог() | ||
Возврат БДД.ПолучитьИзКонтекста("РабочийКаталог"); | ||
КонецФункции | ||
|
||
Функция КаталогПроекта() | ||
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта"); | ||
КонецФункции | ||
|
||
Процедура ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходников) | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(ИмяОбработки, Ложь); | ||
Для каждого КлючИЗначение из ОписаниеИсходников Цикл | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(ОбъединитьПути(ИмяОбработки, КлючИЗначение.Ключ), КлючИЗначение.Значение); | ||
КонецЦикла; | ||
КонецПроцедуры | ||
|
||
Процедура ПроверяемСуществованиеФайлаВРабочемКаталоге(ПутьКФайлу, ЭтоФайл) | ||
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог(), ПутьКФайлу)); | ||
Ожидаем.Что(Файл.Существует(), ПутьКФайлу + " должен существовать, а это не так!").ЭтоИстина(); | ||
СтрокаОшибки = СтрШаблон("%1: значение Файл.ЭтоФайл() должно %2, а это не так!", ПутьКФайлу, ЭтоФайл); | ||
Ожидаем.Что(Файл.ЭтоФайл() = ЭтоФайл, СтрокаОшибки).ЭтоИстина(); | ||
КонецПроцедуры | ||
|
||
Функция ОписаниеИсходниковФорматаV8reader() | ||
Описание = Новый Соответствие; | ||
Описание.Вставить("renames.txt", Истина); | ||
Описание.Вставить("Form", Ложь); | ||
Описание.Вставить("Макеты", Ложь); | ||
Описание.Вставить("und", Ложь); | ||
Возврат Описание; | ||
КонецФункции | ||
|
||
Функция ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки) | ||
Описание = Новый Соответствие; | ||
Описание.Вставить(ИмяОбработки + ".xml", Истина); | ||
Описание.Вставить(ИмяОбработки, Ложь); | ||
Описание.Вставить(ОбъединитьПути(ИмяОбработки, "Forms"), Ложь); | ||
Описание.Вставить(ОбъединитьПути(ИмяОбработки, "Templates"), Ложь); | ||
Возврат Описание; | ||
КонецФункции | ||
|
||
//} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,110 @@ | ||
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd | ||
#Использовать 1commands | ||
#Использовать asserts | ||
|
||
Перем БДД; //контекст фреймворка 1bdd | ||
Перем Лог; | ||
|
||
// Метод выдает список шагов, реализованных в данном файле-шагов | ||
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт | ||
БДД = КонтекстФреймворкаBDD; | ||
|
||
ВсеШаги = Новый Массив; | ||
|
||
ВсеШаги.Добавить("ЯУстанавливаюPrecommitВРабочийКаталогСПараметрами"); | ||
ВсеШаги.Добавить("ВРабочемКаталогеУстановленPrecommit"); | ||
ВсеШаги.Добавить("ФайлХукаВРепозиторииРабочегоКаталогаСодержит"); | ||
|
||
Возврат ВсеШаги; | ||
КонецФункции | ||
|
||
// Реализация шагов | ||
|
||
// Процедура выполняется перед запуском каждого сценария | ||
Процедура ПередЗапускомСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
// Процедура выполняется после завершения каждого сценария | ||
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт | ||
|
||
КонецПроцедуры | ||
|
||
// Я устанавливаю Precommit в рабочий каталог с параметрами "Параметры" | ||
Процедура ЯУстанавливаюPrecommitВРабочийКаталогСПараметрами(Знач Параметры) Экспорт | ||
|
||
ПараметрыКоманды = Новый Массив; | ||
ПараметрыКоманды.Добавить(ОбъединитьПути(КаталогПроекта(), "v8files-extractor.os")); | ||
ПараметрыКоманды.Добавить("--install"); | ||
Если ЗначениеЗаполнено(Параметры) Тогда | ||
ПараметрыКоманды.Добавить(ЗаменитьШаблоныВПараметрахКоманды(Параметры)); | ||
КонецЕсли; | ||
|
||
Команда = Новый Команда; | ||
|
||
Команда.УстановитьКоманду("oscript"); | ||
Команда.УстановитьКодировкуВывода(КодировкаТекста.UTF8); | ||
Команда.УстановитьРабочийКаталог(РабочийКаталог()); | ||
Команда.ДобавитьПараметры(ПараметрыКоманды); | ||
|
||
Лог.Отладка("Устанавливаем precommit1c с параметрами %1", СтрСоединить(Команда.ПолучитьПараметры(), " ")); | ||
|
||
КодВозврата = Команда.Исполнить(); | ||
|
||
Если КодВозврата <> 0 Тогда | ||
Лог.Ошибка("Получен ненулевой код возврата " + КодВозврата + ". Выполнение скрипта остановлено!"); | ||
ВызватьИсключение СокрЛП(Команда.ПолучитьВывод()); | ||
Иначе | ||
Лог.Отладка("Код возврата равен 0"); | ||
КонецЕсли; | ||
|
||
КонецПроцедуры | ||
|
||
// Файл хука в репозитории рабочего каталога содержит "Параметры" | ||
Процедура ФайлХукаВРепозиторииРабочегоКаталогаСодержит(Знач Параметры) Экспорт | ||
СтрокаШага = СтрШаблон("файл "".git/hooks/pre-commit"" в рабочем каталоге содержит ""oscript -encoding=utf-8 .git/hooks/v8files-extractor.os --git-precommit src %1""", | ||
Параметры); | ||
БДД.ВыполнитьШаг(СтрокаШага); | ||
КонецПроцедуры | ||
|
||
//в рабочем каталоге установлен precommit | ||
Процедура ВРабочемКаталогеУстановленPrecommit() Экспорт | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks"); | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8Reader"); | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools"); | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8Reader/V8Reader.epf"); | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/pre-commit"); | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8files-extractor.os"); | ||
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools/v8unpack.exe"); | ||
КонецПроцедуры | ||
|
||
//{ Служебные методы | ||
|
||
Функция РабочийКаталог() | ||
Возврат БДД.ПолучитьИзКонтекста("РабочийКаталог"); | ||
КонецФункции | ||
|
||
Функция КаталогПроекта() | ||
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта"); | ||
КонецФункции | ||
|
||
Процедура ПроверяемСуществованиеФайлаВРабочемКаталоге(ПутьКФайлу) | ||
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог(), ПутьКФайлу)); | ||
Ожидаем.Что(Файл.Существует(), ПутьКФайлу + " должен существовать, а это не так!").ЭтоИстина(); | ||
КонецПроцедуры | ||
|
||
Функция ЗаменитьШаблоныВПараметрахКоманды(Знач ПараметрыКоманды) | ||
Рез = СтрЗаменить(ПараметрыКоманды, "<КаталогПроекта>", ЭкранированныйПуть(КаталогПроекта())); | ||
Рез = СтрЗаменить(Рез, "<РабочийКаталог>", ЭкранированныйПуть(РабочийКаталог())); | ||
Возврат Рез; | ||
КонецФункции | ||
|
||
Функция ЭкранированныйПуть(Знач Путь) | ||
Рег = Новый РегулярноеВыражение("(?<!\\)\\(?!\\)"); | ||
Рез = Рег.Заменить(Путь, "\\"); | ||
Возврат Рез; | ||
КонецФункции | ||
|
||
//} | ||
|
||
Лог = Логирование.ПолучитьЛог("bdd"); |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.