Lines 2-7
Link Here
|
2 |
|
2 |
|
3 |
# This file is part of Koha. |
3 |
# This file is part of Koha. |
4 |
# |
4 |
# |
|
|
5 |
# Copyright (c) 2016 Mark Tompsett -- is_testable() |
6 |
# |
5 |
# Koha is free software; you can redistribute it and/or modify it |
7 |
# Koha is free software; you can redistribute it and/or modify it |
6 |
# under the terms of the GNU General Public License as published by |
8 |
# under the terms of the GNU General Public License as published by |
7 |
# the Free Software Foundation; either version 3 of the License, or |
9 |
# the Free Software Foundation; either version 3 of the License, or |
Lines 20-26
use Modern::Perl;
Link Here
|
20 |
use Test::More; |
22 |
use Test::More; |
21 |
use File::Spec; |
23 |
use File::Spec; |
22 |
use File::Find; |
24 |
use File::Find; |
23 |
|
25 |
use English qw( -no_match_vars ); |
24 |
use t::lib::Mocks; |
26 |
use t::lib::Mocks; |
25 |
|
27 |
|
26 |
=head1 DESCRIPTION |
28 |
=head1 DESCRIPTION |
Lines 59-71
find(
Link Here
|
59 |
return unless $m =~ s/[.]pm$//; |
61 |
return unless $m =~ s/[.]pm$//; |
60 |
$m =~ s{^.*/Koha/}{Koha/}; |
62 |
$m =~ s{^.*/Koha/}{Koha/}; |
61 |
$m =~ s{/}{::}g; |
63 |
$m =~ s{/}{::}g; |
62 |
return if $m =~ /Koha::NorwegianPatronDB/; # uses non-mandatory modules |
64 |
if ( is_testable($m) ) { |
63 |
use_ok($m) || BAIL_OUT("***** PROBLEMS LOADING FILE '$m'"); |
65 |
use_ok($m) || BAIL_OUT("***** PROBLEMS LOADING FILE '$m'"); |
|
|
66 |
} |
64 |
}, |
67 |
}, |
65 |
}, |
68 |
}, |
66 |
$lib |
69 |
$lib |
67 |
); |
70 |
); |
68 |
|
71 |
|
|
|
72 |
# Optional modules are causing checks to fail |
73 |
# This checks for the particular modules to determine |
74 |
# if the testing is possible or not. |
75 |
# |
76 |
# Returns 1 if possible, 0 if not. |
77 |
sub is_testable { |
78 |
my ($module_name) = @_; |
79 |
my @needed_module_names; |
80 |
my $return_value = 1; |
81 |
if ( $module_name =~ /Koha::NorwegianPatronDB/xsm ) { |
82 |
@needed_module_names = |
83 |
( 'SOAP::Lite', 'Crypt::GCrypt', 'Digest::SHA', 'Convert::BaseN' ); |
84 |
} |
85 |
elsif ( $module_name =~ /Koha::ElasticSearch::Indexer/xsm ) { |
86 |
@needed_module_names = |
87 |
( 'Catmandu::Importer::MARC', 'Catmandu::Store::ElasticSearch' ); |
88 |
} |
89 |
elsif ( $module_name =~ /Koha::SearchEngine::Elasticsearch::Search/xsm ) { |
90 |
@needed_module_names = ( 'Catmandu::Store::ElasticSearch' ); |
91 |
} |
92 |
foreach my $current_name (@needed_module_names) { |
93 |
my $relative_pathname = $current_name; |
94 |
$relative_pathname =~ s/::/\//gxsm; |
95 |
$relative_pathname .= '.pm'; |
96 |
my $check_result = eval { require "$relative_pathname"; 1; }; |
97 |
if ($EVAL_ERROR) { |
98 |
diag( |
99 |
"Skipping testing of $module_name, because $current_name is not installed." |
100 |
); |
101 |
$return_value = 0; |
102 |
} |
103 |
} |
104 |
return $return_value; |
105 |
} |
69 |
|
106 |
|
70 |
done_testing(); |
107 |
done_testing(); |
71 |
|
108 |
|
72 |
- |
|
|