From ebb1be084f50daf5ff6d5ede5560957b25d740f6 Mon Sep 17 00:00:00 2001 From: Johannes Kirschbauer Date: Wed, 16 Apr 2025 21:49:09 +0200 Subject: [PATCH] test(cli/select): add simple caching test --- .../clan_cli/tests/test_flake_caching.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/pkgs/clan-cli/clan_cli/tests/test_flake_caching.py b/pkgs/clan-cli/clan_cli/tests/test_flake_caching.py index d31a49dca..79b323282 100644 --- a/pkgs/clan-cli/clan_cli/tests/test_flake_caching.py +++ b/pkgs/clan-cli/clan_cli/tests/test_flake_caching.py @@ -96,6 +96,25 @@ def test_conditional_all_selector(flake: ClanFlake) -> None: flake2.prefetch() +# Test that the caching works +@pytest.mark.with_core +def test_caching_works(flake: ClanFlake) -> None: + from unittest.mock import patch + + from clan_cli.flake import Flake + + my_flake = Flake(str(flake.path)) + + with patch.object( + my_flake, "get_from_nix", wraps=my_flake.get_from_nix + ) as tracked_build: + assert tracked_build.call_count == 0 + my_flake.select("clanInternals.inventory.meta") + assert tracked_build.call_count == 1 + my_flake.select("clanInternals.inventory.meta") + assert tracked_build.call_count == 1 + + # This test fails because the CI sandbox does not have the required packages to run the generators # maybe @DavHau or @Qubasa can fix this at some point :) # @pytest.mark.with_core