Bug 16637: Dependency for C4::Tags not listed
authorMark Tompsett <mtompset@hotmail.com>
Sat, 4 Jun 2016 15:11:00 +0000 (11:11 -0400)
committerKyle M Hall <kyle@bywatersolutions.com>
Fri, 10 Jun 2016 18:05:10 +0000 (18:05 +0000)
Added optional dependency, so as to explain why testing
explodes when the Enhanced Content system preference
TagsExternalDictionary is set. It is optional, because not only
does TagsExternalDictionary have to be set, but TagsEnabled
must be 'Allow'.

Also tweaked C4/Tags.pm to ignore TagsExternalDictionary,
if Lingua::Ispell is not installed. A warning is given.

TEST PLAN
---------
 1) Set the Enhanced Content system preference
    TagsExternalDictionary to /usr/bin/ispell

 2) sudo apt-get install liblingua-ispell-perl
    -- should be a new install

 3) prove t/db_dependent/Tags.t
    -- should work fine

 4) sudo apt-get remove liblingua-ispell-perl

 5) prove t/db_dependent/Tags.t
    -- should explode

 6) Clear the Enhanced Content system preference
    TagsExternalDictionary

 7) prove t/db_dependent/Tags.t
    -- should work fine

 8) apply patch

 9) prove t/db_dependent/Tags.t
    -- should work fine

10) Set the Enhanced Content system preference
    TagsExternalDictionary to /usr/bin/ispell

11) prove t/db_dependent/Tags.t
    -- should work, with warning.

12) sudo apt-get install liblingua-ispell-perl

13) prove t/db_dependent/Tags.t
    -- should work fine

14) run koha qa test tools.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Post-hackfest hotel Olympia lobby signoff. Kalimera!
Works as expected.
At this moment the Tags.t test does not need the database btw,
but the module should have much more test coverage.

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

C4/Installer/PerlDependencies.pm
C4/Tags.pm

index 8302995..c397e49 100644 (file)
@@ -802,6 +802,11 @@ our $PERL_DEPS = {
         'required' => '1',
         'min_ver'  => '0.14',
     },
+    'Lingua::Ispell' => {
+        'usage'    => 'Enhanced Content - Tagging',
+        'required' => '0',
+        'min_ver'  => '0.07'
+    },
 };
 
 1;
index c964bc1..1db7acc 100644 (file)
@@ -25,6 +25,7 @@ use Exporter;
 
 use C4::Context;
 use C4::Debug;
+use Module::Load::Conditional qw/check_install/;
 #use Data::Dumper;
 use constant TAG_FIELDS => qw(tag_id borrowernumber biblionumber term language date_created);
 use constant TAG_SELECT => "SELECT " . join(',', TAG_FIELDS) . "\n FROM   tags_all\n";
@@ -50,6 +51,10 @@ BEGIN {
     );
        # %EXPORT_TAGS = ();
     my $ext_dict = C4::Context->preference('TagsExternalDictionary');
+    if ( $ext_dict && ! check_install( module => 'Lingua::Ispell' ) ) {
+        warn "Ignoring TagsExternalDictionary, because Lingua::Ispell is not installed.";
+        $ext_dict = q{};
+    }
        if ($debug) {
                require Data::Dumper;
                import Data::Dumper qw(:DEFAULT);