Bug 25527: Add logger to Koha::ExternalContent
This patch makes Koha::Logger initialization happen in the ->new method for the Koha::ExternalContent-derived classes. In the case of RecordedBooks, it doesn't look like it is used at all. In the case of OverDrive, it will now use the Koha::ExternalContent exported logger accessor. I added tests for this addition to Koha::ExternalContent to the OverDrive tests. I also removed references to Test::DBIx::Class as it is not used at all. To test: 1. Apply this patch 2. Run: $ kshell k$ prove t/db_dependent/Koha_ExternalContent_OverDrive.t => SUCCESS: Tests pass! Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Victor Grousset/tuxayo <victor@tuxayo.net> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
This commit is contained in:
parent
48e3e6aafb
commit
05705ab2ad
|
|
@ -22,10 +22,11 @@ use Carp;
|
|||
use base qw(Class::Accessor);
|
||||
|
||||
use Koha;
|
||||
use Koha::Logger;
|
||||
use Koha::Patrons;
|
||||
use C4::Auth;
|
||||
|
||||
__PACKAGE__->mk_accessors(qw(client koha_session_id koha_patron));
|
||||
__PACKAGE__->mk_accessors(qw(client koha_session_id koha_patron logger));
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
|
@ -54,6 +55,9 @@ sub agent_string {
|
|||
sub new {
|
||||
my $class = shift;
|
||||
my $params = shift || {};
|
||||
|
||||
$params->{logger} = Koha::Logger->get();
|
||||
|
||||
return bless $params, $class;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -23,9 +23,6 @@ use Carp;
|
|||
use base qw(Koha::ExternalContent);
|
||||
use WebService::ILS::OverDrive::Patron;
|
||||
use C4::Context;
|
||||
use Koha::Logger;
|
||||
|
||||
use constant logger => Koha::Logger->get();
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
|
@ -71,6 +68,7 @@ sub new {
|
|||
user_agent_params => { agent => $class->agent_string }
|
||||
) );
|
||||
}
|
||||
|
||||
return $self;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -24,9 +24,6 @@ use base qw(Koha::ExternalContent);
|
|||
use WebService::ILS::RecordedBooks::PartnerPatron;
|
||||
use WebService::ILS::RecordedBooks::Partner;
|
||||
use C4::Context;
|
||||
use Koha::Logger;
|
||||
|
||||
use constant logger => Koha::Logger->get();
|
||||
|
||||
__PACKAGE__->mk_accessors(qw(domain is_identified));
|
||||
|
||||
|
|
|
|||
|
|
@ -2,52 +2,51 @@
|
|||
|
||||
use Modern::Perl;
|
||||
|
||||
use t::lib::Mocks;
|
||||
use Test::More;
|
||||
use Test::MockModule;
|
||||
use t::lib::Mocks;
|
||||
|
||||
use Module::Load::Conditional qw( can_load check_install );
|
||||
|
||||
BEGIN {
|
||||
if ( check_install( module => 'Test::DBIx::Class' ) ) {
|
||||
plan tests => 5;
|
||||
if ( check_install( module => 'WebService::ILS::OverDrive::Patron' ) ) {
|
||||
plan tests => 6;
|
||||
} else {
|
||||
plan skip_all => "Need Test::DBIx::Class"
|
||||
plan skip_all => "Need WebService::ILS::OverDrive::Patron"
|
||||
}
|
||||
}
|
||||
|
||||
use Test::DBIx::Class;
|
||||
use_ok('Koha::ExternalContent::OverDrive');
|
||||
|
||||
my $db = Test::MockModule->new('Koha::Database');
|
||||
$db->mock( _new_schema => sub { return Schema(); } );
|
||||
t::lib::Mocks::mock_preference('SessionStorage','tmp');
|
||||
|
||||
t::lib::Mocks::mock_preference('OverDriveClientKey', 'DUMMY');
|
||||
t::lib::Mocks::mock_preference('OverDriveClientSecret', 'DUMMY');
|
||||
t::lib::Mocks::mock_preference('OverDriveLibraryID', 'DUMMY');
|
||||
|
||||
my $client = Koha::ExternalContent::OverDrive->new({koha_session_id => 'DUMMY'});
|
||||
|
||||
my $user_agent_string = $client->user_agent->agent();
|
||||
ok ($user_agent_string =~ m/^Koha/, 'User Agent string is set')
|
||||
or diag("User Agent string: $user_agent_string");
|
||||
|
||||
my $base_url = "http://mykoha.org";
|
||||
ok ($client->auth_url($base_url), 'auth_url()');
|
||||
local $@;
|
||||
eval { $client->auth_by_code("blah", $base_url) };
|
||||
ok($@, "auth_by_code() dies with bogus credentials");
|
||||
SKIP: {
|
||||
skip "cannot find WebService::ILS::OverDrive::Patron", 5
|
||||
unless can_load( modules => { 'WebService::ILS::OverDrive::Patron' => undef } );
|
||||
|
||||
use_ok('Koha::ExternalContent::OverDrive');
|
||||
|
||||
t::lib::Mocks::mock_preference('SessionStorage','tmp');
|
||||
|
||||
t::lib::Mocks::mock_preference('OverDriveClientKey', 'DUMMY');
|
||||
t::lib::Mocks::mock_preference('OverDriveClientSecret', 'DUMMY');
|
||||
t::lib::Mocks::mock_preference('OverDriveLibraryID', 'DUMMY');
|
||||
|
||||
my $client = Koha::ExternalContent::OverDrive->new({koha_session_id => 'DUMMY'});
|
||||
|
||||
my $user_agent_string = $client->user_agent->agent();
|
||||
ok ($user_agent_string =~ m/^Koha/, 'User Agent string is set')
|
||||
or diag("User Agent string: $user_agent_string");
|
||||
|
||||
my $base_url = "http://mykoha.org";
|
||||
ok ($client->auth_url($base_url), 'auth_url()');
|
||||
local $@;
|
||||
eval { $client->auth_by_code("blah", $base_url) };
|
||||
ok($@, "auth_by_code() dies with bogus credentials");
|
||||
SKIP: {
|
||||
skip "No exception", 1 unless $@;
|
||||
my $error_message = $client->error_message($@);
|
||||
ok($error_message =~ m/Authorization Failed/i, "error_message()")
|
||||
or diag("Original:\n$@\nTurned into:\n$error_message");
|
||||
}
|
||||
skip "No exception", 1 unless $@;
|
||||
my $error_message = $client->error_message($@);
|
||||
ok($error_message =~ m/Authorization Failed/i, "error_message()")
|
||||
or diag("Original:\n$@\nTurned into:\n$error_message");
|
||||
}
|
||||
|
||||
subtest 'logger() tests' => sub {
|
||||
|
||||
plan tests => 2;
|
||||
|
||||
my $external_content = Koha::ExternalContent::OverDrive->new({koha_session_id => 'DUMMY'});
|
||||
ok( $external_content->can('logger'), 'A Koha::ExternalContent object has a logger accessor' );
|
||||
is( ref($external_content->logger), 'Koha::Logger', 'The accessor return the right object type' );
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in New Issue