mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
test: initial tests for notmuch-git
Exercise the main functionality of notmuch-git. add_git_repos() will hopefully be simplifed when an init subcommand is added.
This commit is contained in:
parent
14ac68ae11
commit
a85c82f99a
2 changed files with 97 additions and 0 deletions
|
@ -836,6 +836,10 @@ if __name__ == '__main__':
|
||||||
level = getattr(_logging, args.log_level.upper())
|
level = getattr(_logging, args.log_level.upper())
|
||||||
_LOG.setLevel(level)
|
_LOG.setLevel(level)
|
||||||
|
|
||||||
|
# for test suite
|
||||||
|
for var in ['NMBGIT', 'NMBPREFIX', 'NOTMUCH_PROFILE', 'NOTMUCH_CONFIG' ]:
|
||||||
|
_LOG.debug('env {:s} = {:s}'.format(var, _os.getenv(var,'%None%')))
|
||||||
|
|
||||||
if not getattr(args, 'func', None):
|
if not getattr(args, 'func', None):
|
||||||
parser.print_usage()
|
parser.print_usage()
|
||||||
_sys.exit(1)
|
_sys.exit(1)
|
||||||
|
|
93
test/T850-git.sh
Executable file
93
test/T850-git.sh
Executable file
|
@ -0,0 +1,93 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
test_description='"notmuch git" to save and restore tags'
|
||||||
|
. $(dirname "$0")/test-lib.sh || exit 1
|
||||||
|
|
||||||
|
add_email_corpus
|
||||||
|
|
||||||
|
git config --global user.email notmuch@example.org
|
||||||
|
git config --global user.name "Notmuch Test Suite"
|
||||||
|
|
||||||
|
test_begin_subtest "init"
|
||||||
|
test_expect_success "notmuch git -p '' -C remote.git init"
|
||||||
|
|
||||||
|
test_begin_subtest "clone"
|
||||||
|
test_expect_success "notmuch git -p '' -C tags.git clone remote.git"
|
||||||
|
|
||||||
|
test_begin_subtest "commit"
|
||||||
|
notmuch git -C tags.git -p '' commit
|
||||||
|
git -C tags.git ls-tree -r --name-only HEAD | xargs dirname | sort -u | sed s,tags/,id:, > OUTPUT
|
||||||
|
notmuch search --output=messages '*' | sort > EXPECTED
|
||||||
|
test_expect_equal_file_nonempty EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "checkout"
|
||||||
|
notmuch dump > BEFORE
|
||||||
|
notmuch tag -inbox '*'
|
||||||
|
notmuch git -C tags.git -p '' checkout
|
||||||
|
notmuch dump > AFTER
|
||||||
|
test_expect_equal_file_nonempty BEFORE AFTER
|
||||||
|
|
||||||
|
test_begin_subtest "archive"
|
||||||
|
notmuch git -C tags.git -p '' archive | tar tf - | \
|
||||||
|
grep 20091117190054.GU3165@dottiness.seas.harvard.edu | sort > OUTPUT
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
tags/20091117190054.GU3165@dottiness.seas.harvard.edu/
|
||||||
|
tags/20091117190054.GU3165@dottiness.seas.harvard.edu/inbox
|
||||||
|
tags/20091117190054.GU3165@dottiness.seas.harvard.edu/signed
|
||||||
|
tags/20091117190054.GU3165@dottiness.seas.harvard.edu/unread
|
||||||
|
EOF
|
||||||
|
notmuch git -C tags.git -p '' checkout
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "status"
|
||||||
|
notmuch tag +test id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
notmuch git -C tags.git -p '' status > OUTPUT
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
A 20091117190054.GU3165@dottiness.seas.harvard.edu test
|
||||||
|
EOF
|
||||||
|
notmuch git -C tags.git -p '' checkout
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "fetch"
|
||||||
|
notmuch tag +test2 id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
notmuch git -C remote.git -p '' commit
|
||||||
|
notmuch tag -test2 id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
notmuch git -C tags.git -p '' fetch
|
||||||
|
notmuch git -C tags.git -p '' status > OUTPUT
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
a 20091117190054.GU3165@dottiness.seas.harvard.edu test2
|
||||||
|
EOF
|
||||||
|
notmuch git -C tags.git -p '' checkout
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "merge"
|
||||||
|
notmuch git -C tags.git -p '' merge
|
||||||
|
notmuch dump id:20091117190054.GU3165@dottiness.seas.harvard.edu | grep -v '^#' > OUTPUT
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
+inbox +signed +test2 +unread -- id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "push"
|
||||||
|
notmuch tag +test3 id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
notmuch git -C tags.git -p '' commit
|
||||||
|
notmuch tag -test3 id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
notmuch git -C tags.git -p '' push
|
||||||
|
notmuch git -C remote.git -p '' checkout
|
||||||
|
notmuch dump id:20091117190054.GU3165@dottiness.seas.harvard.edu | grep -v '^#' > OUTPUT
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
+inbox +signed +test2 +test3 +unread -- id:20091117190054.GU3165@dottiness.seas.harvard.edu
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_begin_subtest "environment passed through when run as 'notmuch git'"
|
||||||
|
env NMBGIT=foo NMBPREFIX=bar NOTMUCH_PROFILE=default notmuch git -C tags.git -p '' -ldebug status |& \
|
||||||
|
grep '^env ' | notmuch_dir_sanitize > OUTPUT
|
||||||
|
cat <<EOF > EXPECTED
|
||||||
|
env NMBGIT = foo
|
||||||
|
env NMBPREFIX = bar
|
||||||
|
env NOTMUCH_PROFILE = default
|
||||||
|
env NOTMUCH_CONFIG = CWD/notmuch-config
|
||||||
|
EOF
|
||||||
|
test_expect_equal_file EXPECTED OUTPUT
|
||||||
|
|
||||||
|
test_done
|
Loading…
Reference in a new issue