mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-29 05:25:53 +03:00
fix(db-load-xml, db-update, db-load-git): предупреждение о тихом отказе — только при успехе платформы
Блок «[warning] platform reported success, but the log contains N problem(s)» печатался при любом коде выхода. При провале (code ≠ 0) он стоял под «Error … (code: N)» и называл провал успехом, а его строки повторяли лог, который уже выведен целиком. Блок задуман для случая, когда платформа сообщает об успехе, но в логе отказ, — теперь он печатается только при code 0. При провале остаются строка ошибки и лог. Список отказов в выжимке — только тихие отказы, а не все ошибки загрузки, поэтому при провале он был бы ещё и неполным. -StrictLog не изменился. Кейсы failed-load-no-success-warning (фейковая платформа, код 1, строка-отказ в логе) — по одному на навык; на прежних скриптах падают. Все порты: db-load-xml v1.33, db-update v1.23, db-load-git v1.31. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
38c32fb903
commit
bdf7902e6a
@@ -1,4 +1,4 @@
|
||||
# db-load-git v1.30 — Load Git changes into 1C database
|
||||
# db-load-git v1.31 — Load Git changes into 1C database
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# NB: *nix-раскладку платформы (/opt/1cv8/<ver>/1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется.
|
||||
<#
|
||||
@@ -1051,10 +1051,12 @@ try {
|
||||
# разный — от отброшенного свойства до нерабочей на этой платформе конфигурации. Подсказку
|
||||
# про -StrictLog не даём: операция уже выполнена, повторять её ради того же текста незачем.
|
||||
$silentFailures = @(Find-SilentRejections $logContent)
|
||||
if ($silentFailures.Count -gt 0) {
|
||||
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
|
||||
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
|
||||
if ($exitCode -eq 0 -and $silentFailures.Count -gt 0) {
|
||||
Write-Host "[warning] platform reported success, but the log contains $($silentFailures.Count) problem(s):" -ForegroundColor Yellow
|
||||
foreach ($f in $silentFailures) { Write-Host " $f" -ForegroundColor Yellow }
|
||||
if ($StrictLog -and $exitCode -eq 0) { $exitCode = 1 }
|
||||
if ($StrictLog) { $exitCode = 1 }
|
||||
}
|
||||
|
||||
# Расширение могло загрузиться «успешно» и остаться неприменимым — спрашиваем платформу.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# db-load-git v1.30 — Load Git changes into 1C database
|
||||
# db-load-git v1.31 — Load Git changes into 1C database
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -1108,14 +1108,16 @@ def main():
|
||||
# разный — от отброшенного свойства до нерабочей на этой платформе конфигурации. Подсказку
|
||||
# про -StrictLog не даём: операция уже выполнена, повторять её ради того же текста незачем.
|
||||
silent_failures = find_silent_rejections(log_content)
|
||||
if silent_failures:
|
||||
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
|
||||
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
|
||||
if exit_code == 0 and silent_failures:
|
||||
print(
|
||||
f"[warning] platform reported success, but the log contains "
|
||||
f"{len(silent_failures)} problem(s):"
|
||||
)
|
||||
for line in silent_failures:
|
||||
print(f" {line}")
|
||||
if args.StrictLog and exit_code == 0:
|
||||
if args.StrictLog:
|
||||
exit_code = 1
|
||||
|
||||
# Расширение могло загрузиться «успешно» и остаться неприменимым — спрашиваем платформу.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# db-load-xml v1.32 — Load 1C configuration from XML files
|
||||
# db-load-xml v1.33 — Load 1C configuration from XML files
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# NB: *nix-раскладку платформы (/opt/1cv8/<ver>/1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется.
|
||||
<#
|
||||
@@ -931,10 +931,12 @@ try {
|
||||
# Причину не называем: строки лога печатаются следом и говорят за себя, а класс проблемы
|
||||
# разный — от отброшенного свойства до нерабочей на этой платформе конфигурации. Подсказку
|
||||
# про -StrictLog не даём: загрузка уже выполнена, повторять её ради того же текста незачем.
|
||||
if ($silentFailures.Count -gt 0) {
|
||||
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
|
||||
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
|
||||
if ($exitCode -eq 0 -and $silentFailures.Count -gt 0) {
|
||||
Write-Host "[warning] platform reported success, but the log contains $($silentFailures.Count) problem(s):" -ForegroundColor Yellow
|
||||
foreach ($f in $silentFailures) { Write-Host " $f" -ForegroundColor Yellow }
|
||||
if ($StrictLog -and $exitCode -eq 0) { $exitCode = 1 }
|
||||
if ($StrictLog) { $exitCode = 1 }
|
||||
}
|
||||
|
||||
# Расширение могло загрузиться «успешно» и при этом остаться неприменимым — спрашиваем платформу.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# db-load-xml v1.32 — Load 1C configuration from XML files
|
||||
# db-load-xml v1.33 — Load 1C configuration from XML files
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -962,14 +962,16 @@ def main():
|
||||
# Поток — stdout, как у PS1-порта: предупреждение относится к содержимому загрузки, а не к
|
||||
# отказу навыка, и при code 0 остаётся предупреждением. Раньше py писал его в stderr —
|
||||
# наблюдаемое поведение портов расходилось, и один кейс не мог проверить оба.
|
||||
if silent_failures:
|
||||
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
|
||||
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
|
||||
if exit_code == 0 and silent_failures:
|
||||
print(
|
||||
f"[warning] platform reported success, but the log contains "
|
||||
f"{len(silent_failures)} problem(s):"
|
||||
)
|
||||
for f in silent_failures:
|
||||
print(f" {f}")
|
||||
if args.StrictLog and exit_code == 0:
|
||||
if args.StrictLog:
|
||||
exit_code = 1
|
||||
|
||||
# Расширение могло загрузиться «успешно» и остаться неприменимым — спрашиваем платформу.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# db-update v1.22 — Update 1C database configuration
|
||||
# db-update v1.23 — Update 1C database configuration
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
# NB: *nix-раскладку платформы (/opt/1cv8/<ver>/1cv8, без .exe) знает только .py-порт — PS на *nix не исполняется.
|
||||
<#
|
||||
@@ -764,10 +764,12 @@ try {
|
||||
# разный — от отброшенного свойства до нерабочей на этой платформе конфигурации. Подсказку
|
||||
# про -StrictLog не даём: операция уже выполнена, повторять её ради того же текста незачем.
|
||||
$silentFailures = @(Find-SilentRejections $logContent)
|
||||
if ($silentFailures.Count -gt 0) {
|
||||
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
|
||||
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
|
||||
if ($exitCode -eq 0 -and $silentFailures.Count -gt 0) {
|
||||
Write-Host "[warning] platform reported success, but the log contains $($silentFailures.Count) problem(s):" -ForegroundColor Yellow
|
||||
foreach ($f in $silentFailures) { Write-Host " $f" -ForegroundColor Yellow }
|
||||
if ($StrictLog -and $exitCode -eq 0) { $exitCode = 1 }
|
||||
if ($StrictLog) { $exitCode = 1 }
|
||||
}
|
||||
|
||||
# Расширение могло загрузиться «успешно» и остаться неприменимым — спрашиваем платформу.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# db-update v1.22 — Update 1C database configuration
|
||||
# db-update v1.23 — Update 1C database configuration
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
|
||||
import argparse
|
||||
@@ -809,14 +809,16 @@ def main():
|
||||
# разный — от отброшенного свойства до нерабочей на этой платформе конфигурации. Подсказку
|
||||
# про -StrictLog не даём: операция уже выполнена, повторять её ради того же текста незачем.
|
||||
silent_failures = find_silent_rejections(log_content)
|
||||
if silent_failures:
|
||||
# Только при успехе: при провале лог уже выведен целиком, а блок повторял бы его строки
|
||||
# под заголовком «reported success» — неправдой рядом с «Error … (code: N)».
|
||||
if exit_code == 0 and silent_failures:
|
||||
print(
|
||||
f"[warning] platform reported success, but the log contains "
|
||||
f"{len(silent_failures)} problem(s):"
|
||||
)
|
||||
for line in silent_failures:
|
||||
print(f" {line}")
|
||||
if args.StrictLog and exit_code == 0:
|
||||
if args.StrictLog:
|
||||
exit_code = 1
|
||||
|
||||
# Расширение могло загрузиться «успешно» и остаться неприменимым — спрашиваем платформу.
|
||||
|
||||
@@ -0,0 +1,76 @@
|
||||
{
|
||||
"name": "Провал загрузки (код 1) со строкой-отказом в логе: лог выведен, блока «reported success» нет (fake platform)",
|
||||
"fakePlatform": {
|
||||
"log": "Загрузка конфигурации из файлов.\r\nНеверное свойство объекта метаданных. Свойство LineNumberLength не входит в состав объекта метаданных TabularSection. - LineNumberLength\r\n",
|
||||
"exit": 1
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "src/Configuration.xml",
|
||||
"content": "<MetaDataObject>\n\t<Configuration>\n\t\t<ChildObjects>\n\t\t\t<Catalog>Товары</Catalog>\n\t\t</ChildObjects>\n\t</Configuration>\n</MetaDataObject>\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "src/Catalogs/Товары.xml",
|
||||
"content": "<MetaDataObject>\n\t<Catalog>\n\t\t<ChildObjects/>\n\t</Catalog>\n</MetaDataObject>\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
"git": [
|
||||
"-C",
|
||||
"src",
|
||||
"init",
|
||||
"-q"
|
||||
]
|
||||
},
|
||||
{
|
||||
"git": [
|
||||
"-C",
|
||||
"src",
|
||||
"add",
|
||||
"-A"
|
||||
]
|
||||
},
|
||||
{
|
||||
"git": [
|
||||
"-C",
|
||||
"src",
|
||||
"commit",
|
||||
"-qm",
|
||||
"base"
|
||||
]
|
||||
},
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "src/Catalogs/Товары.xml",
|
||||
"content": "<MetaDataObject>\n\t<Catalog>\n\t\t<ChildObjects/>\n\t</Catalog>\n</MetaDataObject>\n<!-- изменение -->\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
"git": [
|
||||
"-C",
|
||||
"src",
|
||||
"add",
|
||||
"-A"
|
||||
]
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/src",
|
||||
"-Source",
|
||||
"Staged"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": "Свойство LineNumberLength не входит в состав объекта метаданных",
|
||||
"stdoutNotContains": "reported success"
|
||||
},
|
||||
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется вывод при провале платформы"
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Провал загрузки (код 1) со строкой-отказом в логе: лог выведен, блока «reported success» нет (fake platform)",
|
||||
"fakePlatform": {
|
||||
"log": "Загрузка конфигурации из файлов.\r\nНеверное свойство объекта метаданных. Свойство LineNumberLength не входит в состав объекта метаданных TabularSection. - LineNumberLength\r\n",
|
||||
"exit": 1
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "src/Configuration.xml",
|
||||
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<MetaDataObject/>"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/src"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": "Свойство LineNumberLength не входит в состав объекта метаданных",
|
||||
"stdoutNotContains": "reported success"
|
||||
},
|
||||
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется вывод при провале платформы"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"name": "Провал загрузки (код 1) со строкой-отказом в логе: лог выведен, блока «reported success» нет (fake platform)",
|
||||
"fakePlatform": {
|
||||
"log": "Загрузка конфигурации из файлов.\r\nНеверное свойство объекта метаданных. Свойство LineNumberLength не входит в состав объекта метаданных TabularSection. - LineNumberLength\r\n",
|
||||
"exit": 1
|
||||
},
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": "Свойство LineNumberLength не входит в состав объекта метаданных",
|
||||
"stdoutNotContains": "reported success"
|
||||
},
|
||||
"noSnapshot": "навык ничего не пишет в рабочий каталог — проверяется вывод при провале платформы"
|
||||
}
|
||||
Reference in New Issue
Block a user