From 4113bc92d0c4aacc4f95676de74bed63a5687bdf Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 6 Feb 2021 12:18:34 +0000 Subject: tests: add test_lei wrapper, split out t/lei-import.t This will make it easier to maintain and test lei going forward, we need to be testing against existing read-only daemons. We'll also save ourselves some boilerplate by exporting all the Test::More methods directly in TestCommon We'll start using this by splitting out the latest "lei import" tests into its own file. --- t/lei-import.t | 39 +++++++++++++++++++++++++++++++++++++++ t/lei.t | 35 ----------------------------------- 2 files changed, 39 insertions(+), 35 deletions(-) create mode 100644 t/lei-import.t (limited to 't') diff --git a/t/lei-import.t b/t/lei-import.t new file mode 100644 index 00000000..709d89fa --- /dev/null +++ b/t/lei-import.t @@ -0,0 +1,39 @@ +#!perl -w +# Copyright (C) 2020-2021 all contributors +# License: AGPL-3.0+ +use strict; use v5.10.1; use PublicInbox::TestCommon; +test_lei(sub { + +ok($lei->(qw(q s:boolean)), 'search miss before import'); +unlike($lei_out, qr/boolean/i, 'no results, yet'); +open my $fh, '<', 't/data/0001.patch' or BAIL_OUT $!; +ok($lei->([qw(import -f eml -)], undef, { %$lei_opt, 0 => $fh }), + 'import single file from stdin'); +close $fh; +ok($lei->(qw(q s:boolean)), 'search hit after import'); +ok($lei->(qw(import -f eml), 't/data/message_embed.eml'), + 'import single file by path'); + +my $str = <<''; +From: a@b +Message-ID: +Status: RO + +my $opt = { %$lei_opt, 0 => \$str }; +ok($lei->([qw(import -f eml -)], undef, $opt), + 'import single file with keywords from stdin'); +$lei->(qw(q m:x@y)); +my $res = json_utf8->decode($lei_out); +is($res->[1], undef, 'only one result'); +is_deeply($res->[0]->{kw}, ['seen'], "message `seen' keyword set"); + +$str =~ tr/x/v/; # v@y +ok($lei->([qw(import --no-kw -f eml -)], undef, $opt), + 'import single file with --no-kw from stdin'); +$lei->(qw(q m:v@y)); +$res = json_utf8->decode($lei_out); +is($res->[1], undef, 'only one result'); +is_deeply($res->[0]->{kw}, [], 'no keywords set'); + +}); +done_testing; diff --git a/t/lei.t b/t/lei.t index df333957..9f92d895 100644 --- a/t/lei.t +++ b/t/lei.t @@ -41,7 +41,6 @@ local $ENV{GIT_COMMITTER_EMAIL} = 'lei@example.com'; local $ENV{GIT_COMMITTER_NAME} = 'lei user'; local $ENV{XDG_RUNTIME_DIR} = "$home/xdg_run"; local $ENV{HOME} = $home; -local $ENV{FOO} = 'BAR'; mkdir "$home/xdg_run", 0700 or BAIL_OUT "mkdir: $!"; my $home_trash = [ "$home/.local", "$home/.config", "$home/junk" ]; my $cleanup = sub { rmtree([@$home_trash, @_]) }; @@ -395,39 +394,6 @@ SKIP: { }; # /SKIP }; -my $test_import = sub { - $cleanup->(); - ok($lei->(qw(q s:boolean)), 'search miss before import'); - unlike($out, qr/boolean/i, 'no results, yet'); - open my $fh, '<', 't/data/0001.patch' or BAIL_OUT $!; - ok($lei->([qw(import -f eml -)], undef, { %$opt, 0 => $fh }), - 'import single file from stdin'); - close $fh; - ok($lei->(qw(q s:boolean)), 'search hit after import'); - ok($lei->(qw(import -f eml), 't/data/message_embed.eml'), - 'import single file by path'); - - my $str = <<''; -From: a@b -Message-ID: -Status: RO - - ok($lei->([qw(import -f eml -)], undef, { %$opt, 0 => \$str }), - 'import single file with keywords from stdin'); - $lei->(qw(q m:x@y)); - my $res = $json->decode($out); - is($res->[1], undef, 'only one result'); - is_deeply($res->[0]->{kw}, ['seen'], "message `seen' keyword set"); - - $str =~ tr/x/v/; # v@y - ok($lei->([qw(import --no-kw -f eml -)], undef, { %$opt, 0 => \$str }), - 'import single file with --no-kw from stdin'); - $lei->(qw(q m:v@y)); - $res = $json->decode($out); - is($res->[1], undef, 'only one result'); - is_deeply($res->[0]->{kw}, [], 'no keywords set'); -}; - my $test_lei_common = sub { $test_help->(); $test_config->(); @@ -435,7 +401,6 @@ my $test_lei_common = sub { $test_external->(); $test_completion->(); $test_fail->(); - $test_import->(); }; if ($ENV{TEST_LEI_ONESHOT}) { -- cgit v1.2.3-24-ge0c7