Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 14 additions & 1 deletion features/step_definitions/precommitonec_feature.os
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,10 @@
ВсеШаги.Добавить("ЯФиксируюИзмененияВРепозиторииСКомментарием");
ВсеШаги.Добавить("УФайлаЕстьМетка");
ВсеШаги.Добавить("СодержимоеФайлаИФайлаРазное");
ВсеШаги.Добавить("СодержимоеФайлаИФайлаОдинаковое");
ВсеШаги.Добавить("ЯСоздаюНовыйРепозиторийБезИнициализацииВКаталогеИЗапоминаюЕгоКак");
ВсеШаги.Добавить("ЯСоздаюФайлВКодировкеСТекстом");

Возврат ВсеШаги;
КонецФункции

Expand Down Expand Up @@ -147,6 +148,18 @@

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

// Содержимое файла "ИсходныйФайл" и файла "КонечныйФайл" одинаковое
Процедура СодержимоеФайлаИФайлаОдинаковое(ИсходныйФайл, КонечныйФайл) Экспорт

ИсходныйФайл = ОбъединитьПути(БДД.ПолучитьИзКонтекста("КаталогПроекта"), ИсходныйФайл);
КонечныйФайл = ОбъединитьПути(БДД.ПолучитьИзКонтекста("РабочийКаталог"), КонечныйФайл);

СодержимоеКонечногоФайла = ФайловыеОперации.ПрочитатьТекстФайла(КонечныйФайл);
СодержимоеИсходногоФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИсходныйФайл);

Ожидаем.Что(СодержимоеИсходногоФайла).Равно(СодержимоеКонечногоФайла);

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

//Я создаю файл "СпециальныйКаталог/ФайлСТекстом.txt" в кодировке "cp866" с текстом "текст178"
Процедура ЯСоздаюФайлВКодировкеСТекстом(Знач ПутьФайла, Знач Кодировка, Знач ТекстФайла) Экспорт
Expand Down
52 changes: 26 additions & 26 deletions features/ВыполнениеПрекоммита.feature
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
И я создаю временный каталог и запоминаю его как "КаталогРепозиториев"
И я переключаюсь во временный каталог "КаталогРепозиториев"
И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1"
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1 -source-dir ."
И я установил рабочий каталог как текущий каталог

Сценарий: Разбор отчетов, обработок, расширений на исходники.
Expand All @@ -40,28 +40,28 @@
И я копирую файл "tests/fixtures/demo/DemoРасширение.cfe" в каталог репозитория "РабочийКаталог"
И Я копирую файл "НецензурныеСлова.txt" в каталог репозитория "РабочийКаталог"
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
Тогда В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ/Ext/Form/Module.bsl"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ/Ext/Form/form"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Templates/ОсновнаяСхемаКомпоновкиДанных.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ/Ext/Form.bin"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяУФ.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяУФ/Ext/Form.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form.bin"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяУФ.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяУФ/Ext/Form.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/Module.bsl"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/form"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/ConfigDumpInfo.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/Configuration.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/CommonModules/DemoРасш_Demo.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/CommonModules/DemoРасш_Demo/Ext/Module.bsl"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/Subsystems/DemoРасш_Demo.xml"
И В каталоге "src" репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/Languages/Русский.xml"
Тогда В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ/Ext/Form/Module.bsl"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ/Ext/Form/form"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Templates/ОсновнаяСхемаКомпоновкиДанных.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Templates/ОсновнаяСхемаКомпоновкиДанных/Ext/Template.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяОФ/Ext/Form.bin"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяУФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "erf/DemoОтчет/DemoОтчет/Forms/ОсновнаяУФ/Ext/Form.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form.bin"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяУФ.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяУФ/Ext/Form.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/Module.bsl"
И В каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/form"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/ConfigDumpInfo.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/Configuration.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/CommonModules/DemoРасш_Demo.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/CommonModules/DemoРасш_Demo/Ext/Module.bsl"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/Subsystems/DemoРасш_Demo.xml"
И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe/DemoРасширение/Languages/Русский.xml"

Сценарий: Разбор конфигурации на исходники во время коммита, с последующим применением правил к распакованным модулям
Когда Я копирую каталог "src" из каталога "tests/fixtures/cf-common-forms" проекта в рабочий каталог
Expand Down Expand Up @@ -122,10 +122,10 @@
Сценарий: В коммит попадают только проиндексированные файлы
Когда Я копирую файл "tests/fixtures/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог"
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "demo коммит"
И в каталоге "src" репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/Module.bsl"
И я создаю файл "РабочийКаталог/src/ФайлСТекстом.bsl" с текстом "текст178"
И в каталоге "." репозитория "РабочийКаталог" есть файл "epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/Module.bsl"
И я создаю файл "РабочийКаталог/ФайлСТекстом.bsl" с текстом "текст178"
И я выполняю команду "git" с параметрами "add --all"
И я создаю файл "РабочийКаталог/src/epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/Module.bsl" с текстом "текст178"
И я создаю файл "РабочийКаталог/epf/DemoОбработка/DemoОбработка/Forms/ОсновнаяОФ/Ext/Form/Module.bsl" с текстом "текст178"
И я выполняю команду "git" с параметрами "commit -m addFile"
Тогда Вывод команды "git" не содержит "Module.bsl"

