From ceac6023257c5ac8e1474d935c900f59a18467b9 Mon Sep 17 00:00:00 2001 From: Sven van Heugten Date: Thu, 5 Mar 2026 19:50:57 +0100 Subject: [PATCH] Rewrite the tests to use a real diff --- default.nix | 2 ++ flake.nix | 1 + test/mechanicaldiff.bats | 41 +++++++++++----------------------------- 3 files changed, 14 insertions(+), 30 deletions(-) diff --git a/default.nix b/default.nix index b5f2646..05e31a2 100644 --- a/default.nix +++ b/default.nix @@ -2,6 +2,7 @@ stdenv, lib, bats, + gitMinimal, python3, python3Packages, shellcheck-minimal, @@ -38,6 +39,7 @@ stdenv.mkDerivation { p.bats-support p.bats-file ])) + gitMinimal python3Packages.flake8 shellcheck-minimal shfmt diff --git a/flake.nix b/flake.nix index e386431..814e62e 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,7 @@ p.bats-support p.bats-file ])) + pkgs.gitMinimal pkgs.python3 pkgs.python3Packages.flake8 pkgs.shellcheck diff --git a/test/mechanicaldiff.bats b/test/mechanicaldiff.bats index c415c7d..8f26fa4 100755 --- a/test/mechanicaldiff.bats +++ b/test/mechanicaldiff.bats @@ -11,40 +11,21 @@ setup() { } @test "keeps hunk when replacement matches" { - run bash -c 'cat <<"EOF" | mechanicaldiff.py foo bar -diff --git a/file.txt b/file.txt -index 1111111..2222222 100644 ---- a/file.txt -+++ b/file.txt -@@ -1,1 +1,1 @@ --foo -+bar -EOF' + printf "%s\n" "foo" >"$BATS_TEST_TMPDIR/old" + printf "%s\n" "bar" >"$BATS_TEST_TMPDIR/new" + diff_output="$(git diff --no-index "$BATS_TEST_TMPDIR/old" \ + "$BATS_TEST_TMPDIR/new" || true)" + run mechanicaldiff.py foo bar <<<"$diff_output" assert_success - expected="$( - cat <<'EOF' -diff --git a/file.txt b/file.txt -index 1111111..2222222 100644 ---- a/file.txt -+++ b/file.txt -@@ -1,1 +1,1 @@ --foo -+bar -EOF - )" - assert_output "$expected" + assert_output "$diff_output" } @test "drops diff when replacement does not match" { - run bash -c 'cat <<"EOF" | mechanicaldiff.py foo bar -diff --git a/file.txt b/file.txt -index 1111111..2222222 100644 ---- a/file.txt -+++ b/file.txt -@@ -1,1 +1,1 @@ --foo -+baz -EOF' + printf "%s\n" "foo" >"$BATS_TEST_TMPDIR/old" + printf "%s\n" "baz" >"$BATS_TEST_TMPDIR/new" + git diff --no-index "$BATS_TEST_TMPDIR/old" "$BATS_TEST_TMPDIR/new" \ + >"$BATS_TEST_TMPDIR/diff" || true + run mechanicaldiff.py foo bar <"$BATS_TEST_TMPDIR/diff" assert_success assert_output "" }