diff --git a/features/step_definitions/precommitonec_feature.os b/features/step_definitions/precommitonec_feature.os index c39be39..db064b8 100644 --- a/features/step_definitions/precommitonec_feature.os +++ b/features/step_definitions/precommitonec_feature.os @@ -20,9 +20,10 @@ ВсеШаги.Добавить("ЯФиксируюИзмененияВРепозиторииСКомментарием"); ВсеШаги.Добавить("УФайлаЕстьМетка"); ВсеШаги.Добавить("СодержимоеФайлаИФайлаРазное"); + ВсеШаги.Добавить("СодержимоеФайлаИФайлаОдинаковое"); ВсеШаги.Добавить("ЯСоздаюНовыйРепозиторийБезИнициализацииВКаталогеИЗапоминаюЕгоКак"); ВсеШаги.Добавить("ЯСоздаюФайлВКодировкеСТекстом"); - + Возврат ВсеШаги; КонецФункции @@ -147,6 +148,18 @@ КонецПроцедуры +// Содержимое файла "ИсходныйФайл" и файла "КонечныйФайл" одинаковое +Процедура СодержимоеФайлаИФайлаОдинаковое(ИсходныйФайл, КонечныйФайл) Экспорт + + ИсходныйФайл = ОбъединитьПути(БДД.ПолучитьИзКонтекста("КаталогПроекта"), ИсходныйФайл); + КонечныйФайл = ОбъединитьПути(БДД.ПолучитьИзКонтекста("РабочийКаталог"), КонечныйФайл); + + СодержимоеКонечногоФайла = ФайловыеОперации.ПрочитатьТекстФайла(КонечныйФайл); + СодержимоеИсходногоФайла = ФайловыеОперации.ПрочитатьТекстФайла(ИсходныйФайл); + + Ожидаем.Что(СодержимоеИсходногоФайла).Равно(СодержимоеКонечногоФайла); + +КонецПроцедуры //Я создаю файл "СпециальныйКаталог/ФайлСТекстом.txt" в кодировке "cp866" с текстом "текст178" Процедура ЯСоздаюФайлВКодировкеСТекстом(Знач ПутьФайла, Знач Кодировка, Знач ТекстФайла) Экспорт diff --git "a/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" "b/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" index 2b677c5..01d7891 100644 --- "a/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" +++ "b/features/\320\222\321\213\320\277\320\276\320\273\320\275\320\265\320\275\320\270\320\265\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" @@ -31,7 +31,7 @@ И я создаю временный каталог и запоминаю его как "КаталогРепозиториев" И я переключаюсь во временный каталог "КаталогРепозиториев" И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог" - И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1" + И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1 -source-dir ." И я установил рабочий каталог как текущий каталог Сценарий: Разбор отчетов, обработок, расширений на исходники. @@ -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" проекта в рабочий каталог @@ -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" diff --git "a/features/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.feature" "b/features/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.feature" index c55cf72..797958f 100644 --- "a/features/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.feature" +++ "b/features/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.feature" @@ -20,7 +20,7 @@ И У файла <Конечный файл> есть метка И я фиксирую изменения в репозитории "РабочийКаталог" с комментарием "Добавил файл процедур" Тогда У файла <Конечный файл> есть метка - И Содержимое файла <Исходный файл> и файла <Конечный файл> разное + И Содержимое файла <Исходный файл> и файла <Конечный файл> одинаковое Примеры: | Исходный файл | Конечный файл | Bom | | tests/fixtures/NoBom.bsl| NoBom.bsl | Нет | diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" index 20c32f4..bd9d66a 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\244\320\260\320\271\320\273\320\276\320\262\321\213\320\265\320\236\320\277\320\265\321\200\320\260\321\206\320\270\320\270.os" @@ -241,6 +241,28 @@ КонецФункции +Функция ЕстьФайлыВКаталоге(ФайлКаталога) Экспорт + + ИскатьВПодкаталогах = Истина; + + МассивФайлов = НайтиФайлы(ФайлКаталога.ПолноеИмя, "*", ИскатьВПодкаталогах); + + МассивФайловКаталога = Новый Массив; + + Для Каждого Файл Из МассивФайлов Цикл + + Если Не Файл.ЭтоКаталог() Тогда + + МассивФайловКаталога.Добавить(Файл); + + КонецЕсли; + + КонецЦикла; + + Возврат МассивФайловКаталога.Количество() > 0; + +КонецФункции + Функция КаталогСуществует(Знач Путь1, Знач Путь2 = Неопределено, Знач Путь3 = Неопределено, Знач Путь4 = Неопределено) Экспорт ПолныйПуть = ОбъединитьПути(Путь1, Путь2, Путь3, Путь4); diff --git "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\230\320\244\320\260\320\271\320\273\320\276\320\262.os" "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\230\320\244\320\260\320\271\320\273\320\276\320\262.os" index e1d283e..74a664d 100644 --- "a/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\230\320\244\320\260\320\271\320\273\320\276\320\262.os" +++ "b/src/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\270\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270/\320\241\320\270\320\275\321\205\321\200\320\276\320\275\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\261\321\212\320\265\320\272\321\202\320\276\320\262\320\234\320\265\321\202\320\260\320\264\320\260\320\275\320\275\321\213\321\205\320\230\320\244\320\260\320\271\320\273\320\276\320\262.os" @@ -221,13 +221,18 @@ КаталогиОбъектов = Новый Массив; НайденныеКаталоги = ФайловыеОперации.НайтиКаталоги(КаталогТипа.ПолноеИмя); Для Каждого Каталог Из НайденныеКаталоги Цикл + Если МассивОбъектов.Найти(Каталог.ИмяБезРасширения) = Неопределено Тогда - Если НЕ ПустойКаталог(Каталог.ПолноеИмя) Тогда + + // Если в каталоге есть файлы, но он не соответствует ни одному объекту метаданных - это ошибка. + Если ФайловыеОперации.ЕстьФайлыВКаталоге(Каталог) Тогда МассивОшибок.Добавить(СтрШаблон("Каталог не является каталогом объекта %1", Каталог.ПолноеИмя)); КонецЕсли; + Иначе КаталогиОбъектов.Добавить(Каталог); КонецЕсли; + КонецЦикла; Возврат КаталогиОбъектов; diff --git "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" index 9198145..3bdadc0 100644 --- "a/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" +++ "b/tests/\320\242\320\265\321\201\321\202\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\265\320\262\320\236\320\261\321\200\320\260\320\261\320\276\321\202\320\272\320\270.os" @@ -360,11 +360,17 @@ ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "Conf/IntegrationServices")); СоздатьКаталог(ПутьККаталогу); - ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/ПустойКаталог")); + ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/ПустойКаталогТипаМетаданных")); СоздатьКаталог(ПутьККаталогу); ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/IntegrationServices/СервисИнтеграции")); СоздатьКаталог(ПутьККаталогу); + + ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/Catalogs/ПустойОбъектМетаданных")); + СоздатьКаталог(ПутьККаталогу); + + ПутьККаталогу = ФайловыеОперации.НормализоватьРазделители(ОбъединитьПути(ВременныйКаталог, "EDT/src/Catalogs/ПустойОбъектМетаданных/ВложенныйКаталог")); + СоздатьКаталог(ПутьККаталогу); ТекстОшибки = ""; Попытка @@ -378,8 +384,10 @@ ТекстОшибки = ОписаниеОшибки(); КонецПопытки; - Ожидаем.Что(ТекстОшибки, "Пустые каталоги игнорируются").Не_().Содержит("ПустойКаталог"); + Ожидаем.Что(ТекстОшибки, "Пустые каталоги игнорируются").Не_().Содержит("ПустойКаталогТипаМетаданных"); Ожидаем.Что(ТекстОшибки, "Пустые каталоги игнорируются").Не_().Содержит("НесуществующийСправочник"); + Ожидаем.Что(ТекстОшибки, "Пустые каталоги объектов метаданных игнорируются").Не_().Содержит("ПустойОбъектМетаданных"); + Ожидаем.Что(ТекстОшибки, "Лишние каталоги в репозитории").Содержит("Каталог не является каталогом метаданных"); Ожидаем.Что(ТекстОшибки, "Отсутствует каталог метаданных").Содержит("Не найден каталог типа метаданных FilterCriterion"); Ожидаем.Что(ТекстОшибки, "Отсутствуют файлы описания объекта метаданных").Содержит("Отсутствуют файлы для IntegrationService.СервисИнтеграции");