mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-09-26 03:55:55 +03:00
fix(db-dump-xml): Changes без тихой полной перевыгрузки, инкремент в ibcmd
- -update без -force: при другой версии формата — отказ с подсказкой про -Mode Full, а не молчаливая перезапись всего дерева в новом формате. - Первая выгрузка режимом по умолчанию: в каталог без выгрузки (пусто, только .git/README) — полностью; выгрузка без ConfigDumpInfo.xml — ошибка. - ibcmd: Changes через --sync; Full в непустой каталог — через временный каталог и копирование поверх, как пишет конфигуратор; ошибка копирования даёт код 1. UpdateInfo с -AllExtensions отвергается, а не выгружает всё. - py-порт печатает вывод ibcmd, как PS. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ANXwbMUhuRFSCsq2RgmTTm
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
ce7238792e
commit
f98e7e9e81
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "Changes в пустой каталог: первая выгрузка выполняется полностью",
|
||||
"fakePlatform": {
|
||||
"log": ""
|
||||
},
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/out"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": [
|
||||
"[note] выгрузки в каталоге ещё нет — первая выгрузка выполняется полностью",
|
||||
"Executing full configuration dump..."
|
||||
],
|
||||
"stdoutNotContains": "-update"
|
||||
},
|
||||
"noSnapshot": "проверяется, какие ключи ушли платформе; фейк файлов не выгружает, поэтому постусловие навыка справедливо даёт отказ"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Changes в каталог без выгрузки (только служебные файлы репозитория): первая выгрузка полная",
|
||||
"fakePlatform": {
|
||||
"log": ""
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "out/.gitignore",
|
||||
"content": "*.log\n"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/out",
|
||||
"-Mode",
|
||||
"Changes"
|
||||
],
|
||||
"expect": {
|
||||
"stdoutContains": [
|
||||
"[note] выгрузки в каталоге ещё нет — первая выгрузка выполняется полностью",
|
||||
"Executing full configuration dump..."
|
||||
],
|
||||
"stdoutNotContains": "-update"
|
||||
},
|
||||
"noSnapshot": "проверяется командная строка платформы; каталог выгрузки — фикстура кейса"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Changes по прошлой выгрузке: -update без -force",
|
||||
"fakePlatform": {
|
||||
"log": ""
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "out/ConfigDumpInfo.xml",
|
||||
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ConfigDumpInfo format=\"Hierarchical\" version=\"2.17\"/>"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/out",
|
||||
"-Mode",
|
||||
"Changes"
|
||||
],
|
||||
"expect": {
|
||||
"stdoutContains": [
|
||||
"Executing incremental configuration dump...",
|
||||
"-update"
|
||||
],
|
||||
"stdoutNotContains": "-force"
|
||||
},
|
||||
"noSnapshot": "проверяется командная строка платформы; каталог выгрузки — фикстура кейса"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Ошибка: Changes в непустой каталог без ConfigDumpInfo.xml",
|
||||
"fakePlatform": {
|
||||
"log": ""
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "out/Configuration.xml",
|
||||
"content": "<?xml version=\"1.0\"?><MetaDataObject/>"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/out",
|
||||
"-Mode",
|
||||
"Changes"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": [
|
||||
"no ConfigDumpInfo.xml",
|
||||
"-Mode Full выгрузит конфигурацию целиком поверх каталога."
|
||||
],
|
||||
"stdoutNotContains": "Running:"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
{
|
||||
"name": "Ошибка: ibcmd не умеет UpdateInfo — и с -AllExtensions не подменяет его полной выгрузкой (fake platform)",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "ibcmd.cmd",
|
||||
"content": "@echo off\r\necho ARGS: %*\r\nexit /b 0\r\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "ib/1Cv8.1CD",
|
||||
"content": "stub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "out/РасшА/ConfigDumpInfo.xml",
|
||||
"content": "<ConfigDumpInfo/>"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{workDir}\\ibcmd.cmd",
|
||||
"-InfoBasePath",
|
||||
"{workDir}\\ib",
|
||||
"-UserName",
|
||||
"Admin",
|
||||
"-ConfigDir",
|
||||
"{workDir}\\out",
|
||||
"-Mode",
|
||||
"UpdateInfo",
|
||||
"-AllExtensions"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": "ibcmd config export does not support Mode UpdateInfo",
|
||||
"stdoutNotContains": "ARGS:"
|
||||
},
|
||||
"osOnly": "win32"
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "Отказ инкремента из-за версии формата: подсказка про полную перевыгрузку",
|
||||
"fakePlatform": {
|
||||
"log": "\ufeffОбновление XML выгрузки невозможно: версия формата платформы отличается от версии формата выгрузки.\r\nДля синхронизации необходимо выполнить полную выгрузку.\r\n",
|
||||
"exit": 101
|
||||
},
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "out/ConfigDumpInfo.xml",
|
||||
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ConfigDumpInfo format=\"Hierarchical\" version=\"2.16\"/>"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{fakePlatform}",
|
||||
"-InfoBasePath",
|
||||
"{workDir}/ib",
|
||||
"-ConfigDir",
|
||||
"{workDir}/out",
|
||||
"-Mode",
|
||||
"Changes"
|
||||
],
|
||||
"expectError": true,
|
||||
"expect": {
|
||||
"stdoutContains": [
|
||||
"Error dumping configuration (code: 101)",
|
||||
"[подсказка] Каталог выгружен в другой версии формата."
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"name": "ibcmd: Changes — инкремент через --sync, без --force (fake platform)",
|
||||
"preRun": [
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "ibcmd.cmd",
|
||||
"content": "@echo off\r\necho ARGS: %*\r\nexit /b 0\r\n"
|
||||
}
|
||||
},
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "ib/1Cv8.1CD",
|
||||
"content": "stub"
|
||||
}
|
||||
},
|
||||
{
|
||||
"writeFile": {
|
||||
"path": "out/ConfigDumpInfo.xml",
|
||||
"content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?><ConfigDumpInfo format=\"Hierarchical\" version=\"2.17\"/>"
|
||||
}
|
||||
}
|
||||
],
|
||||
"args_extra": [
|
||||
"-V8Path",
|
||||
"{workDir}\\ibcmd.cmd",
|
||||
"-InfoBasePath",
|
||||
"{workDir}\\ib",
|
||||
"-UserName",
|
||||
"Admin",
|
||||
"-ConfigDir",
|
||||
"{workDir}\\out",
|
||||
"-Mode",
|
||||
"Changes"
|
||||
],
|
||||
"expect": {
|
||||
"stdoutContains": [
|
||||
"ARGS: infobase config export",
|
||||
"--sync"
|
||||
],
|
||||
"stdoutNotContains": "--force"
|
||||
},
|
||||
"noSnapshot": "проверяется командная строка в stdout; каталог выгрузки — фикстура кейса",
|
||||
"osOnly": "win32"
|
||||
}
|
||||
Reference in New Issue
Block a user