It's not really tricky, there are many addresses with a '-' in them. I personally really want to differentiate between foo at bar.com, foo-testing at bar.com, and foo-patches at bar.com.
This fails, but it shouldn't: FAIL Search by from (tricky): --- search.17.expected 2011-05-04 21:52:52.913218077 +0000 +++ search.17.output 2011-05-04 21:52:52.913218077 +0000 @@ -1 +1,3 @@ +thread:XXX 2000-01-01 [1/1] Search By From Name; search by from (name) (inbox unread) +thread:XXX 2000-01-01 [1/1] search-by-from-trick at foo.com; search by from (tricky trick) (inbox unread) thread:XXX 2000-01-01 [1/1] search-by-from at foo.com; search by from (tricky) (inbox unread) One possibility to make this work is to translate @ to -at- in the database, so search-by-from at foo.com becomes search-by-from-trick-at-foo.com, therefore searching for search-by-from-at- would not be confused. Signed-off-by: Felipe Contreras <felipe.contreras at gmail.com> --- test/search | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/test/search b/test/search index b180c7f..c6223f4 100755 --- a/test/search +++ b/test/search @@ -123,4 +123,10 @@ echo -n > expected && notmuch search "no-message-matches-this" > actual && test_cmp expected actual' +test_begin_subtest "Search by from (tricky):" +add_message '[subject]="search by from (tricky trick)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]=search-by-from-trick at foo.com' +add_message '[subject]="search by from (tricky)"' '[date]="Sat, 01 Jan 2000 12:00:00 -0000"' '[from]=search-by-from at foo.com' +output=$(notmuch search from:"search-by-from@" | notmuch_search_sanitize) +test_expect_equal "$output" "thread:XXX 2000-01-01 [1/1] search-by-from at foo.com; search by from (tricky) (inbox unread)" + test_done -- 1.7.5