From badd0ebf85410a0cf9fd69e6a7e770e328e6d059 Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Thu, 22 Aug 2013 14:53:23 -0400 Subject: [PATCH] use Cronscript --- Open-ILS/src/perlmods/live_t/03-overdue_circ.t | 193 ++++--------------------- 1 file changed, 31 insertions(+), 162 deletions(-) diff --git a/Open-ILS/src/perlmods/live_t/03-overdue_circ.t b/Open-ILS/src/perlmods/live_t/03-overdue_circ.t index f073e3e9f8..5de60c921d 100644 --- a/Open-ILS/src/perlmods/live_t/03-overdue_circ.t +++ b/Open-ILS/src/perlmods/live_t/03-overdue_circ.t @@ -9,167 +9,25 @@ use constant WORKSTATION_LIB => 7; use constant ITEM_BARCODE => 'CONC71000345'; use constant ITEM_ID => 810; -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 strict; use warnings; + +use OpenILS::Utils::Cronscript; +my $script = OpenILS::Utils::Cronscript->new(); + use DateTime; use DateTime::Format::ISO8601; use OpenSRF::Utils qw/cleanse_ISO8601/; -use OpenSRF::Utils::SettingsClient; - -# 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; -} +our $apputils = 'OpenILS::Application::AppUtils'; #---------------------------------------------------------------- # 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 $circ_ses = OpenSRF::AppSession->create('open-ils.circ'); -my $cstore_ses = OpenSRF::AppSession->connect('open-ils.cstore'); +my $storage_ses = $script->session('open-ils.storage'); +my $circ_ses = $script->session('open-ils.circ'); +my $cstore_ses = $script->session('open-ils.cstore'); my $user_req = $storage_ses->request('open-ils.storage.direct.actor.user.retrieve', 1); if (my $user_resp = $user_req->recv) { @@ -207,25 +65,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', @@ -265,7 +132,7 @@ if (my $item_resp = $item_req->recv) { my $bill_req = $circ_ses->request( 'open-ils.circ.money.billing.retrieve.all', - $authtoken, + $script->authtoken, $circ->id ); if (my $bill_resp = $bill_req->recv) { @@ -286,6 +153,7 @@ my $twenty_days = OpenSRF::Utils->interval_to_seconds('480 h 0 m 0 s'); $circ->xact_start( $apputils->epoch2ISO8601($xact_start - $twenty_days) ); $circ->due_date( $apputils->epoch2ISO8601($due_date - $twenty_days) ); +$cstore_ses->connect; # need stateful connection my $xact = $cstore_ses->request('open-ils.cstore.transaction.begin')->gather(1); my $update_req = $cstore_ses->request( 'open-ils.cstore.direct.action.circulation.update', @@ -304,7 +172,8 @@ $cstore_ses->request('open-ils.cstore.transaction.commit')->gather(1); ######## -my $checkin_resp = do_checkin(ITEM_BARCODE); +my $checkin_resp = $script->do_checkin({ + barcode => ITEM_BARCODE}); is( ref $checkin_resp, 'HASH', @@ -328,7 +197,7 @@ if (my $item_resp = $item_req->recv) { $bill_req = $circ_ses->request( 'open-ils.circ.money.billing.retrieve.all', - $authtoken, + $script->authtoken, $circ->id ); if (my $bill_resp = $bill_req->recv) { @@ -342,6 +211,6 @@ if (my $bill_resp = $bill_req->recv) { } -oils_logout(); +$script->logout(); -- 2.11.0