From 763a507aa359622b28610459c6deb171e971b932 Mon Sep 17 00:00:00 2001 From: Dmitriy Medvedev Date: Wed, 13 Nov 2019 16:19:11 +0300 Subject: [PATCH 1/4] #ONECICD-126 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Доработал тесты --- features/ВыполнениеПрекоммита.feature | 3 +- .../ИсправлениеНеКаноническогоНаписания.bsl | 28 ++++++++++++++++++- tests/ПроверкаСцераниевОбработки.os | 18 ++++++++++++ 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/features/ВыполнениеПрекоммита.feature b/features/ВыполнениеПрекоммита.feature index 70da7b6..2359a96 100644 --- a/features/ВыполнениеПрекоммита.feature +++ b/features/ВыполнениеПрекоммита.feature @@ -152,7 +152,8 @@ Когда Я копирую файл "tests\fixtures\ИсправлениеНеКаноническогоНаписания.bsl" в каталог репозитория "РабочийКаталог" И я выполняю команду "git" с параметрами "add --all" И я выполняю команду "git" с параметрами "commit -m addFile" - Тогда Вывод команды "git" содержит """ + Тогда Вывод команды "git" не содержит "В строке 92 найдено ключевое слово" + И Вывод команды "git" содержит """ ИНФОРМАЦИЯ - В строке 5 найдено ключевое слово '#область' заменено на '#Область' ИНФОРМАЦИЯ - В строке 7 найдено ключевое слово 'ПЕРЕМ' заменено на 'Перем' ИНФОРМАЦИЯ - В строке 8 найдено ключевое слово 'перем' заменено на 'Перем' diff --git a/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl b/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl index 8e84f6e..ec6869f 100644 --- a/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl +++ b/tests/fixtures/ИсправлениеНеКаноническогоНаписания.bsl @@ -71,4 +71,30 @@ &наКлиентенаСервере Процедура тест() // Комментарий -КонецПроцедуры \ No newline at end of file +КонецПроцедуры + +Функция тест (Параметр, ДатаНачала, УИД, Владелец) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Источник.Период, + | Источник.ЕщеПериод, + | Источник.ЕщеПериод1, + | Источник.ЕщеПериод2.Точка КАК ЕщеПериод2, + | Источник.Измерение + |ИЗ + | РегистрСведений.Источник.СрезПоследних(, " + ?(НЕ Параметр = Неопределено, "Измерение.Реквизит = &Параметр", "") + ") КАК Источник + |ГДЕ + | ИСТИНА + | + | " + ?(НЕ ДатаНачала = Неопределено И НЕ ДатаКонца = Неопределено, "И Источник.ДатаНачалаДействия МЕЖДУ &ДатаНачала И &ДатаКонца", "") + " + //| ИЛИ Источник.ДатаКонца МЕЖДУ &ДатаНачала И &ДатаКонца)", "") + " + | " + ?(НЕ УИД = Неопределено, "И Источник.Владелец = &Владелец", ""); + + Запрос.УстановитьПараметр("Владелец", Владелец); + + Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); + Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца); + + Возврат Запрос.Выполнить().Выгрузить(); +КонецФункции diff --git a/tests/ПроверкаСцераниевОбработки.os b/tests/ПроверкаСцераниевОбработки.os index aaeae3b..dcf4ecc 100644 --- a/tests/ПроверкаСцераниевОбработки.os +++ b/tests/ПроверкаСцераниевОбработки.os @@ -23,6 +23,8 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание"); + Возврат ВсеТесты; КонецФункции @@ -57,6 +59,22 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание() Экспорт + + ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os"); + ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl"; + + Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла); + ТекстФайлаДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + ТекстФайлаПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя); + + // текст изменен + Ожидаем.Что(ТекстФайлаДо, Истина).Не_().Равно(ТекстФайлаПосле); + // текст тождественен + Ожидаем.Что(Врег(ТекстФайлаДо), Истина).Равно(Врег(ТекстФайлаПосле)); +КонецПроцедуры + Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные() Экспорт ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os"); From c3c4ab1a496809a2e97f79b2b57d96b42247f8b2 Mon Sep 17 00:00:00 2001 From: Dmitriy Medvedev Date: Wed, 13 Nov 2019 16:19:34 +0300 Subject: [PATCH 2/4] #ONECICD-126 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Поправил сценарий --- .../ИсправлениеНеКаноническогоНаписания.os | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os b/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os index 04d399f..f6a3193 100644 --- a/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os +++ b/src/СценарииОбработки/ИсправлениеНеКаноническогоНаписания.os @@ -102,9 +102,9 @@ КонецЕсли; // Вырезаем часть строки в кавычках - ПоследняяПозиция = 0; - ПозицияКавычек = СтрНайти(НоваяСтрокаМодуля, """"); + ПозицияКавычек = СтрНайти(НоваяСтрокаМодуля, """"); + ПоследняяПозиция = 0; НоваяСтрокаМодуля = ВырезатьТекстВКавычках(НоваяСтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта); // ничего интересного не осталось @@ -119,8 +119,6 @@ // Проверяем правильное использование каждого ключевого слова ВРегНоваяСтрокаМодуля = НормализоватьСтроку(НоваяСтрокаМодуля, ЗаменяемыеСимволы); - ДлинаСтроки = СтрДлина(ВРегНоваяСтрокаМодуля); - Для Каждого ЭлементТаблицы Из КлючевыеСлова Цикл Эталон = ЭлементТаблицы.Наименование; ПозицияЭталона = СтрНайти(ВРегНоваяСтрокаМодуля, " " + Эталон + " "); @@ -158,7 +156,6 @@ КонецЦикла; Если НовоеСодержимоеФайла.ПолучитьТекст() <> СодержимоеФайла Тогда - ФайловыеОперации.ЗаписатьТекстФайла(ИмяФайла, НовоеСодержимоеФайла.ПолучитьТекст()); Возврат Истина; // переиндексируем @@ -192,16 +189,17 @@ КонецПроцедуры -Функция ВырезатьТекстВКавычках(Знач СтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта) - +Функция ВырезатьТекстВКавычках(Знач СтрокаМодуля, ПозицияКавычек, ПоследняяПозиция, СтрокаОткрыта, НачалоСтрокиМодуля = Истина) + ТмпСтрокаМодуля = СтрокаМодуля; Пока ПозицияКавычек > 0 Цикл - + // Если строка открыта 2 варианта: + // Строка могла открыться ранее по тексту модуля тогда ПоследняяПозиция кавычки в этой строке = 0, тогда слева ничего не отрежется, а дополнить надо вместе с кавычкой + // Строка в этой же строке, значит 1 кавычку мы уже заменили и надо дополнить оставшуюся часть : пример" Если СтрокаОткрыта Тогда - // кавычки закрывают строку, вырезаем часть в кавычках СтрокаМодуляВКавычках = Сред(СтрокаМодуля, ПозицияКавычек + 1); СтрокаМодуля = Лев(СтрокаМодуля, ПоследняяПозиция - 1) - + ДополнитьСтроку("", ПозицияКавычек - ПоследняяПозиция + 1, " ") + + ДополнитьСтроку("", ?(ПоследняяПозиция = 0, ПозицияКавычек, ПозицияКавычек - ПоследняяПозиция + 1), " ") + СтрокаМодуляВКавычках; СтрокаОткрыта = Ложь; ПоследняяПозиция = 0; From d50ce5213eb84a0c6c57cff36f4f4eab8dda7cb3 Mon Sep 17 00:00:00 2001 From: Dmitriy Medvedev Date: Wed, 13 Nov 2019 16:37:03 +0300 Subject: [PATCH 3/4] =?UTF-8?q?=D0=9E=D1=82=D1=80=D0=B5=D0=B4=D0=B0=D0=BA?= =?UTF-8?q?=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BB=20.gitignore?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1977681..2d0bbd0 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,5 @@ bdd-log.xml *.ospx *.orig exec.log - +.vscode /tests.xml From fa2a1624275676d0091d10da5d4470925ce19d63 Mon Sep 17 00:00:00 2001 From: Dmitriy Medvedev Date: Mon, 25 Nov 2019 17:32:23 +0300 Subject: [PATCH 4/4] =?UTF-8?q?=D0=9E=D0=B1=D0=BD=D0=BE=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=B2=D0=B5=D1=80=D1=81=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- features/Конфигурирование.feature | 4 ++-- features/ПростыеКоманды.feature | 6 +++--- features/УстановкаПрекоммита.feature | 8 ++++---- src/Модули/ПараметрыПриложения.os | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/features/Конфигурирование.feature b/features/Конфигурирование.feature index 772d03e..568d2c6 100644 --- a/features/Конфигурирование.feature +++ b/features/Конфигурирование.feature @@ -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" содержит "КаталогЛокальныхСценариев =" @@ -25,7 +25,7 @@ И Я сообщаю вывод команды "oscript" И Вывод команды "oscript" содержит """ - precommit4onec v1.20 + precommit4onec v1.20.1 Установленные настройки: Precommt4onecСценарии ИспользоватьСценарииРепозитория = Нет КаталогЛокальныхСценариев = diff --git a/features/ПростыеКоманды.feature b/features/ПростыеКоманды.feature index bdf199d..7e6db3f 100644 --- a/features/ПростыеКоманды.feature +++ b/features/ПростыеКоманды.feature @@ -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 - Выводит версию приложения diff --git a/features/УстановкаПрекоммита.feature b/features/УстановкаПрекоммита.feature index 808b0bb..38d04e5 100644 --- a/features/УстановкаПрекоммита.feature +++ b/features/УстановкаПрекоммита.feature @@ -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" diff --git a/src/Модули/ПараметрыПриложения.os b/src/Модули/ПараметрыПриложения.os index a913a4d..6d49a09 100644 --- a/src/Модули/ПараметрыПриложения.os +++ b/src/Модули/ПараметрыПриложения.os @@ -22,7 +22,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "1.20"; + Возврат "1.20.1"; КонецФункции // ВерсияПродукта