mirror of
https://git.notmuchmail.org/git/notmuch
synced 2025-01-08 17:51:42 +01:00
a77d9adcac
Modify command line argument handling to take a --accumulate flag. Test for extra arguments beyond the input file. The --accumulate switch causes the union of the existing and new tags to be applied, instead of replacing each message's tags as they are read in from the dump file. Based on a patch by Thomas Schwinge: id:"1317317857-29636-1-git-send-email-thomas@schwinge.name"
86 lines
2.9 KiB
Bash
Executable file
86 lines
2.9 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
test_description="\"notmuch dump\" and \"notmuch restore\""
|
|
. ./test-lib.sh
|
|
|
|
add_email_corpus
|
|
|
|
test_expect_success 'Dumping all tags' \
|
|
'generate_message &&
|
|
notmuch new &&
|
|
notmuch dump > dump.expected'
|
|
|
|
# The use of from:cworth is rather arbitrary: it matches some of the
|
|
# email corpus' messages, but not all of them.
|
|
|
|
test_expect_success 'Dumping all tags II' \
|
|
'notmuch tag +ABC +DEF -- from:cworth &&
|
|
notmuch dump > dump-ABC_DEF.expected &&
|
|
! cmp dump.expected dump-ABC_DEF.expected'
|
|
|
|
test_expect_success 'Clearing all tags' \
|
|
'sed -e "s/(\([^(]*\))$/()/" < dump.expected > clear.expected &&
|
|
notmuch restore clear.expected &&
|
|
notmuch dump > clear.actual &&
|
|
test_cmp clear.expected clear.actual'
|
|
|
|
test_expect_success 'Accumulate original tags' \
|
|
'notmuch tag +ABC +DEF -- from:cworth &&
|
|
notmuch restore --accumulate < dump.expected &&
|
|
notmuch dump > dump.actual &&
|
|
test_cmp dump-ABC_DEF.expected dump.actual'
|
|
|
|
test_expect_success 'Restoring original tags' \
|
|
'notmuch restore dump.expected &&
|
|
notmuch dump > dump.actual &&
|
|
test_cmp dump.expected dump.actual'
|
|
|
|
test_expect_success 'Restore with nothing to do' \
|
|
'notmuch restore < dump.expected &&
|
|
notmuch dump > dump.actual &&
|
|
test_cmp dump.expected dump.actual'
|
|
|
|
test_expect_success 'Restore with nothing to do, II' \
|
|
'notmuch restore --accumulate dump.expected &&
|
|
notmuch dump > dump.actual &&
|
|
test_cmp dump.expected dump.actual'
|
|
|
|
test_expect_success 'Restore with nothing to do, III' \
|
|
'notmuch restore --accumulate < clear.expected &&
|
|
notmuch dump > dump.actual &&
|
|
test_cmp dump.expected dump.actual'
|
|
|
|
# notmuch restore currently only considers the first argument.
|
|
test_subtest_known_broken
|
|
test_expect_success 'Invalid restore invocation' \
|
|
'test_must_fail notmuch restore dump.expected another_one'
|
|
|
|
test_begin_subtest "dump outfile"
|
|
notmuch dump dump-outfile.actual
|
|
test_expect_equal_file dump.expected dump-outfile.actual
|
|
|
|
test_begin_subtest "dump outfile # deprecated"
|
|
test_expect_equal "Warning: the output file argument of dump is deprecated."\
|
|
"$(notmuch dump /dev/null 2>&1)"
|
|
|
|
test_begin_subtest "dump outfile --"
|
|
notmuch dump dump-1-arg-dash.actual --
|
|
test_expect_equal_file dump.expected dump-1-arg-dash.actual
|
|
|
|
# Note, we assume all messages from cworth have a message-id
|
|
# containing cworth.org
|
|
|
|
grep 'cworth[.]org' dump.expected > dump-cworth.expected
|
|
|
|
test_begin_subtest "dump -- from:cworth"
|
|
notmuch dump -- from:cworth > dump-dash-cworth.actual
|
|
test_expect_equal_file dump-cworth.expected dump-dash-cworth.actual
|
|
|
|
test_begin_subtest "dump outfile from:cworth"
|
|
notmuch dump dump-outfile-cworth.actual from:cworth
|
|
test_expect_equal_file dump-cworth.expected dump-outfile-cworth.actual
|
|
|
|
test_begin_subtest "dump outfile -- from:cworth"
|
|
notmuch dump dump-outfile-dash-inbox.actual -- from:cworth
|
|
test_expect_equal_file dump-cworth.expected dump-outfile-dash-inbox.actual
|
|
|
|
test_done
|