]> Sergey Matveev's repositories - public-inbox.git/commitdiff
lei rm: move generic input_maildir_cb to LeiInput parent class
authorEric Wong <e@80x24.org>
Thu, 28 Oct 2021 11:15:01 +0000 (11:15 +0000)
committerEric Wong <e@80x24.org>
Thu, 28 Oct 2021 19:17:12 +0000 (19:17 +0000)
It's not much of a savings, right now, but maybe it can be in the
future.  I wanted to eliminate the "lei convert" one, too, but
convert needs to preserve keywords which isn't possible with the
generic fallback, so new tests were written for convert, instead.

lib/PublicInbox/LeiInput.pm
lib/PublicInbox/LeiRm.pm
t/lei-convert.t

index 540681e3ff6bbef3c0c24417c3a8063305bfb14c..84fc579dc4803b48624b2e445db8efddbf9a1c37 100644 (file)
@@ -64,6 +64,11 @@ sub input_mbox_cb { # base MboxReader callback
        $self->input_eml_cb($eml);
 }
 
+sub input_maildir_cb {
+       my ($fn, $kw, $eml, $self) = @_;
+       $self->input_eml_cb($eml);
+}
+
 sub input_net_cb { # imap_each, nntp_each cb
        my ($url, $uid, $kw, $eml, $self) = @_;
        $self->input_eml_cb($eml);
index 524c178e3b471e5fba46a5f2bbd5382b065ac4b1..cc1abbff66cb1e47a9fd0cd111d155059c10dffe 100644 (file)
@@ -13,11 +13,6 @@ sub input_eml_cb { # used by PublicInbox::LeiInput::input_fh
        $self->{lei}->{sto}->wq_do('remove_eml', $eml);
 }
 
-sub input_maildir_cb {
-       my (undef, $kw, $eml, $self) = @_; # $_[0] $filename ignored
-       input_eml_cb($self, $eml);
-}
-
 sub lei_rm {
        my ($lei, @inputs) = @_;
        $lei->_lei_store(1)->write_prepare($lei);
index 0ea860c8218939d8fe22d4887ca6730dc8f17f84..e1849ff796cd6d840606efd5db7c6e2b11b954f8 100644 (file)
@@ -115,5 +115,15 @@ test_lei({ tmpdir => $tmpdir }, sub {
        @bar = ();
        PublicInbox::MboxReader->mboxrd($fh, sub { push @bar, shift });
        is_deeply(\@bar, [ $qp_eml ], 'readed gzipped mboxrd');
+
+       # Status => Maildir flag => Status round trip
+       $lei_out =~ s/^Status: O/Status: RO/sm or xbail "`seen' Status";
+       $rdr = { 0 => \($in = $lei_out), %$lei_opt };
+       lei_ok([qw(convert -F mboxrd -o), "$d/md2"], undef, $rdr);
+       @md = glob("$d/md2/*/*");
+       is(scalar(@md), 1, 'one message');
+       like($md[0], qr/:2,S\z/, "`seen' flag set in Maildir");
+       lei_ok(qw(convert -o mboxrd:/dev/stdout), "$d/md2");
+       like($lei_out, qr/^Status: RO/sm, "`seen' flag preserved");
 });
 done_testing;