gOdoo-cli 1.0.1__tar.gz → 1.0.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/PKG-INFO +1 -1
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docs/lifecycle.md +3 -3
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/__about__.py +1 -1
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/filestore.py +4 -1
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_filestore.py +14 -6
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.agents/skills/godoo-changeset-review/SKILL.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.agents/skills/godoo-editor-validation/SKILL.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.agents/skills/godoo-runtime-validation/SKILL.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.agents/skills/godoo-source-workspaces/SKILL.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.codecovrc +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.dockerignore +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.env.sample +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.github/FUNDING.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.github/workflows/README.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.github/workflows/quality.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.github/workflows/version-bump.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.github/workflows/version-publish.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.gitignore +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.pre-commit-config.yaml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.prettierrc.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.vscode/extensions.json +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.vscode/settings.json +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/.vscode/tasks.json +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/AGENTS.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/LICENSE +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/README.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/.gitkeep +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/godoo_test_succ_mod/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/godoo_test_succ_mod/__manifest__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/godoo_test_succ_mod/models/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/godoo_test_succ_mod/tests/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/godoo_test_succ_mod/tests/data.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/addons/godoo_test_succ_mod/tests/test_succ.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/assets/odoo_logo.png +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/config/nginx.conf.template +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/config/postgresql.conf +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docker/Dockerfile +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docker/docker-compose.base.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docker/docker-compose.dev.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docker/docker-compose.traefik.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docker/postgres-init/10-vector.sql +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docs/architecture.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docs/downstream.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docs/hooks.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/docs/workspace.md +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/makefile +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/odoo_manifest.yml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/package-lock.json +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/package.json +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/pyproject.toml +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/scripts/check_docstring_style.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/scripts/migrations/development/shrink_database.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/__main__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/common.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/configuration.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/db/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/db/archive.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/db/cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/db/passwords.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/db/query.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/db/reset.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/odoo_bin/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/root.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/rpc/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/rpc/cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/rpc/config_parameters.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/rpc/importer.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/rpc/modules.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/rpc/translations.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/run.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/dependencies.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/init.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/launch.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/shell.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/shell_scripts/odoo_banner.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/shell_scripts/render_report.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/status.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/test/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/test/cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/test/load_data.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/test/run.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/upgrade.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/workspace/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/workspace/common.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/workspace/configure.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/workspace/image.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/workspace/storage.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/workspace/sync.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/database/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/database/connection.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/database/postgres.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/database/settings.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/database/state.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/git/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/git/git_url.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/git/repository.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/helpers/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/helpers/hashing.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/helpers/modules_git.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/helpers/progress.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/helpers/system.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/models/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/models/godoo_git_repo.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/models/godoo_manifest.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/models/godoo_models.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/models/godoo_modules.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/archive.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/baseline.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/dataset.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/hooks.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/lifecycle.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/locks.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/nginx.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/odoo.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/promotion.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/reset.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/restore.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/runtime/status.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/editor.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/git.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/image.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/manifest.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/operations.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/specifications.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/storage.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/workspace/types.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/__init__.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_db_archive_cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_db_query_cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_odoo_bin_commands.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_rpc_commands.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_runtime_cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_runtime_dependencies.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_runtime_shell_scripts.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_test_run.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/commands/test_upgrade.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/conftest.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/database/test_db_query.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/database/test_db_reset.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/database/test_db_restore.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/git/test_git_url_uri.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/integration/test_container_contract.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/integration/test_odoo_integration.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_archive_crc.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_baseline_recovery.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_database_copy.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_dataset.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_filestore_copy.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_hooks.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_init_hooks.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_init_policy.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_lifecycle.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_lifecycle_service.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_nginx.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_nginx_cli.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_odoo_config_generation.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_odoo_preflight.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_odoo_version_compatibility.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_report_url.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_reset_baseline.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_runtime_models.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_runtime_operations.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/runtime/test_runtime_source_environment.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/test_logging.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_godoo_manifest.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_workspace.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_workspace_git.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_workspace_image.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_workspace_layout.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_workspace_runtime_env.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/tests/workspace/test_workspace_storage.py +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/thirdparty/.gitkeep +0 -0
- {godoo_cli-1.0.1 → godoo_cli-1.0.2}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: gOdoo-cli
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.2
|
|
4
4
|
Summary: Odoo lifecycle, Python dependency preflight, and shared Git workspaces.
|
|
5
5
|
Project-URL: repository, https://github.com/OpenJKSoftware/gOdoo
|
|
6
6
|
Author-email: Joshua Kreuder <Joshua_Kreuder@outlook.com>
|
|
@@ -112,9 +112,9 @@ filestore, SQL and archive overlays are staged once and reused. Disabling the fu
|
|
|
112
112
|
checks. CRC checks detect accidental corruption; they do not establish the archive's origin.
|
|
113
113
|
|
|
114
114
|
On Linux, gOdoo probes one nonempty file before recursive reflink copying, then falls back to rsync or Python copying.
|
|
115
|
-
|
|
116
|
-
[dataset storage](downstream.md#restore-dataset-storage). Reset
|
|
117
|
-
may count shared data more than once.
|
|
115
|
+
Rsync shows progress only when stdout is a terminal; diagnostics remain visible in captured output. Desktop bind mounts
|
|
116
|
+
can make many small attachment copies expensive; see [dataset storage](downstream.md#restore-dataset-storage). Reset
|
|
117
|
+
baselines can share reflink extents, so logical sizes may count shared data more than once.
|
|
118
118
|
|
|
119
119
|
The official upgrade client reports phase start and completion or failure without a heartbeat. Child processes retain
|
|
120
120
|
their native streams. gOdoo forwards SIGINT/SIGTERM, waits for shutdown, and preserves child exit status.
|
|
@@ -85,7 +85,10 @@ def _copy_with_rsync(source: Path, destination: Path) -> tuple[bool, str | None]
|
|
|
85
85
|
if not shutil.which("rsync"):
|
|
86
86
|
return False, "rsync is not available"
|
|
87
87
|
|
|
88
|
-
command = ["rsync", "-rLpt", "--human-readable"
|
|
88
|
+
command = ["rsync", "-rLpt", "--human-readable"]
|
|
89
|
+
if sys.stdout.isatty():
|
|
90
|
+
command.append("--info=progress2")
|
|
91
|
+
command.extend([f"{source}/", str(destination)])
|
|
89
92
|
try:
|
|
90
93
|
process = subprocess.Popen(command, stdout=None, stderr=subprocess.STDOUT)
|
|
91
94
|
except OSError as error:
|
|
@@ -235,14 +235,17 @@ def _fake_rsync(tmp_path: Path, monkeypatch: pytest.MonkeyPatch, *, status: int)
|
|
|
235
235
|
rsync.write_text(
|
|
236
236
|
"#!/bin/sh\n"
|
|
237
237
|
'printf \'%s\\n\' "$@" > "$GODOO_RSYNC_ARGS"\n'
|
|
238
|
-
"
|
|
238
|
+
'if [ "$3" = "--info=progress2" ]; then\n'
|
|
239
|
+
" printf '12%%\\rdiagnostic one\\n34%%\\rdiagnostic two\\n56%%\\r78%%\\n'\n"
|
|
240
|
+
" shift\n"
|
|
241
|
+
"fi\n"
|
|
239
242
|
"printf 'rsync diagnostic\\n' >&2\n"
|
|
240
243
|
f"if [ {status} -ne 0 ]; then\n"
|
|
241
|
-
' mkdir -p "$
|
|
242
|
-
' printf stale > "$
|
|
244
|
+
' mkdir -p "$4"\n'
|
|
245
|
+
' printf stale > "$4/stale"\n'
|
|
243
246
|
f" exit {status}\n"
|
|
244
247
|
"fi\n"
|
|
245
|
-
'cp -RL "$
|
|
248
|
+
'cp -RL "$3/." "$4"\n'
|
|
246
249
|
f"exit {status}\n",
|
|
247
250
|
encoding="utf-8",
|
|
248
251
|
)
|
|
@@ -252,12 +255,16 @@ def _fake_rsync(tmp_path: Path, monkeypatch: pytest.MonkeyPatch, *, status: int)
|
|
|
252
255
|
return rsync
|
|
253
256
|
|
|
254
257
|
|
|
258
|
+
@pytest.mark.parametrize("interactive", [False, True])
|
|
255
259
|
def test_rsync_copy_passes_output_directly_to_stdout_and_materializes_symlinks(
|
|
256
260
|
tmp_path: Path,
|
|
257
261
|
monkeypatch: pytest.MonkeyPatch,
|
|
258
262
|
caplog: pytest.LogCaptureFixture,
|
|
259
263
|
capfdbinary: pytest.CaptureFixture[bytes],
|
|
264
|
+
interactive: bool,
|
|
260
265
|
) -> None:
|
|
266
|
+
monkeypatch.setattr("godoo_cli.runtime.filestore.sys.stdout.isatty", lambda: interactive)
|
|
267
|
+
monkeypatch.setattr("godoo_cli.runtime.filestore.sys.stderr.isatty", lambda: not interactive)
|
|
261
268
|
source = tmp_path / "source"
|
|
262
269
|
source.mkdir()
|
|
263
270
|
(source / "kept").write_text("original")
|
|
@@ -277,13 +284,14 @@ def test_rsync_copy_passes_output_directly_to_stdout_and_materializes_symlinks(
|
|
|
277
284
|
assert (tmp_path / "rsync-args").read_text().splitlines() == [
|
|
278
285
|
"-rLpt",
|
|
279
286
|
"--human-readable",
|
|
280
|
-
"--info=progress2",
|
|
287
|
+
*(["--info=progress2"] if interactive else []),
|
|
281
288
|
f"{source}/",
|
|
282
289
|
str(destination),
|
|
283
290
|
]
|
|
284
291
|
assert "-a" not in (tmp_path / "rsync-args").read_text().splitlines()
|
|
285
292
|
captured = capfdbinary.readouterr()
|
|
286
|
-
|
|
293
|
+
progress = b"12%\rdiagnostic one\n34%\rdiagnostic two\n56%\r78%\n" if interactive else b""
|
|
294
|
+
assert captured.out == progress + b"rsync diagnostic\n"
|
|
287
295
|
assert captured.err == b""
|
|
288
296
|
assert not caplog.records
|
|
289
297
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/shell_scripts/odoo_banner.py
RENAMED
|
File without changes
|
{godoo_cli-1.0.1 → godoo_cli-1.0.2}/src/godoo_cli/commands/runtime/shell_scripts/render_report.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|