Expand Down
2 changes: 1 addition & 1 deletion features/ФайловыеОперации.feature
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
И У файла <Конечный файл> есть метка <Bom>
И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "Добавил файл процедур"
Тогда У файла <Конечный файл> есть метка <Bom>
И Содержимое файла <Исходный файл> и файла <Конечный файл> разное
И Содержимое файла <Исходный файл> и файла <Конечный файл> одинаковое
Примеры:
| Исходный файл | Конечный файл | Bom |
| tests/fixtures/NoBom.bsl| NoBom.bsl | Нет |
Expand Down
22 changes: 22 additions & 0 deletions src/Модули/ФайловыеОперации.os
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,28 @@

КонецФункции

Функция ЕстьФайлыВКаталоге(ФайлКаталога) Экспорт

ИскатьВПодкаталогах = Истина;

МассивФайлов = НайтиФайлы(ФайлКаталога.ПолноеИмя, "*", ИскатьВПодкаталогах);

МассивФайловКаталога = Новый Массив;

Для Каждого Файл Из МассивФайлов Цикл

Если Не Файл.ЭтоКаталог() Тогда

МассивФайловКаталога.Добавить(Файл);

КонецЕсли;

КонецЦикла;

Возврат МассивФайловКаталога.Количество() > 0;

КонецФункции

Функция КаталогСуществует(Знач Путь1, Знач Путь2 = Неопределено, Знач Путь3 = Неопределено, Знач Путь4 = Неопределено) Экспорт

ПолныйПуть = ОбъединитьПути(Путь1, Путь2, Путь3, Путь4);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,13 +221,21 @@
КаталогиОбъектов = Новый Массив;
НайденныеКаталоги = ФайловыеОперации.НайтиКаталоги(КаталогТипа.ПолноеИмя);
Для Каждого Каталог Из НайденныеКаталоги Цикл

Если МассивОбъектов.Найти(Каталог.ИмяБезРасширения) = Неопределено Тогда

Если Не ФайловыеОперации.ЕстьФайлыВКаталоге(Каталог) Тогда
Продолжить;
КонецЕсли;

Если НЕ ПустойКаталог(Каталог.ПолноеИмя) Тогда
Comment on lines +226 to 231

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

стоит объединить условия

МассивОшибок.Добавить(СтрШаблон("Каталог не является каталогом объекта %1", Каталог.ПолноеИмя));
КонецЕсли;

Иначе
КаталогиОбъектов.Добавить(Каталог);
КонецЕсли;

КонецЦикла;

Возврат КаталогиОбъектов;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -360,11 +360,17 @@
ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "Conf/IntegrationServices"));
СоздатьКаталог(ПутьККаталогу);

ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/ПустойКаталог"));
ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/ПустойКаталогТипаМетаданных"));
СоздатьКаталог(ПутьККаталогу);

ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/IntegrationServices/СервисИнтеграции"));
СоздатьКаталог(ПутьККаталогу);

ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/Catalogs/ПустойОбъектМетаданных"));
СоздатьКаталог(ПутьККаталогу);

ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/Catalogs/ПустойОбъектМетаданных/ВложенныйКаталог"));
СоздатьКаталог(ПутьККаталогу);

ТекстОшибки = "";
Попытка
Expand All @@ -378,8 +384,10 @@
ТекстОшибки = ОписаниеОшибки();
КонецПопытки;

Ожидаем.Что(ТекстОшибки, "Пустые каталоги игнорируются").Не_().Содержит("ПустойКаталог");
Ожидаем.Что(ТекстОшибки, "Пустые каталоги игнорируются").Не_().Содержит("ПустойКаталогТипаМетаданных");
Ожидаем.Что(ТекстОшибки, "Пустые каталоги игнорируются").Не_().Содержит("НесуществующийСправочник");
Ожидаем.Что(ТекстОшибки, "Пустые каталоги объектов метаданных игнорируются").Не_().Содержит("ПустойОбъектМетаданных");

Ожидаем.Что(ТекстОшибки, "Лишние каталоги в репозитории").Содержит("Каталог не является каталогом метаданных");
Ожидаем.Что(ТекстОшибки, "Отсутствует каталог метаданных").Содержит("Не найден каталог типа метаданных FilterCriterion");
Ожидаем.Что(ТекстОшибки, "Отсутствуют файлы описания объекта метаданных").Содержит("Отсутствуют файлы для IntegrationService.СервисИнтеграции");
Expand Down