1
0
mirror of https://github.com/bia-technologies/precommit4onec.git synced 2024-11-28 08:48:45 +02:00

Merge branch 'develop' into ONECICD-147

# Conflicts:
#	features/Конфигурирование.feature
This commit is contained in:
aleksey.koryakin 2019-12-11 13:15:43 +03:00
commit 5bcbe639e6
9 changed files with 65 additions and 22 deletions

2
.gitignore vendored
View File

@ -2,5 +2,5 @@ bdd-log.xml
*.ospx
*.orig
exec.log
.vscode
/tests.xml

View File

@ -152,7 +152,8 @@
Когда Я копирую файл "tests\fixtures\ИсправлениеНеКаноническогоНаписания.bsl" в каталог репозитория "РабочийКаталог"
И я выполняю команду "git" с параметрами "add --all"
И я выполняю команду "git" с параметрами "commit -m addFile"
Тогда Вывод команды "git" содержит """
Тогда Вывод команды "git" не содержит "В строке 92 найдено ключевое слово"
И Вывод команды "git" содержит """
ИНФОРМАЦИЯ - В строке 5 найдено ключевое слово '#область' заменено на '#Область'
ИНФОРМАЦИЯ - В строке 7 найдено ключевое слово 'ПЕРЕМ' заменено на 'Перем'
ИНФОРМАЦИЯ - В строке 8 найдено ключевое слово 'перем' заменено на 'Перем'

View File

