mirror of
https://github.com/bia-technologies/precommit4onec.git
synced 2025-05-29 23:07:31 +02:00
470 lines
32 KiB
Plaintext
470 lines
32 KiB
Plaintext
#Использовать tempfiles
|
|
#Использовать asserts
|
|
#Использовать logos
|
|
|
|
Перем юТест;
|
|
Перем Лог;
|
|
|
|
//{ подготовка тестов и данных для тестов
|
|
|
|
Процедура Инициализация()
|
|
Лог = Логирование.ПолучитьЛог(ИмяЛога());
|
|
КонецПроцедуры
|
|
|
|
Функция ПолучитьСписокТестов(Знач Контекст) Экспорт
|
|
|
|
юТест = Контекст;
|
|
|
|
ВсеТесты = Новый Массив;
|
|
|
|
ВсеТесты.Добавить("Тест_ДолженРазложитьФайлОбработкиИзЗаданнойПапки");
|
|
ВсеТесты.Добавить("Тест_ДолженРазложитьКаталогСВложеннымиКаталогами");
|
|
ВсеТесты.Добавить("Тест_ДолженРазобратьФайлыПоЖурналуИзмененийГит");
|
|
ВсеТесты.Добавить("Тест_ДолженСоздатьРепозитарийГит");
|
|
ВсеТесты.Добавить("Тест_ДолженПроверитьНастройкиРепозитарияГит");
|
|
ВсеТесты.Добавить("Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогами");
|
|
ВсеТесты.Добавить("Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогамиИУдалитьИзКеша");
|
|
ВсеТесты.Добавить("Тест_ДолженСобратьФайлОбработкиИзЗаданнойПапки");
|
|
ВсеТесты.Добавить("Тест_ДолженПроверитьЧтоПрекоммит1СУстановленВХуки");
|
|
|
|
Возврат ВсеТесты;
|
|
|
|
КонецФункции
|
|
|
|
Процедура ПослеЗапускаТеста() Экспорт
|
|
Попытка
|
|
ВременныеФайлы.Удалить();
|
|
Исключение
|
|
КонецПопытки;
|
|
КонецПроцедуры
|
|
|
|
Функция ЗагрузитьИсполнителя()
|
|
|
|
ИмяКаталога = ТекущийСценарий().Каталог;
|
|
Исполнитель = ЗагрузитьСценарий(ОбъединитьПути(ИмяКаталога,"../v8files-extractor.os"));
|
|
Лог = Логирование.ПолучитьЛог(ИмяЛога());
|
|
// Лог.УстановитьУровень(УровниЛога.Отладка);
|
|
|
|
Возврат Исполнитель;
|
|
|
|
КонецФункции
|
|
|
|
Функция ИмяЛога()
|
|
Возврат "oscript.app.v8files-extractor";
|
|
КонецФункции
|
|
|
|
Функция ПолучитьФайлТестовойОбработки()
|
|
|
|
ИмяКаталога = ТекущийСценарий().Каталог;
|
|
ИмяФайла = "Fixture";
|
|
ИмяФайлаСРасширением = ИмяФайла+".epf";
|
|
|
|
ПутьФайла = ОбъединитьПути(ИмяКаталога, ИмяФайлаСРасширением);
|
|
ФайлОбработки = Новый Файл(ПутьФайла);
|
|
Ожидаем.Что(ФайлОбработки.Существует(), "Исходный файл должен существовать").ЭтоИстина();
|
|
|
|
Возврат ФайлОбработки;
|
|
|
|
КонецФункции
|
|
|
|
Функция ПолучитьКаталогТестовойОбработки()
|
|
|
|
ИмяКаталогаИсходников = "Fixture";
|
|
КаталогИсходниковТеста = ОбъединитьПути(КаталогПроекта(), "src", "tests");
|
|
ПутьФайла = ОбъединитьПути(КаталогИсходниковТеста, ИмяКаталогаИсходников);
|
|
|
|
КаталогИсходников = Новый Файл(ПутьФайла);
|
|
Ожидаем.Что(КаталогИсходников.Существует(), "Каталог с исходными кодами обработки должен существовать").ЭтоИстина();
|
|
|
|
Возврат КаталогИсходников;
|
|
|
|
КонецФункции
|
|
|
|
//}
|
|
|
|
//{ тесты
|
|
Процедура Тест_ДолженРазложитьФайлОбработкиИзЗаданнойПапки() Экспорт
|
|
|
|
ФайлОбработки = ПолучитьФайлТестовойОбработки();
|
|
|
|
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
Исполнитель = ЗагрузитьИсполнителя();
|
|
Исполнитель.РазобратьФайл(Новый Файл(ФайлОбработки.ПолноеИмя), КаталогВыгрузки, ФайлОбработки.Путь);
|
|
|
|
КаталогИсходников = Новый Файл(ОбъединитьПути(КаталогВыгрузки, ФайлОбработки.ИмяБезРасширения));
|
|
Ожидаем.Что(КаталогИсходников.Существует()).ЭтоИстина();
|
|
Ожидаем.Что(КаталогИсходников.ЭтоКаталог(), "Должны были найти каталог с именем обработки").ЭтоИстина();
|
|
Ожидаем.Что(КаталогСодержитИсходникиОбработки(КаталогИсходников.ПолноеИмя), "ожидаем, что КаталогСодержитИсходникиОбработки(КаталогИсходников.ПолноеИмя) это Истина").ЭтоИстина();
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженРазложитьКаталогСВложеннымиКаталогами() Экспорт
|
|
|
|
ФайлОбработки = ПолучитьФайлТестовойОбработки();
|
|
|
|
ИмяВложенногоКаталога = "1";
|
|
|
|
КаталогИсходников = ВременныеФайлы.СоздатьКаталог();
|
|
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
СоздатьКаталог(ОбъединитьПути(КаталогИсходников, ИмяВложенногоКаталога));
|
|
|
|
ВложенныйКаталогИсходников = ОбъединитьПути(КаталогИсходников, ИмяВложенногоКаталога);
|
|
ПутьВложеннойОбработки = ОбъединитьПути(ВложенныйКаталогИсходников, ФайлОбработки.Имя);
|
|
|
|
КопироватьФайл(ФайлОбработки.ПолноеИмя, ПутьВложеннойОбработки);
|
|
|
|
ФайлВложеннойОбработки = Новый Файл(ПутьВложеннойОбработки);
|
|
Ожидаем.Что(ФайлВложеннойОбработки.Существует(), "Должны были найти имя вложенной обработки").ЭтоИстина();
|
|
Ожидаем.Что(ФайлВложеннойОбработки.ЭтоФайл(), "Должны были найти признак файла для вложенной обработки").ЭтоИстина();
|
|
|
|
Исполнитель = ЗагрузитьИсполнителя();
|
|
Исполнитель.РазобратьКаталог(Новый Файл(КаталогИсходников), КаталогВыгрузки, КаталогИсходников);
|
|
|
|
ВложенныйКаталогВыгрузки = ОбъединитьПути(КаталогВыгрузки, ИмяВложенногоКаталога);
|
|
|
|
ФайлВложенныйКаталогВыгрузки = Новый Файл(ВложенныйКаталогВыгрузки);
|
|
Ожидаем.Что(ФайлВложенныйКаталогВыгрузки.Существует(), "Должны были найти имя вложенного каталога").ЭтоИстина();
|
|
Ожидаем.Что(ФайлВложенныйКаталогВыгрузки.ЭтоКаталог(), "Должны были найти вложенный каталог").ЭтоИстина();
|
|
|
|
ПутьКаталогаВыгрузкиДляОбработки = ОбъединитьПути(ВложенныйКаталогВыгрузки, ФайлОбработки.ИмяБезРасширения);
|
|
Ожидаем.Что(КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки), "ожидаем, что КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки) это Истина").ЭтоИстина();
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогами() Экспорт
|
|
|
|
КаталогПроекта = КаталогПроекта();
|
|
|
|
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
СоздатьРепозитарийГит(КаталогВыгрузки, КаталогПроекта);
|
|
|
|
ФайлОбработки = ПолучитьФайлТестовойОбработки();
|
|
|
|
ИмяВложенногоКаталога = "1";
|
|
|
|
КаталогИсходников = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
ВложенныйКаталогВыгрузки = ОбъединитьПути(КаталогВыгрузки, ИмяВложенногоКаталога);
|
|
СоздатьКаталог(ВложенныйКаталогВыгрузки);
|
|
|
|
ПутьВложеннойОбработки = ОбъединитьПути(ВложенныйКаталогВыгрузки, ФайлОбработки.Имя);
|
|
Лог.Отладка("ПутьВложеннойОбработки "+ПутьВложеннойОбработки);
|
|
|
|
КопироватьФайл(ФайлОбработки.ПолноеИмя, ПутьВложеннойОбработки);
|
|
|
|
ФайлВложеннойОбработки = Новый Файл(ПутьВложеннойОбработки);
|
|
Ожидаем.Что(ФайлВложеннойОбработки.Существует(), "Должны были найти имя вложенной обработки").ЭтоИстина();
|
|
Ожидаем.Что(ФайлВложеннойОбработки.ЭтоФайл(), "Должны были найти признак файла для вложенной обработки").ЭтоИстина();
|
|
|
|
КомандаГит = "git add -A .";
|
|
ВыполнитьКомандуГит(КомандаГит);
|
|
|
|
КомандаГит = "git status";
|
|
ВыполнитьКомандуГит(КомандаГит);
|
|
|
|
КомандаГит = "git commit -m ""init commit""";
|
|
ВыполнитьКомандуГит(КомандаГит);
|
|
|
|
КаталогИсходниковВложенногоКаталога = ОбъединитьПути(КаталогВыгрузки, "src", ИмяВложенногоКаталога);
|
|
ФайлКаталогИсходниковВложенногоКаталога = Новый Файл(КаталогИсходниковВложенногоКаталога);
|
|
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.Существует(), "Должны были найти имя вложенного каталога").ЭтоИстина();
|
|
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.ЭтоКаталог(), "Должны были найти вложенный каталог").ЭтоИстина();
|
|
|
|
ПутьКаталогаВыгрузкиДляОбработки = ОбъединитьПути(КаталогИсходниковВложенногоКаталога, ФайлОбработки.ИмяБезРасширения);
|
|
Ожидаем.Что(КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки), "ожидаем, что КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки) это Истина").ЭтоИстина();
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженОбработатьИзмененияИзГитДляКаталогаСВложеннымиКаталогамиИУдалитьИзКеша() Экспорт
|
|
|
|
КаталогПроекта = КаталогПроекта();
|
|
|
|
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
СоздатьРепозитарийГит(КаталогВыгрузки, КаталогПроекта);
|
|
|
|
КаталогХуков = ОбъединитьПути(КаталогВыгрузки, ".git", "hooks");
|
|
ПутьКФайлуПрекоммит = ОбъединитьПути(КаталогХуков, "pre-commit");
|
|
ТекстПрекоммит = Новый ТекстовыйДокумент;
|
|
ТекстПрекоммит.Прочитать(ПутьКФайлуПрекоммит);
|
|
|
|
КоличествоСтрок = ТекстПрекоммит.КоличествоСтрок();
|
|
Для сч = 1 По КоличествоСтрок Цикл
|
|
|
|
Строка = ТекстПрекоммит.ПолучитьСтроку(сч);
|
|
ЭтоСтрокаЗапускаРаспаковщика = СтрНайти(Строка, "v8files-extractor.os --git-precommit") > 0;
|
|
Если ЭтоСтрокаЗапускаРаспаковщика Тогда
|
|
Строка = Строка + " --remove-orig-bin-files";
|
|
ТекстПрекоммит.ЗаменитьСтроку(сч, Строка);
|
|
Прервать;
|
|
КонецЕсли;
|
|
|
|
КонецЦикла;
|
|
ТекстПрекоммит.Записать(ПутьКФайлуПрекоммит, КодировкаТекста.UTF8NoBOM);
|
|
|
|
ФайлОбработки = ПолучитьФайлТестовойОбработки();
|
|
|
|
ИмяВложенногоКаталога = "1";
|
|
|
|
КаталогИсходников = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
ВложенныйКаталогВыгрузки = ОбъединитьПути(КаталогВыгрузки, ИмяВложенногоКаталога);
|
|
СоздатьКаталог(ВложенныйКаталогВыгрузки);
|
|
|
|
ПутьВложеннойОбработки = ОбъединитьПути(ВложенныйКаталогВыгрузки, ФайлОбработки.Имя);
|
|
Лог.Отладка("ПутьВложеннойОбработки "+ПутьВложеннойОбработки);
|
|
|
|
КопироватьФайл(ФайлОбработки.ПолноеИмя, ПутьВложеннойОбработки);
|
|
|
|
ФайлВложеннойОбработки = Новый Файл(ПутьВложеннойОбработки);
|
|
Ожидаем.Что(ФайлВложеннойОбработки.Существует(), "Должны были найти имя вложенной обработки").ЭтоИстина();
|
|
Ожидаем.Что(ФайлВложеннойОбработки.ЭтоФайл(), "Должны были найти признак файла для вложенной обработки").ЭтоИстина();
|
|
|
|
КомандаГит = "git add -A .";
|
|
ВыполнитьКомандуГит(КомандаГит);
|
|
|
|
КомандаГит = "git status";
|
|
ВыполнитьКомандуГит(КомандаГит);
|
|
|
|
КомандаГит = "git commit -m ""init commit""";
|
|
ВыводКоманды = ВыполнитьКомандуГит(КомандаГит);
|
|
|
|
// git использует "/" как разделитель каталогов, а не стандартный разделитель пути ОС
|
|
СтрокаПоиска = "create mode 100644 " + ИмяВложенногоКаталога + "/" + ФайлОбработки.Имя;
|
|
ФайлУдаленИзИндексаГит = СтрНайти(ВыводКоманды, СтрокаПоиска) = 0;
|
|
Ожидаем.Что(ФайлУдаленИзИндексаГит, "ожидаем, что файла обработки удален из индекса git").ЭтоИстина();
|
|
|
|
КаталогИсходниковВложенногоКаталога = ОбъединитьПути(КаталогВыгрузки, "src", ИмяВложенногоКаталога);
|
|
ФайлКаталогИсходниковВложенногоКаталога = Новый Файл(КаталогИсходниковВложенногоКаталога);
|
|
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.Существует(), "Должны были найти имя вложенного каталога").ЭтоИстина();
|
|
Ожидаем.Что(ФайлКаталогИсходниковВложенногоКаталога.ЭтоКаталог(), "Должны были найти вложенный каталог").ЭтоИстина();
|
|
|
|
ПутьКаталогаВыгрузкиДляОбработки = ОбъединитьПути(КаталогИсходниковВложенногоКаталога, ФайлОбработки.ИмяБезРасширения);
|
|
Ожидаем.Что(КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки), "ожидаем, что КаталогСодержитИсходникиОбработки(ПутьКаталогаВыгрузкиДляОбработки) это Истина").ЭтоИстина();
|
|
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженРазобратьФайлыПоЖурналуИзмененийГит() Экспорт
|
|
|
|
ФайлОбработки = ПолучитьФайлТестовойОбработки();
|
|
|
|
ЖурналИзмененийГит = "A " + ФайлОбработки.Имя+"
|
|
| M " + "pref-" + ФайлОбработки.Имя;
|
|
|
|
Исполнитель = ЗагрузитьИсполнителя();
|
|
МассивИмен = Исполнитель.ПолучитьИменаИзЖурналаИзмененийГит(ЖурналИзмененийГит);
|
|
|
|
Ожидаем.Что(МассивИмен, "Должны были найти измененный файл").Содержит(ФайлОбработки.Имя);
|
|
Ожидаем.Что(МассивИмен, "Должны были найти измененный файл").Содержит("pref-" + ФайлОбработки.Имя);
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженСоздатьРепозитарийГит() Экспорт
|
|
|
|
КаталогПроекта = КаталогПроекта();
|
|
|
|
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
СоздатьРепозитарийГит(КаталогРепо, КаталогПроекта);
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженПроверитьНастройкиРепозитарияГит() Экспорт
|
|
Перем КодВозврата;
|
|
|
|
КаталогПроекта = КаталогПроекта();
|
|
|
|
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
СоздатьРепозитарийГит(КаталогРепо, КаталогПроекта);
|
|
|
|
Исполнитель = ЗагрузитьИсполнителя();
|
|
Исполнитель.ПроверитьНастройкиРепозитарияГит();
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженСобратьФайлОбработкиИзЗаданнойПапки() Экспорт
|
|
|
|
КаталогОбработки = ПолучитьКаталогТестовойОбработки();
|
|
|
|
КаталогВыгрузки = ВременныеФайлы.СоздатьКаталог();
|
|
|
|
Исполнитель = ЗагрузитьИсполнителя();
|
|
Исполнитель.Компилировать(КаталогОбработки.ПолноеИмя, КаталогВыгрузки);
|
|
|
|
ИмяФайлаОбработки = КаталогОбработки.Имя;
|
|
НайденныеФайлы = НайтиФайлы(КаталогВыгрузки, ИмяФайлаОбработки + ".epf");
|
|
|
|
Ожидаем.Что(НайденныеФайлы, "ожидаем, что в КаталогВыгрузки найден файл обработки").ИмеетДлину(1);
|
|
|
|
КонецПроцедуры
|
|
|
|
//}
|
|
|
|
//{ служебные методы
|
|
|
|
Процедура СоздатьРепозитарийГит(Знач КаталогРепо, КаталогПроекта)
|
|
Перем КодВозврата;
|
|
|
|
УстановитьТекущийКаталог(КаталогРепо);
|
|
Лог.Отладка("КаталогРепо " + КаталогРепо);
|
|
|
|
ВыполнитьКомандуГит("git init");
|
|
ВыполнитьКомандуГит("git config --local core.quotepath false");
|
|
|
|
КаталогHooks = Новый Файл(ОбъединитьПути(КаталогРепо, ".git", "hooks"));
|
|
Ожидаем.Что(КаталогHooks.Существует(), "Должен существовать исходный каталог сервисной ИБ, а это не так").ЭтоИстина();
|
|
|
|
Лог.Отладка("КаталогHooks.ПолноеИмя " + КаталогHooks.ПолноеИмя);
|
|
|
|
Каталог_v8Reader = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8Reader"));
|
|
|
|
Каталог_v8Reader_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "v8Reader"));
|
|
ПересоздатьКаталог(Каталог_v8Reader_конечный);
|
|
|
|
Файл_v8Reader_конечный = Новый Файл(ОбъединитьПути(Каталог_v8Reader_конечный.ПолноеИмя, "V8Reader.epf"));
|
|
КопироватьФайл(ОбъединитьПути(Каталог_v8Reader.ПолноеИмя, "V8Reader.epf"), Файл_v8Reader_конечный.ПолноеИмя);
|
|
Ожидаем.Что(Файл_v8Reader_конечный.Существует(), "Должен существовать Файл_v8Reader_конечный, а это не так").ЭтоИстина();
|
|
|
|
Файл_pre_commit_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "pre-commit"));
|
|
КопироватьФайл(ОбъединитьПути(КаталогПроекта, "pre-commit"), Файл_pre_commit_конечный.ПолноеИмя);
|
|
Ожидаем.Что(Файл_pre_commit_конечный.Существует(), "Должен существовать Файл_pre_commit_конечный, а это не так").ЭтоИстина();
|
|
|
|
Лог.Отладка("Файл_pre_commit_конечный.ПолноеИмя " + Файл_pre_commit_конечный);
|
|
Файл_сценария_исходный = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8files-extractor.os"));
|
|
Файл_сценария_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, Файл_сценария_исходный.Имя));
|
|
|
|
КопироватьФайл(Файл_сценария_исходный.ПолноеИмя, Файл_сценария_конечный.ПолноеИмя);
|
|
Ожидаем.Что(Файл_сценария_конечный.Существует(), "Должен существовать Файл_сценария_конечный, а это не так").ЭтоИстина();
|
|
КонецПроцедуры
|
|
|
|
Процедура Тест_ДолженПроверитьЧтоПрекоммит1СУстановленВХуки() Экспорт
|
|
|
|
КаталогПроекта = КаталогПроекта();
|
|
КаталогРепо = ВременныеФайлы.СоздатьКаталог();
|
|
УстановитьТекущийКаталог(КаталогРепо);
|
|
ВыполнитьКомандуГит("git init");
|
|
Исполнитель = ЗагрузитьИсполнителя();
|
|
Исполнитель.УстановитьВКаталог(КаталогРепо);
|
|
|
|
КаталогHooks = Новый Файл(ОбъединитьПути(КаталогРепо, ".git", "hooks"));
|
|
Ожидаем.Что(КаталогHooks.Существует(), "Должен существовать исходный каталог сервисной ИБ, а это не так").ЭтоИстина();
|
|
|
|
Каталог_v8Reader_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "v8Reader"));
|
|
Файл_v8Reader_конечный = Новый Файл(ОбъединитьПути(Каталог_v8Reader_конечный.ПолноеИмя, "V8Reader.epf"));
|
|
Ожидаем.Что(Файл_v8Reader_конечный.Существует(), "Должен существовать Файл_v8Reader_конечный, а это не так").ЭтоИстина();
|
|
|
|
Файл_pre_commit_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, "pre-commit"));
|
|
Ожидаем.Что(Файл_pre_commit_конечный.Существует(), "Должен существовать Файл_pre_commit_конечный, а это не так").ЭтоИстина();
|
|
|
|
Лог.Отладка("Файл_pre_commit_конечный.ПолноеИмя " + Файл_pre_commit_конечный);
|
|
Файл_сценария_исходный = Новый Файл(ОбъединитьПути(КаталогПроекта, "v8files-extractor.os"));
|
|
Файл_сценария_конечный = Новый Файл(ОбъединитьПути(КаталогHooks.ПолноеИмя, Файл_сценария_исходный.Имя));
|
|
Ожидаем.Что(Файл_сценария_конечный.Существует(), "Должен существовать Файл_сценария_конечный, а это не так").ЭтоИстина();
|
|
|
|
КонецПроцедуры
|
|
|
|
Функция КаталогСодержитИсходникиОбработки(Знач Каталог)
|
|
ВыгруженныеФайлы = НайтиФайлы(Каталог, ПолучитьМаскуВсеФайлы());
|
|
ИменаВыгруженныхФайлов = РазвернутьМассивФайловВИменаФайлов(ВыгруженныеФайлы);
|
|
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("renames.txt");
|
|
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("Form");
|
|
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("Макеты");
|
|
Ожидаем.Что(ИменаВыгруженныхФайлов, "Должны были найти выгруженный файл").Содержит("und");
|
|
Возврат Истина;
|
|
КонецФункции
|
|
|
|
Процедура ПересоздатьКаталог(Каталог)
|
|
Если Каталог.Существует() Тогда
|
|
УдалитьФайлы(Каталог.ПолноеИмя);
|
|
КонецЕсли;
|
|
СоздатьКаталог(Каталог.ПолноеИмя);
|
|
КонецПроцедуры
|
|
|
|
Процедура КопироватьДеревоФайлов(Откуда, Куда)
|
|
Лог.Отладка(" КопироватьДеревоФайлов Откуда :"+Откуда);
|
|
Лог.Отладка(" КопироватьДеревоФайлов Куда :"+Куда);
|
|
Файлы = НайтиФайлы(Откуда, ПолучитьМаскуВсеФайлы());
|
|
Для Каждого Файл из Файлы Цикл
|
|
Если Файл.ЭтоКаталог() Тогда
|
|
Лог.Отладка(" Каталог.ПолноеИмя: " + Файл.ПолноеИмя);
|
|
|
|
НовыйКонечныйКаталог = Новый Файл(ОбъединитьПути(Куда, Файл.Имя));
|
|
// Лог.Отладка(" НовыйКонечныйКаталог.ПолноеИмя: " + НовыйКонечныйКаталог.ПолноеИмя);
|
|
Если НовыйКонечныйКаталог.Существует() Тогда
|
|
Если НовыйКонечныйКаталог.ЭтоФайл() Тогда
|
|
УдалитьФайлы(НовыйКонечныйКаталог.ПолноеИмя);
|
|
СоздатьКаталог(НовыйКонечныйКаталог.ПолноеИмя);
|
|
КонецЕсли;
|
|
Иначе
|
|
Лог.Отладка("Создаю каталог "+НовыйКонечныйКаталог.ПолноеИмя);
|
|
СоздатьКаталог(НовыйКонечныйКаталог.ПолноеИмя);
|
|
КонецЕсли;
|
|
|
|
КопироватьДеревоФайлов(Файл.ПолноеИмя, НовыйКонечныйКаталог.ПолноеИмя);
|
|
Иначе
|
|
Лог.Отладка(" Откуда Файл.ПолноеИмя: " + Файл.ПолноеИмя);
|
|
Лог.Отладка(" Куда Файл.ПолноеИмя: " + ОбъединитьПути(Куда, Файл.Имя));
|
|
КопироватьФайл(Файл.ПолноеИмя, ОбъединитьПути(Куда, Файл.Имя));
|
|
КонецЕсли;
|
|
КонецЦикла;
|
|
КонецПроцедуры
|
|
|
|
Функция ВыполнитьКомандуГит(КомандаГит, КодВозврата = Неопределено, ПроверятьНулевойКодВозврата = Истина)
|
|
|
|
Лог.Информация("Запускаю "+КомандаГит);
|
|
Вывод = ПолучитьВыводПроцесса(КомандаГит, КодВозврата);
|
|
Лог.Информация(" Вывод команды гит: " + Вывод);
|
|
Если ПроверятьНулевойКодВозврата Тогда
|
|
Ожидаем.Что(КодВозврата, "Код возврата `"+КомандаГит+"` должен быть 0, а это не так").Равно(0);
|
|
КонецЕсли;
|
|
Возврат Вывод;
|
|
КонецФункции
|
|
|
|
Функция ПолучитьВыводПроцесса(Знач КоманднаяСтрока, КодВозврата)
|
|
|
|
// Это для dev версии 1.0.11
|
|
Процесс = СоздатьПроцесс(КоманднаяСтрока, , Истина,, КодировкаТекста.UTF8);
|
|
Процесс.Запустить();
|
|
Вывод = "";
|
|
|
|
Процесс.ОжидатьЗавершения();
|
|
|
|
Вывод = Вывод + Процесс.ПотокВывода.Прочитать();
|
|
Вывод = Вывод + Процесс.ПотокОшибок.Прочитать();
|
|
|
|
КодВозврата = Процесс.КодВозврата;
|
|
|
|
// ЛогФайл = ВременныеФайлы.НовоеИмяФайла();
|
|
// СтрокаЗапуска = "cmd /C """ + КоманднаяСтрока + " > """ + ЛогФайл + """ 2>&1""";
|
|
// Лог.Отладка(СтрокаЗапуска);
|
|
// ЗапуститьПриложение(СтрокаЗапуска,, Истина, КодВозврата);
|
|
// Лог.Отладка("Код возврата: " + КодВозврата);
|
|
// ЧтениеТекста = Новый ЧтениеТекста(ЛогФайл, "utf-8");
|
|
// Вывод = ЧтениеТекста.Прочитать();
|
|
// ЧтениеТекста.Закрыть();
|
|
// ВременныеФайлы.УдалитьФайл(ЛогФайл);
|
|
|
|
Возврат Вывод;
|
|
|
|
КонецФункции
|
|
|
|
Функция РазвернутьМассивФайловВИменаФайлов(Знач МассивОбъектовФайл)
|
|
|
|
ИменаФайлов = Новый Массив;
|
|
Для Каждого Файл Из МассивОбъектовФайл Цикл
|
|
ИменаФайлов.Добавить(Файл.Имя);
|
|
КонецЦикла;
|
|
|
|
Возврат ИменаФайлов;
|
|
|
|
КонецФункции
|
|
|
|
Функция КаталогПроекта()
|
|
ФайлИсточника = Новый Файл(ТекущийСценарий().Источник);
|
|
Возврат ОбъединитьПути(ФайлИсточника.Путь, "..");
|
|
КонецФункции
|
|
|
|
//}
|
|
|
|
Инициализация();
|