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 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 70da7b6..2359a96 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" @@ -152,7 +152,8 @@ Когда Я копирую файл "tests\fixtures\ИсправлениеНеКаноническогоНаписания.bsl" в каталог репозитория "РабочийКаталог" И я выполняю команду "git" с параметрами "add --all" И я выполняю команду "git" с параметрами "commit -m addFile" - Тогда Вывод команды "git" содержит """ + Тогда Вывод команды "git" не содержит "В строке 92 найдено ключевое слово" + И Вывод команды "git" содержит """ ИНФОРМАЦИЯ - В строке 5 найдено ключевое слово '#область' заменено на '#Область' ИНФОРМАЦИЯ - В строке 7 найдено ключевое слово 'ПЕРЕМ' заменено на 'Перем' ИНФОРМАЦИЯ - В строке 8 найдено ключевое слово 'перем' заменено на 'Перем' diff --git "a/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" "b/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" index 772d03e..568d2c6 100644 --- "a/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.feature" +++ "b/features/\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265.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/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" "b/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" index bdf199d..7e6db3f 100644 --- "a/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.feature" +++ "b/features/\320\237\321\200\320\276\321\201\321\202\321\213\320\265\320\232\320\276\320\274\320\260\320\275\320\264\321\213.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/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" "b/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" index 808b0bb..38d04e5 100644 --- "a/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.feature" +++ "b/features/\320\243\321\201\321\202\320\260\320\275\320\276\320\262\320\272\320\260\320\237\321\200\320\265\320\272\320\276\320\274\320\274\320\270\321\202\320\260.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/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index a913a4d..6d49a09 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\237\320\260\321\200\320\260\320\274\320\265\321\202\321\200\321\213\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -22,7 +22,7 @@ // Функция ВерсияПродукта() Экспорт - Возврат "1.20"; + Возврат "1.20.1"; КонецФункции // ВерсияПродукта 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\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.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\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.os" index 04d399f..b42d1c3 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\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.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\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.os" @@ -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; diff --git "a/tests/fixtures/\320\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.bsl" "b/tests/fixtures/\320\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.bsl" index 8e84f6e..ec6869f 100644 --- "a/tests/fixtures/\320\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.bsl" +++ "b/tests/fixtures/\320\230\321\201\320\277\321\200\320\260\320\262\320\273\320\265\320\275\320\270\320\265\320\235\320\265\320\232\320\260\320\275\320\276\320\275\320\270\321\207\320\265\321\201\320\272\320\276\320\263\320\276\320\235\320\260\320\277\320\270\321\201\320\260\320\275\320\270\321\217.bsl" @@ -71,4 +71,30 @@ &наКлиентенаСервере Процедура тест() // Комментарий -КонецПроцедуры \ No newline at end of file +КонецПроцедуры + +Функция тест (Параметр, ДатаНачала, УИД, Владелец) + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Источник.Период, + | Источник.ЕщеПериод, + | Источник.ЕщеПериод1, + | Источник.ЕщеПериод2.Точка КАК ЕщеПериод2, + | Источник.Измерение + |ИЗ + | РегистрСведений.Источник.СрезПоследних(, " + ?(НЕ Параметр = Неопределено, "Измерение.Реквизит = &Параметр", "") + ") КАК Источник + |ГДЕ + | ИСТИНА + | + | " + ?(НЕ ДатаНачала = Неопределено И НЕ ДатаКонца = Неопределено, "И Источник.ДатаНачалаДействия МЕЖДУ &ДатаНачала И &ДатаКонца", "") + " + //| ИЛИ Источник.ДатаКонца МЕЖДУ &ДатаНачала И &ДатаКонца)", "") + " + | " + ?(НЕ УИД = Неопределено, "И Источник.Владелец = &Владелец", ""); + + Запрос.УстановитьПараметр("Владелец", Владелец); + + Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала); + Запрос.УстановитьПараметр("ДатаКонца", ДатаКонца); + + Возврат Запрос.Выполнить().Выгрузить(); +КонецФункции diff --git "a/tests/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\321\200\320\260\320\275\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\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\321\200\320\260\320\275\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 aaeae3b..dcf4ecc 100644 --- "a/tests/\320\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\321\200\320\260\320\275\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\237\321\200\320\276\320\262\320\265\321\200\320\272\320\260\320\241\321\206\320\265\321\200\320\260\320\275\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" @@ -23,6 +23,8 @@ ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийРазбораОтчетовОбработокРасширенийВозвращаетНастройки"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетФайл"); ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные"); + ВсеТесты.Добавить("ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание"); + Возврат ВсеТесты; КонецФункции @@ -57,6 +59,22 @@ КонецПроцедуры +Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияИсправляетТолькоНаписание() Экспорт + + ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os"); + ИмяФайла = "ИсправлениеНеКаноническогоНаписания.bsl"; + + Файл = ПодготовитьИзменяемыйТестовыйФайл(ИмяФайла); + ТекстФайлаДо = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя); + Результат = ОбъектСценария.ОбработатьФайл(Файл, Файл.Путь, ПолучитьДополнительныеНастройки()); + ТекстФайлаПосле = ФайловыеОперации.ПрочитатьТекстФайла(Файл.ПолноеИмя); + + // текст изменен + Ожидаем.Что(ТекстФайлаДо, Истина).Не_().Равно(ТекстФайлаПосле); + // текст тождественен + Ожидаем.Что(Врег(ТекстФайлаДо), Истина).Равно(Врег(ТекстФайлаПосле)); +КонецПроцедуры + Процедура ТестДолжен_ПроверитьЧтоСценарийИсправлениеНеКаноническогоНаписанияНеИндексируетНеизмененные() Экспорт ОбъектСценария = ПолучитьСценарий("ИсправлениеНеКаноническогоНаписания.os");