From adfbfc4960b2ac0684533d7620f92f62ca33e58c Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Thu, 22 Aug 2013 14:15:33 -0400 Subject: [PATCH] use Cronscript --- Open-ILS/src/perlmods/live_t/02-simple_circ.t | 182 ++++---------------------- 1 file changed, 23 insertions(+), 159 deletions(-) diff --git a/Open-ILS/src/perlmods/live_t/02-simple_circ.t b/Open-ILS/src/perlmods/live_t/02-simple_circ.t index 5d366e2a73..3da658b5b1 100644 --- a/Open-ILS/src/perlmods/live_t/02-simple_circ.t +++ b/Open-ILS/src/perlmods/live_t/02-simple_circ.t @@ -9,162 +9,17 @@ use constant WORKSTATION_LIB => 7; use constant ITEM_BARCODE => 'CONC70000345'; use constant ITEM_ID => 310; -use strict; -use warnings; -use Data::Dumper; -use OpenSRF::System; -use OpenSRF::AppSession; -use Digest::MD5 qw(md5_hex); -use OpenILS::Utils::Fieldmapper; -use OpenILS::Application::AppUtils; -use OpenSRF::Utils::SettingsClient; +use strict; use warnings; -# Some useful objects -our $cache = "OpenSRF::Utils::Cache"; -our $apputils = "OpenILS::Application::AppUtils"; -our $memcache; -our $authtoken; -our $authtime; - -#---------------------------------------------------------------- -# Exit a script -#---------------------------------------------------------------- -sub err { - my ($pkg, $file, $line, $sub) = _caller(); - no warnings; - die "Script halted with error ". - "($pkg : $file : $line : $sub):\n" . shift() . "\n"; -} - -#---------------------------------------------------------------- -# This is not the function you're looking for -#---------------------------------------------------------------- -sub _caller { - my ($pkg, $file, $line, $sub) = caller(2); - if(!$line) { - ($pkg, $file, $line) = caller(1); - $sub = ""; - } - return ($pkg, $file, $line, $sub); -} - -#---------------------------------------------------------------- -# Connect to the servers -#---------------------------------------------------------------- -sub osrf_connect { - my $config = `osrf_config --sysconfdir`; - chomp $config; - $config .= '/opensrf_core.xml'; - err("Bootstrap config required") unless $config; - OpenSRF::System->bootstrap_client( config_file => $config ); - Fieldmapper->import(IDL => - OpenSRF::Utils::SettingsClient->new->config_value("IDL")); -} - -#---------------------------------------------------------------- -# Is the given object an OILS event? -#---------------------------------------------------------------- -sub oils_is_event { - my $e = shift; - if( $e and ref($e) eq 'HASH' ) { - return 1 if defined($e->{ilsevent}); - } - return 0; -} - -#---------------------------------------------------------------- -# If the given object is an event, this prints the event info -# and exits the script -#---------------------------------------------------------------- -sub oils_event_die { - my $evt = shift; - my ($pkg, $file, $line, $sub) = _caller(); - if(oils_is_event($evt)) { - if($evt->{ilsevent}) { - diag("\nReceived Event($pkg : $file : $line : $sub): \n" . Dumper($evt)); - exit 1; - } - } -} - -#---------------------------------------------------------------- -# Login to the auth server and set the global $authtoken var -#---------------------------------------------------------------- -sub oils_login { - my( $username, $password, $type, $ws ) = @_; - - $type |= "staff"; - - my $seed = $apputils->simplereq( 'open-ils.auth', - 'open-ils.auth.authenticate.init', $username ); - err("No auth seed") unless $seed; - - my $response = $apputils->simplereq( 'open-ils.auth', - 'open-ils.auth.authenticate.complete', - { username => $username, - password => md5_hex($seed . md5_hex($password)), - type => $type, workstation => $ws }); - - err("No auth response returned on login") unless $response; - - oils_event_die($response); - - $authtime = $response->{payload}->{authtime}; - $authtoken = $response->{payload}->{authtoken}; - diag("authtime is $authtime, authtoken is $authtoken"); - return $authtoken; -} - -#---------------------------------------------------------------- -# Destroys the login session on the server -#---------------------------------------------------------------- -sub oils_logout { - $apputils->simplereq( - 'open-ils.auth', - 'open-ils.auth.session.delete', (@_ ? shift : $authtoken) ); -} - -#---------------------------------------------------------------- -# var $response = simplereq( $service, $method, @params ); -#---------------------------------------------------------------- -sub simplereq { return $apputils->simplereq(@_); } -sub osrf_request { return $apputils->simplereq(@_); } - -#---------------------------------------------------------------- - -sub register_workstation { - my $resp = osrf_request( - 'open-ils.actor', - 'open-ils.actor.workstation.register', - $authtoken, WORKSTATION_NAME, WORKSTATION_LIB); - return $resp; -} - -sub do_checkout { - my( $patronid, $barcode ) = @_; - my $args = { patron => $patronid, barcode => $barcode }; - my $resp = osrf_request( - 'open-ils.circ', - 'open-ils.circ.checkout.full', $authtoken, $args ); - return $resp; -} - -sub do_checkin { - my $barcode = shift; - my $args = { barcode => $barcode }; - my $resp = osrf_request( - 'open-ils.circ', - 'open-ils.circ.checkin', $authtoken, $args ); - return $resp; -} +use OpenILS::Utils::Cronscript; +my $script = OpenILS::Utils::Cronscript->new(); #---------------------------------------------------------------- # The tests... assumes stock sample data, full-auto install by # eg_wheezy_installer.sh, etc. #---------------------------------------------------------------- -osrf_connect(); -my $storage_ses = OpenSRF::AppSession->create('open-ils.storage'); +my $storage_ses = $script->session('open-ils.storage'); my $user_req = $storage_ses->request('open-ils.storage.direct.actor.user.retrieve', 1); if (my $user_resp = $user_req->recv) { @@ -202,25 +57,34 @@ if (my $item_resp = $item_req->recv) { } } -oils_login('admin','demo123','staff'); +$script->authenticate({ + username => 'admin', + password => 'demo123', + type => 'staff'}); ok( - $authtoken, + $script->authtoken, 'Have an authtoken' ); -my $ws = register_workstation(); +my $ws = $script->register_workstation(WORKSTATION_NAME,WORKSTATION_LIB); ok( ! ref $ws, 'Registered a new workstation' ); -oils_logout(); -oils_login('admin','demo123','staff',WORKSTATION_NAME); +$script->logout(); +$script->authenticate({ + username => 'admin', + password => 'demo123', + type => 'staff', + workstation => WORKSTATION_NAME}); ok( - $authtoken, + $script->authtoken, 'Have an authtoken associated with the workstation' ); -my $checkout_resp = do_checkout(1, ITEM_BARCODE); +my $checkout_resp = $script->do_checkout({ + patron => 1, + barcode => ITEM_BARCODE}); is( ref $checkout_resp, 'HASH', @@ -243,7 +107,8 @@ if (my $item_resp = $item_req->recv) { } } -my $checkin_resp = do_checkin(ITEM_BARCODE); +my $checkin_resp = $script->do_checkin({ + barcode => ITEM_BARCODE}); is( ref $checkin_resp, 'HASH', @@ -265,6 +130,5 @@ if (my $item_resp = $item_req->recv) { } } -oils_logout(); - +$script->logout(); -- 2.11.0