From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on dcvr.yhbt.net X-Spam-Level: X-Spam-Status: No, score=-4.0 required=3.0 tests=ALL_TRUSTED,BAYES_00 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.2 Received: from localhost (dcvr.yhbt.net [127.0.0.1]) by dcvr.yhbt.net (Postfix) with ESMTP id A88B11FA11 for ; Wed, 2 Sep 2020 11:04:22 +0000 (UTC) From: Eric Wong To: meta@public-inbox.org Subject: [PATCH 04/11] search: remove special case for blank query Date: Wed, 2 Sep 2020 11:04:14 +0000 Message-Id: <20200902110421.30905-5-e@80x24.org> In-Reply-To: <20200902110421.30905-1-e@80x24.org> References: <20200902110421.30905-1-e@80x24.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: The special case (if any) belongs at a higher-level, and this is another step towards removing {over_ro}-dependence in our Search object. --- lib/PublicInbox/Search.pm | 13 ++++--------- t/v2mda.t | 6 +++--- t/watch_maildir_v2.t | 19 +++++++++---------- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/lib/PublicInbox/Search.pm b/lib/PublicInbox/Search.pm index b739faf1..546884a9 100644 --- a/lib/PublicInbox/Search.pm +++ b/lib/PublicInbox/Search.pm @@ -282,15 +282,10 @@ sub reopen { sub query { my ($self, $query_string, $opts) = @_; $opts ||= {}; - if ($query_string eq '' && !$opts->{mset}) { - $self->{over_ro}->recent($opts); - } else { - my $qp = $self->{qp} //= qparse_new($self); - my $qp_flags = $self->{qp_flags}; - my $query = $qp->parse_query($query_string, $qp_flags); - $opts->{relevance} = 1 unless exists $opts->{relevance}; - _do_enquire($self, $query, $opts); - } + my $qp = $self->{qp} //= qparse_new($self); + my $query = $qp->parse_query($query_string, $self->{qp_flags}); + $opts->{relevance} = 1 unless exists $opts->{relevance}; + _do_enquire($self, $query, $opts); } sub retry_reopen { diff --git a/t/v2mda.t b/t/v2mda.t index 7666eb2d..2262c3ad 100644 --- a/t/v2mda.t +++ b/t/v2mda.t @@ -50,7 +50,7 @@ $ibx = PublicInbox::Inbox->new($ibx); if ($V == 1) { ok(run_script([ '-index', "$tmpdir/inbox" ]), 'v1 indexed'); } -my $msgs = $ibx->search->query(''); +my $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'only got one message'); my $eml = $ibx->smsg_eml($msgs->[0]); is($eml->as_string, $mime->as_string, 'injected message'); @@ -64,7 +64,7 @@ is($eml->as_string, $mime->as_string, 'injected message'); ok(run_script(['-mda'], undef, $rdr), 'mda did not die on "spam"'); @new = glob("$faildir/new/*"); is(scalar(@new), 1, 'got a message in faildir'); - $msgs = $ibx->search->reopen->query(''); + $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'no new message'); my $config = "$ENV{PI_DIR}/config"; @@ -76,7 +76,7 @@ is($eml->as_string, $mime->as_string, 'injected message'); ok(run_script(['-mda'], undef, $rdr), 'mda did not die'); my @again = glob("$faildir/new/*"); is_deeply(\@again, \@new, 'no new message in faildir'); - $msgs = $ibx->search->reopen->query(''); + $msgs = $ibx->over->recent; is(scalar(@$msgs), 2, 'new message added OK'); } diff --git a/t/watch_maildir_v2.t b/t/watch_maildir_v2.t index ca1cf965..c2c096ae 100644 --- a/t/watch_maildir_v2.t +++ b/t/watch_maildir_v2.t @@ -47,10 +47,9 @@ EOF my $config = PublicInbox::Config->new(\$orig); my $ibx = $config->lookup_name('test'); ok($ibx, 'found inbox by name'); -my $srch = $ibx->search; PublicInbox::Watch->new($config)->scan('full'); -my $total = scalar @{$srch->reopen->query('')}; +my $total = scalar @{$ibx->over->recent}; is($total, 1, 'got one revision'); # my $git = PublicInbox::Git->new("$inboxdir/git/0.git"); @@ -70,7 +69,7 @@ my $write_spam = sub { $write_spam->(); is(unlink(glob("$maildir/new/*")), 1, 'unlinked old spam'); PublicInbox::Watch->new($config)->scan('full'); -is_deeply($srch->reopen->query(''), [], 'deleted file'); +is_deeply($ibx->over->recent, [], 'deleted file'); is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam'); # check with scrubbing @@ -81,7 +80,7 @@ the body of a message to majordomo\@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html\n); PublicInbox::Emergency->new($maildir)->prepare(\$msg); PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query(''); + my $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'got one file back'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); @@ -89,7 +88,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); is(unlink(glob("$maildir/new/*")), 1, 'unlinked spam'); $write_spam->(); PublicInbox::Watch->new($config)->scan('full'); - $msgs = $srch->reopen->query(''); + $msgs = $ibx->over->recent; is(scalar(@$msgs), 0, 'inbox is empty again'); is(unlink(glob("$spamdir/cur/*")), 1, 'unlinked trained spam'); } @@ -105,7 +104,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); local $SIG{__WARN__} = sub {}; # quiet spam check warning PublicInbox::Watch->new($config)->scan('full'); } - my $msgs = $srch->reopen->query(''); + my $msgs = $ibx->over->recent; is(scalar(@$msgs), 0, 'inbox is still empty'); is(unlink(glob("$maildir/new/*")), 1); } @@ -118,7 +117,7 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); PublicInbox::Emergency->new($maildir)->prepare(\$msg); $config->{'publicinboxwatch.spamcheck'} = 'spamc'; PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query(''); + my $msgs = $ibx->over->recent; is(scalar(@$msgs), 1, 'inbox has one mail after spamc OK-ed a message'); my $mref = $ibx->msg_by_smsg($msgs->[0]); like($$mref, qr/something\n\z/s, 'message scrubbed on import'); @@ -131,10 +130,10 @@ More majordomo info at http://vger.kernel.org/majordomo-info.html\n); $msg = do { local $/; <$fh> }; PublicInbox::Emergency->new($maildir)->prepare(\$msg); PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query('dfpost:6e006fd7'); + my $msgs = $ibx->search->reopen->query('dfpost:6e006fd7'); is(scalar(@$msgs), 1, 'diff postimage found'); my $post = $msgs->[0]; - $msgs = $srch->query('dfpre:090d998b6c2c'); + $msgs = $ibx->search->query('dfpre:090d998b6c2c'); is(scalar(@$msgs), 1, 'diff preimage found'); is($post->{blob}, $msgs->[0]->{blob}, 'same message'); } @@ -162,7 +161,7 @@ both EOF PublicInbox::Emergency->new($maildir)->prepare(\$both); PublicInbox::Watch->new($config)->scan('full'); - my $msgs = $srch->reopen->query('m:both@b.com'); + my $msgs = $ibx->search->reopen->query('m:both@b.com'); my $v1 = $config->lookup_name('v1'); my $msg = $v1->git->cat_file($msgs->[0]->{blob}); is($both, $$msg, 'got original message back from v1');