Add Nix configuration defaults and new shallow-clone integration test
- Enable 'nix-command' and 'flakes' globally via flake.nix nixConfig - Improve .gitignore by excluding *.log files - Add integration test for shallow clone mode using pkgmgr install pipeline - Ensures pkgmgr works end-to-end inside test container with --clone-mode shallow See: https://chatgpt.com/share/69332bc4-a128-800f-a69c-fdc24c4cc7fe
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -27,4 +27,7 @@ build/
|
|||||||
Thumbs.db
|
Thumbs.db
|
||||||
|
|
||||||
# Nix Cache to speed up tests
|
# Nix Cache to speed up tests
|
||||||
.nix/
|
.nix/
|
||||||
|
|
||||||
|
# Ignore logs
|
||||||
|
*.log
|
||||||
@@ -1,6 +1,10 @@
|
|||||||
{
|
{
|
||||||
description = "Nix flake for Kevin's package-manager tool";
|
description = "Nix flake for Kevin's package-manager tool";
|
||||||
|
|
||||||
|
nixConfig = {
|
||||||
|
extra-experimental-features = [ "nix-command" "flakes" ];
|
||||||
|
};
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
};
|
};
|
||||||
|
|||||||
46
tests/integration/test_integration_install_pkgmgr_shallow.py
Normal file
46
tests/integration/test_integration_install_pkgmgr_shallow.py
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
"""
|
||||||
|
Integration test: install all configured repositories using
|
||||||
|
--clone-mode shallow (HTTPS shallow clone) and --no-verification.
|
||||||
|
|
||||||
|
This test is intended to be run inside the Docker container where:
|
||||||
|
- network access is available,
|
||||||
|
- the config/config.yaml is present,
|
||||||
|
- and it is safe to perform real git operations.
|
||||||
|
|
||||||
|
It passes if the command completes without raising an exception.
|
||||||
|
"""
|
||||||
|
|
||||||
|
import runpy
|
||||||
|
import sys
|
||||||
|
import unittest
|
||||||
|
|
||||||
|
|
||||||
|
class TestIntegrationInstallAllShallow(unittest.TestCase):
|
||||||
|
def test_install_all_repositories_shallow(self):
|
||||||
|
"""
|
||||||
|
Run: pkgmgr install --all --clone-mode shallow --no-verification
|
||||||
|
|
||||||
|
This will perform real installations/clones inside the container.
|
||||||
|
The test succeeds if no exception is raised.
|
||||||
|
"""
|
||||||
|
original_argv = sys.argv
|
||||||
|
try:
|
||||||
|
sys.argv = [
|
||||||
|
"pkgmgr",
|
||||||
|
"install",
|
||||||
|
"pkgmgr",
|
||||||
|
"--clone-mode",
|
||||||
|
"shallow",
|
||||||
|
"--no-verification",
|
||||||
|
]
|
||||||
|
|
||||||
|
# Execute main.py as if it was called from CLI.
|
||||||
|
# This will run the full install pipeline inside the container.
|
||||||
|
runpy.run_module("main", run_name="__main__")
|
||||||
|
|
||||||
|
finally:
|
||||||
|
sys.argv = original_argv
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
unittest.main()
|
||||||
Reference in New Issue
Block a user