user/dev discussion of public-inbox itself
 help / color / mirror / code / Atom feed
blob 1fe940bb6d894977edb062fda3ca03dae3bffc5e 1288 bytes (raw)
name: t/lei-export-kw.t 	 # note: path name is non-authoritative(*)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
 
#!perl -w
# Copyright (C) 2021 all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
use strict; use v5.10.1; use PublicInbox::TestCommon;
use File::Copy qw(cp);
use File::Path qw(make_path);
require_mods(qw(lei -imapd Mail::IMAPClient));
my ($tmpdir, $for_destroy) = tmpdir;
my $expect = eml_load('t/data/0001.patch');
test_lei({ tmpdir => $tmpdir }, sub {
	my $home = $ENV{HOME};
	my $md = "$home/md";
	make_path("$md/new", "$md/cur", "$md/tmp");
	cp('t/data/0001.patch', "$md/new/y") or xbail "cp $md $!";
	cp('t/data/message_embed.eml', "$md/cur/x:2,S") or xbail "cp $md $!";
	lei_ok qw(index -q), $md;
	lei_ok qw(tag t/data/0001.patch +kw:seen);
	lei_ok qw(export-kw --all=local);
	ok(!-e "$md/new/y", 'original gone');
	is_deeply(eml_load("$md/cur/y:2,S"), $expect,
		"`seen' kw exported");

	lei_ok qw(tag t/data/0001.patch +kw:answered);
	lei_ok qw(export-kw --all=local);
	ok(!-e "$md/cur/y:2,S", 'seen-only file gone');
	is_deeply(eml_load("$md/cur/y:2,RS"), $expect, "`R' added");

	lei_ok qw(tag t/data/0001.patch -kw:answered -kw:seen);
	lei_ok qw(export-kw --mode=set --all=local);
	ok(!-e "$md/cur/y:2,RS", 'seen+answered file gone');
	is_deeply(eml_load("$md/cur/y:2,"), $expect, 'no keywords left');
});

done_testing;

debug log:

solving 1fe940bb ...
found 1fe940bb in https://80x24.org/public-inbox.git

(*) Git path names are given by the tree(s) the blob belongs to.
    Blobs themselves have no identifier aside from the hash of its contents.^

Code repositories for project(s) associated with this public inbox

	https://80x24.org/public-inbox.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).