Skip to content

Commit

Permalink
Merge branch 'release/v1.7.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
nixel2007 committed Dec 18, 2021
2 parents 642130c + bda053c commit d39511d
Show file tree
Hide file tree
Showing 7 changed files with 341 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@

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

//Я создаю временный файл во "temp.tmp" временном каталоге и сохраняю его в контекст
//Я создаю временный файл "temp.tmp" во временном каталоге и сохраняю его в контекст
Процедура ЯСоздаюВременныйФайлВоВременномКаталогеИСохраняюЕгоВКонтекст(ИмяФайла) Экспорт
ВременныйКаталог = БДД.ПолучитьИзКонтекста("ВременныйКаталог");
ВременныйФайл = ОбъединитьПути(ВременныйКаталог, ИмяФайла);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd

Перем БДД; //контекст фреймворка 1bdd

// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;

ВсеШаги = Новый Массив;
ВсеШаги.Добавить("ЯПолучаюВыводСтатусаЧерезКоманду");
ВсеШаги.Добавить("ЯМодифицируюВременныйФайл");
ВсеШаги.Добавить("ЯИзменяюГитомИмяВременногоФайлаНа");
ВсеШаги.Добавить("ЯУдаляюВременныйФайл");
ВсеШаги.Добавить("ЯПолучаюМассивФайловКДобавлению");
ВсеШаги.Добавить("ЯПолучаюМассивФайловВнеИндекса");
ВсеШаги.Добавить("ЯПолучаюМассивФайловКУдалению");
ВсеШаги.Добавить("ЯПолучаюМассивНеослеживаемыхФайлов");
ВсеШаги.Добавить("МассивФайловСодержит");

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

// Реализация шагов

// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт

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

// Процедура выполняется после завершения каждого сценария
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт

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

//Я получаю вывод Статуса через команду
Процедура ЯПолучаюВыводСтатусаЧерезКоманду() Экспорт
ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий");
ГитРепозиторий.ДанныеСтатуса().Получить();
КонецПроцедуры

//Я получаю Массив файлов к добавлению
Процедура ЯПолучаюМассивФайловКДобавлению() Экспорт
ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий");
ТаблицаСтатусовМассивФайлов = ГитРепозиторий.ДанныеСтатуса().КДобавлению();
БДД.СохранитьВКонтекст("ТаблицаСтатусовМассивФайлов", ТаблицаСтатусовМассивФайлов);
КонецПроцедуры

//Я получаю Массив файлов вне индекса
Процедура ЯПолучаюМассивФайловВнеИндекса() Экспорт
ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий");
ТаблицаСтатусовМассивФайлов = ГитРепозиторий.ДанныеСтатуса().ВнеИндекса();
БДД.СохранитьВКонтекст("ТаблицаСтатусовМассивФайлов", ТаблицаСтатусовМассивФайлов);
КонецПроцедуры

//Я получаю Массив файлов к удалению
Процедура ЯПолучаюМассивФайловКУдалению() Экспорт
ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий");
ТаблицаСтатусовМассивФайлов = ГитРепозиторий.ДанныеСтатуса().КУдалению();
БДД.СохранитьВКонтекст("ТаблицаСтатусовМассивФайлов", ТаблицаСтатусовМассивФайлов);
КонецПроцедуры

//Я получаю Массив неослеживаемых файлов
Процедура ЯПолучаюМассивНеослеживаемыхФайлов() Экспорт
ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий");
ТаблицаСтатусовМассивФайлов = ГитРепозиторий.ДанныеСтатуса().НеОтслеживаются();
БДД.СохранитьВКонтекст("ТаблицаСтатусовМассивФайлов", ТаблицаСтатусовМассивФайлов);
КонецПроцедуры

//Массив файлов содержит
Процедура МассивФайловСодержит(ИмяФайла) Экспорт
ТаблицаСтатусовМассивФайлов = БДД.ПолучитьИзКонтекста("ТаблицаСтатусовМассивФайлов");
Ожидаем.Что(ТаблицаСтатусовМассивФайлов).Содержит(ИмяФайла);
КонецПроцедуры

//Я модифицирую временный файл
Процедура ЯМодифицируюВременныйФайл() Экспорт
ВременныйФайл = БДД.ПолучитьИзКонтекста("ВременныйФайл");
ЗаписьФайла = Новый ЗаписьТекста(ВременныйФайл);
ЗаписьФайла.ЗаписатьСтроку("Модификация");
ЗаписьФайла.Закрыть();
КонецПроцедуры

//Я удаляю временный файл
Процедура ЯУдаляюВременныйФайл() Экспорт
ВременныйФайл = БДД.ПолучитьИзКонтекста("ВременныйФайл");
УдалитьФайлы(ВременныйФайл);
КонецПроцедуры

