2 test_description="python bindings"
3 . ./test-lib.sh || exit 1
5 test_require_external_prereq ${NOTMUCH_PYTHON}
9 test_begin_subtest "compare thread ids"
12 db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
13 q_new = notmuch.Query(db, 'tag:inbox')
14 q_new.set_sort(notmuch.Query.SORT.OLDEST_FIRST)
15 for t in q_new.search_threads():
16 print (t.get_thread_id())
18 notmuch search --sort=oldest-first --output=threads tag:inbox | sed s/^thread:// > EXPECTED
19 test_expect_equal_file EXPECTED OUTPUT
21 test_begin_subtest "compare message ids"
24 db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
25 q_new = notmuch.Query(db, 'tag:inbox')
26 q_new.set_sort(notmuch.Query.SORT.OLDEST_FIRST)
27 for m in q_new.search_messages():
28 print (m.get_message_id())
30 notmuch search --sort=oldest-first --output=messages tag:inbox | sed s/^id:// > EXPECTED
31 test_expect_equal_file EXPECTED OUTPUT
33 test_begin_subtest "get non-existent file"
36 db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
37 print (db.find_message_by_filename("i-dont-exist"))
39 test_expect_equal "$(cat OUTPUT)" "None"
41 test_begin_subtest "get revision"
42 test_python ${MAIL_DIR} <<'EOF'
44 db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
45 (revision, uuid) = db.get_revision()
46 print ("%s\t%lu" % (uuid, revision))
48 notmuch_uuid_sanitize < OUTPUT > CLEAN
52 test_expect_equal_file EXPECTED CLEAN
54 grep '^[0-9a-f]' OUTPUT > INITIAL_OUTPUT
56 test_begin_subtest "output of count matches test code"
57 notmuch count --lastmod '*' | cut -f2-3 > OUTPUT
58 test_expect_equal_file INITIAL_OUTPUT OUTPUT
59 add_message '[content-type]="text/plain; charset=iso-8859-2"' \
60 '[content-transfer-encoding]=8bit' \
61 '[subject]="ISO-8859-2 encoded message"' \
62 "[body]=$'Czech word tu\350\362\341\350\350\355 means pinguin\'s.'" # ISO-8859-2 characters are generated by shell's escape sequences
63 test_begin_subtest "Add ISO-8859-2 encoded message, call get_message_parts"
66 db = notmuch.Database(mode=notmuch.Database.MODE.READ_ONLY)
67 q_new = notmuch.Query(db, 'ISO-8859-2 encoded message')
68 for m in q_new.search_messages():
69 for mp in m.get_message_parts():
71 print(m.get_message_id())
74 notmuch search --sort=oldest-first --output=messages "tučňáččí" | sed s/^id:// > EXPECTED
75 test_expect_equal_file EXPECTED OUTPUT