@ -10,7 +10,7 @@
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os configure -global"
Тогда Код возврата команды "oscript" равен 0
И Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "precommit4onec v1.20"
И Вывод команды "oscript" содержит "precommit4onec v1.20.1"
И Вывод команды "oscript" содержит "Установленные настройки:"
И Вывод команды "oscript" содержит "ИспользоватьСценарииРепозитория ="
И Вывод команды "oscript" содержит "КаталогЛокальныхСценариев ="
@ -36,7 +36,7 @@
И Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит
"""
precommit4onec v1.20
precommit4onec v1.20.1
Установленные настройки: Precommit4onecСценарии
ИспользоватьСценарииРепозитория = Нет
КаталогЛокальныхСценариев =

View File

@ -14,7 +14,7 @@
Сценарий: Получение версии продукта
Когда Я выполняю команду "oscript" с параметрами "src/main.os version"
Тогда Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "1.20"
И Вывод команды "oscript" содержит "1.20.1"
И Вывод команды "oscript" не содержит "precommit4onec v"
И Код возврата команды "oscript" равен 0
@ -22,7 +22,7 @@
Когда Я выполняю команду "oscript" с параметрами "src/main.os help"
Тогда Вывод команды "oscript" содержит
"""
precommit4onec v1.20
precommit4onec v1.20.1
Возможные команды:
help - Выводит справку по командам
version - Выводит версию приложения
@ -36,7 +36,7 @@
Когда Я выполняю команду "oscript" с параметрами "src/main.os"
Тогда Вывод команды "oscript" содержит
"""
precommit4onec v1.20
precommit4onec v1.20.1
Возможные команды:
help - Выводит справку по командам
version - Выводит версию приложения

View File

@ -18,7 +18,7 @@
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install rep1"
Тогда Код возврата команды "oscript" равен 0
И Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "precommit4onec v1.20"
И Вывод команды "oscript" содержит "precommit4onec v1.20.1"
И Вывод команды "oscript" содержит "Pre-commit hook для rep1 создан"
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
@ -28,14 +28,14 @@
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./"
Тогда Код возврата команды "oscript" равен 0
И Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "precommit4onec v1.20"
И Вывод команды "oscript" содержит "precommit4onec v1.20.1"
И Вывод команды "oscript" содержит "не является репозиторием git"
Сценарий: Установка precommit4onec во вложенные каталоги
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./ -r"
Тогда Код возврата команды "oscript" равен 0
И Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "precommit4onec v1.20"
И Вывод команды "oscript" содержит "precommit4onec v1.20.1"
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"
@ -51,6 +51,6 @@
И Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os install ./ -r"
Тогда Код возврата команды "oscript" равен 0
И Я сообщаю вывод команды "oscript"
И Вывод команды "oscript" содержит "precommit4onec v1.20"
И Вывод команды "oscript" содержит "precommit4onec v1.20.1"
И В каталоге ".git/hooks" репозитория "Репозиторий1" есть файл "pre-commit"
И В каталоге ".git/hooks" репозитория "Репозиторий2" есть файл "pre-commit"

View File

@ -22,7 +22,7 @@
//
Функция ВерсияПродукта() Экспорт
Возврат "1.20";
Возврат "1.20.1";
КонецФункции // ВерсияПродукта

View File

@ -102,9 +102,9 @@
КонецЕсли;
// Вырезаем часть строки в кавычках
ПоследняяПозиция = 0;
ПозицияКавычек = СтрНайти(НоваяСтрокаМодуля, """");
ПозицияКавычек = СтрНайти(НоваяСтрокаМодуля, """");
ПоследняяПозиция = 0;
НоваяСтрокаМодуля = ВырезатьТекстВКавычках(НоваяСтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта);
// ничего интересного не осталось
@ -119,8 +119,6 @@
// Проверяем правильное использование каждого ключевого слова
ВРегНоваяСтрокаМодуля = НормализоватьСтроку(НоваяСтрокаМодуля, ЗаменяемыеСимволы);
ДлинаСтроки = СтрДлина(ВРегНоваяСтрокаМодуля);
Для Каждого ЭлементТаблицы Из КлючевыеСлова Цикл
Эталон = ЭлементТаблицы.Наименование;
ПозицияЭталона = СтрНайти(ВРегНоваяСтрокаМодуля, " " + Эталон + " ");
@ -158,7 +156,6 @@
КонецЦикла;
Если НовоеСодержимоеФайла.ПолучитьТекст() <> СодержимоеФайла Тогда
ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, НовоеСодержимоеФайла.ПолучитьТекст());
Возврат Истина; // переиндексируем
@ -193,15 +190,16 @@
КонецПроцедуры
Функция ВырезатьТекстВКавычках(Знач СтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта)
Пока ПозицияКавычек > 0 Цикл
// Если строка открыта 2 варианта:
// Строка могла открыться ранее по тексту модуля тогда ПоследняяПозиция кавычки в этой строке = 0, тогда слева ничего не отрежется, а дополнить надо вместе с кавычкой
// Строка в этой же строке, значит 1 кавычку мы уже заменили и надо дополнить оставшуюся часть : пример"
Если СтрокаОткрыта Тогда
// кавычки закрывают строку, вырезаем часть в кавычках
СтрокаМодуляВКавычках = Сред(СтрокаМодуля, ПозицияКавычек + 1);
СтрокаМодуля = Лев(СтрокаМодуля, ПоследняяПозиция - 1)
+ ДополнитьСтроку("", ПозицияКавычек - ПоследняяПозиция + 1, " ")
+ ДополнитьСтроку("", ?(ПоследняяПозиция = 0, ПозицияКавычек, ПозицияКавычек - ПоследняяПозиция + 1), " ")
+ СтрокаМодуляВКавычках;
СтрокаОткрыта = Ложь;
ПоследняяПозиция = 0;

View File

@ -71,4 +71,30 @@
&наКлиентенаСервере
Процедура тест() // Комментарий
КонецПроцедуры
КонецПроцедуры
Функция тест (Параметр, ДатаНачала, УИД, Владелец)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Источник.Период,
| Источник.ЕщеПериод,
| Источник.ЕщеПериод1,
| Источник.ЕщеПериод2.Точка КАК ЕщеПериод2,
| Источник.Измерение
|ИЗ
| РегистрСведений.Источник.СрезПоследних(, " + ?(НЕ Параметр = Неопределено, "Измерение.Реквизит = &Параметр", "") + ") КАК Источник
|ГДЕ
| ИСТИНА
|
| " + ?(НЕ ДатаНачала = Неопределено И НЕ ДатаКонца = Неопределено, "И Источник.ДатаНачалаДействия МЕЖДУ &ДатаНачала И &ДатаКонца", "") + "
//| ИЛИ Источник.ДатаКонца МЕЖДУ &ДатаНачала И &ДатаКонца)", "") + "
| " + ?(НЕ УИД = Неопределено, "И Источник.Владелец = &Владелец", "");
Запрос.УстановитьПараметр("Владелец", Владелец);
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца);
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции

View File

@ -23,6 +23,8 @@
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные");
ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание");
Возврат ВсеТесты;
КонецФункции
@ -57,6 +59,22 @@
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание() Экспорт
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");
ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl";
Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла);
ТекстФайлаДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки());
ТекстФайлаПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя);
// текст изменен
Ожидаем.Что(ТекстФайлаДо, Истина).Не_().Равно(ТекстФайлаПосле);
// текст тождественен
Ожидаем.Что(Врег(ТекстФайлаДо), Истина).Равно(Врег(ТекстФайлаПосле));
КонецПроцедуры
Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные() Экспорт
ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");