//Я изменяю имя временного файла на "tempХ.tmp"
Процедура ЯИзменяюГитомИмяВременногоФайлаНа(ИмяФайла) Экспорт
ГитРепозиторий = БДД.ПолучитьИзКонтекста("ГитРепозиторий");
ВременныйФайл = БДД.ПолучитьИзКонтекста("ВременныйФайл");
Файл = Новый Файл(ВременныйФайл);
ПараметрыКоманды = Новый Массив();
ПараметрыКоманды.Добавить("mv");
ПараметрыКоманды.Добавить("""" + Файл.Имя + """");
ПараметрыКоманды.Добавить("""" + ИмяФайла + """");
ГитРепозиторий.ВыполнитьКоманду(ПараметрыКоманды);
БДД.СохранитьВКонтекст("ВременныйФайл", ИмяФайла);
КонецПроцедуры
64 changes: 64 additions & 0 deletions features/ПолучениеТаблицыСтатусов.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# language: ru

Функциональность: Получение таблицы состояний файлов

Как разработчик
Я хочу иметь возможность получать статусы файлов в/вне индекса в виде таблицы
Чтобы использовать их состояние для последующей обработки

Контекст:
Допустим Я создаю новый объект ГитРепозиторий
И Я создаю временный каталог и сохраняю его в контекст
И Я инициализирую репозиторий во временном каталоге

Сценарий: Я добавляю новый файл и проверяю его статусы
Допустим Я создаю временный файл "temp.tmp" во временном каталоге и сохраняю его в контекст

И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит "?? temp.tmp"

И Я получаю Массив неослеживаемых файлов
Тогда Массив файлов содержит "temp.tmp"

Также Я добавляю временный файл в индекс
И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит "A temp.tmp"
И Я получаю Массив файлов к добавлению
Тогда Массив файлов содержит "temp.tmp"

Также Я фиксирую изменения с сообщением "Добавлен тестовый файл"
И Я модифицирую временный файл
И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит " M temp.tmp"
И Я получаю Массив файлов вне индекса
Тогда Массив файлов содержит "temp.tmp"

Также Я фиксирую изменения с сообщением "Изменен тестовый файл"
И Я удаляю временный файл
И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит " D temp.tmp"
И Я добавляю временный файл в индекс
И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит "D temp.tmp"
И Я получаю Массив файлов к удалению
Тогда Массив файлов содержит "temp.tmp"

Сценарий: Добавление файла с пробелами в имени и получении его статусов
Допустим Я создаю временный файл "temp 2.tmp" во временном каталоге и сохраняю его в контекст

И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит '?? "temp 2.tmp"'

И Я получаю Массив неослеживаемых файлов
Тогда Массив файлов содержит "temp 2.tmp"

Также Я добавляю временный файл в индекс
И Я фиксирую изменения с сообщением "Изменен тестовый файл"
И Я изменяю гитом имя временного файла на "temp 3.tmp"
И Я добавляю временный файл в индекс
И Я получаю вывод Статуса через команду
Тогда Вывод команды содержит 'R "temp 2.tmp" -> "temp 3.tmp"'
И Я получаю Массив файлов к удалению
Тогда Массив файлов содержит "temp 2.tmp"
И Я получаю Массив файлов к добавлению
Тогда Массив файлов содержит "temp 3.tmp"
1 change: 1 addition & 0 deletions lib.config
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,5 @@
<class name="НастройкаКомандыОтправить" file="src/Классы/НастройкаКомандыОтправить.os"/>
<class name="НастройкаКомандыКлонировать" file="src/Классы/НастройкаКомандыКлонировать.os"/>
<module name="РежимУстановкиНастроекGit" file="src/Модули/РежимУстановкиНастроекGit.os"/>
<class name="ДанныеСтатуса" file="src/Классы/ДанныеСтатуса.os"/>
</package-def>
2 changes: 1 addition & 1 deletion packagedef
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
Описание.Имя("gitrunner")
.Версия("1.6.3")
.Версия("1.7.0")
.ЗависитОт("1bdd")
.ВерсияСреды("1.0.17")
.ЗависитОт("1commands", "1.3.1")
Expand Down
21 changes: 17 additions & 4 deletions src/ГитРепозиторий.os
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@

ПараметрыЗапуска = Новый Массив;
ПараметрыЗапуска.Добавить("add");
ПараметрыЗапуска.Добавить(ПутьКДобавляемомуФайлу);
ПараметрыЗапуска.Добавить(ОбернутьВКавычки(ПутьКДобавляемомуФайлу));

ВыполнитьКоманду(ПараметрыЗапуска);

Expand Down Expand Up @@ -570,7 +570,7 @@
Для сч = 1 По ЧислоСтрок Цикл

Строка = СтрПолучитьСтроку(ВыводКоманды, сч);
Если НЕ ЗначениеЗаполнено(Строка) Тогда
Если ПустаяСтрока(Строка) Тогда
Продолжить;
КонецЕсли;

Expand Down Expand Up @@ -693,13 +693,13 @@

Для сч = 1 По ЧислоСтрок Цикл

ДанныеПодмодуля = ТаблицаПодмодулей.Добавить();

Строка = СтрПолучитьСтроку(ВыводКоманды, сч);
Если ПустаяСтрока(Строка) Тогда
Продолжить;
КонецЕсли;

ДанныеПодмодуля = ТаблицаПодмодулей.Добавить();

ДанныеСтроки = СтрРазделить(Строка, " ", Ложь);
ДанныеПодмодуля.ХэшКоммита = ДанныеСтроки[0];
ДанныеПодмодуля.Имя = ДанныеСтроки[1];
Expand Down Expand Up @@ -834,6 +834,10 @@
Для сч = 1 По ЧислоСтрок Цикл

Строка = СтрПолучитьСтроку(ВыводКоманды, сч);
Если ПустаяСтрока(Строка) Тогда
Продолжить;
КонецЕсли;

СимволРавно = СтрНайти(Строка, "=");

ИмяНастройки = Лев(Строка, СимволРавно - 1);
Expand Down Expand Up @@ -993,6 +997,15 @@
ТихийРежимРаботы = Ложь;
КонецПроцедуры

// Работа со статусом репозитория
//
// Возвращаемое значение:
// ДанныеСтатуса - Объект класса
Функция ДанныеСтатуса() Экспорт
Статус = Статус(Истина);
Возврат Новый ДанныеСтатуса(Статус);
КонецФункции

#КонецОбласти

#Область СлужебныеПроцедурыИФункции
Expand Down
Loading

0 comments on commit d39511d

Please sign in to comment.