diff --git a/commands/init_test.go b/commands/init_test.go deleted file mode 100644 index 17e2e670..00000000 --- a/commands/init_test.go +++ /dev/null @@ -1,64 +0,0 @@ -package commands - -import ( - "io/ioutil" - "os" - "path/filepath" - "strings" - "testing" - - "github.com/bmizerany/assert" -) - -func TestInit(t *testing.T) { - repo := NewRepository(t, "empty") - defer repo.Test() - - repo.AddPath(repo.Path, ".git") - repo.AddPath(repo.Path, "subdir") - - cmd := repo.Command("init") - cmd.Output = "git lfs initialized" - - prePushHookFile := filepath.Join(repo.Path, ".git", "hooks", "pre-push") - - cmd.Before(func() { - err := os.RemoveAll(filepath.Join(repo.Path, ".git", "hooks")) - assert.Equal(t, nil, err) - }) - - cmd.After(func() { - // assert filter config - configs := GlobalGitConfig(t) - AssertIncludeString(t, "filter.lfs.clean=git lfs clean %f", configs) - AssertIncludeString(t, "filter.lfs.smudge=git lfs smudge %f", configs) - AssertIncludeString(t, "filter.lfs.required=true", configs) - found := 0 - for _, line := range configs { - if strings.HasPrefix(line, "filter.lfs") { - found += 1 - } - } - assert.Equal(t, 3, found) - - // assert hooks - stat, err := os.Stat(prePushHookFile) - assert.Equal(t, nil, err) - assert.Equal(t, false, stat.IsDir()) - }) - - cmd = repo.Command("init") - cmd.Output = "Hook already exists: pre-push\n\necho 'yo'\n\ngit lfs initialized" - - customHook := []byte("echo 'yo'") - cmd.Before(func() { - err := ioutil.WriteFile(prePushHookFile, customHook, 0755) - assert.Equal(t, nil, err) - }) - - cmd.After(func() { - by, err := ioutil.ReadFile(prePushHookFile) - assert.Equal(t, nil, err) - assert.Equal(t, string(customHook), string(by)) - }) -} diff --git a/test/test-pointer.sh b/test/test-pointer.sh new file mode 100755 index 00000000..11446dbb --- /dev/null +++ b/test/test-pointer.sh @@ -0,0 +1,264 @@ +#!/bin/sh + +. "test/testlib.sh" + + +begin_test "pointer --file --stdin" +( + set -e + + echo "simple" > some-file + + input="version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" + + expected="Git LFS pointer for some-file + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7 + +Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee + +Pointer from STDIN + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7 + +Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee" + + [ "$expected" == "$(echo "$input" | git lfs pointer --file=some-file --stdin 2>&1)" ] +) +end_test + +begin_test "pointer --file --stdin mismatch" +( + set -e + + echo "simple" > some-file + + input="version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 123" + + set +e + output=$(echo "$input" | git lfs pointer --file=some-file --stdin 2>&1) + status=$? + set -e + + [ "1" == "$status" ] + + expected="Git LFS pointer for some-file + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7 + +Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee + +Pointer from STDIN + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 123 + +Git blob OID: 905bcc24b5dc074ab870f9944178e398eec3b470 + +Pointers do not match" + + [ "$expected" == "$output" ] +) +end_test + +begin_test "pointer --stdin" +( + set -e + + echo "version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" > valid-pointer + + output=$(cat valid-pointer | git lfs pointer --stdin 2>&1) + expected="Pointer from STDIN + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" + + [ "$expected" == "$output" ] +) +end_test + +begin_test "pointer --stdin without stdin" +( + output=$(git lfs pointer --stdin 2>&1) + status=$? + + set -e + + expected="Cannot read from STDIN. The --stdin flag expects a pointer file from STDIN." + + [ "$expected" == "$output" ] + + [ "1" == "$status" ] +) + +begin_test "pointer --stdin with bad pointer" +( + output=$(echo "not a pointer" | git lfs pointer --stdin 2>&1) + status=$? + + set -e + + expected="Pointer from STDIN + +Not a valid Git LFS pointer file." + + [ "$expected" == "$output" ] + + [ "1" == "$status" ] +) + +begin_test "pointer --file --pointer mismatch" +( + set -e + echo "simple" > some-file + echo "version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 123" > invalid-pointer + + expected="Git LFS pointer for some-file + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7 + +Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee + +Pointer from invalid-pointer + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 123 + +Git blob OID: 905bcc24b5dc074ab870f9944178e398eec3b470 + +Pointers do not match" + + set +e + output=$(git lfs pointer --file=some-file --pointer=invalid-pointer 2>&1) + status=$? + set -e + + [ "1" == "$status" ] + + [ "$expected" == "$output" ] +) +end_test + +begin_test "pointer --file --pointer" +( + set -e + echo "simple" > some-file + echo "version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" > valid-pointer + + expected="Git LFS pointer for some-file + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7 + +Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee + +Pointer from valid-pointer + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7 + +Git blob OID: e18acd45d7e3ce0451d1d637f9697aa508e07dee" + + + [ "$expected" == "$(git lfs pointer --file=some-file --pointer=valid-pointer 2>&1)" ] +) +end_test + +begin_test "pointer --pointer" +( + set -e + + echo "version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" > valid-pointer + + expected="Pointer from valid-pointer + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" + + [ "$expected" == "$(git lfs pointer --pointer=valid-pointer 2>&1)" ] +) +end_test + +begin_test "pointer missing --pointer" +( + output=$(git lfs pointer --pointer=missing-pointer 2>&1) + status=$? + set -e + + [ "1" == "$status" ] + [ "open missing-pointer: no such file or directory" == "$output" ] +) +end_test + +begin_test "pointer invalid --pointer" +( + set -e + + echo "not a pointer" > some-pointer + + set +e + output=$(git lfs pointer --pointer=some-pointer 2>&1) + status=$? + set -e + + [ "1" == "$status" ] + + expected="Pointer from some-pointer + +Not a valid Git LFS pointer file." + + [ "$expected" == "$output" ] +) +end_test + +begin_test "pointer --file" +( + set -e + echo "simple" > some-file + + expected="Git LFS pointer for some-file + +version https://git-lfs.github.com/spec/v1 +oid sha256:6c17f2007cbe934aee6e309b28b2dba3c119c5dff2ef813ed124699efe319868 +size 7" + + [ "$expected" == "$(git lfs pointer --file=some-file 2>&1)" ] +) +end_test + +begin_test "pointer without args" +( + output=$(git lfs pointer 2>&1) + status=$? + set -e + + [ "Nothing to do!" == "$output" ] + [ "1" == "$status" ] +) +end_test