X-Git-Url: http://git.indexdata.com/?p=irspy-moved-to-github.git;a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FTest%2FRecord%2FFetch.pm;h=c6b489fd9aecd30be61a23b23b0a54b6265d866d;hp=6021ade6d06e985904baf1b9004023da9952e14e;hb=f9fa0cec384029d5caafe4992c2a89704ef10632;hpb=14e310391c30a8dc33d928be4a19bdd098651bca diff --git a/lib/ZOOM/IRSpy/Test/Record/Fetch.pm b/lib/ZOOM/IRSpy/Test/Record/Fetch.pm index 6021ade..c6b489f 100644 --- a/lib/ZOOM/IRSpy/Test/Record/Fetch.pm +++ b/lib/ZOOM/IRSpy/Test/Record/Fetch.pm @@ -1,4 +1,4 @@ -# $Id: Fetch.pm,v 1.11 2006-10-31 12:42:32 mike Exp $ +# $Id: Fetch.pm,v 1.16 2006-11-29 11:06:29 mike Exp $ # See the "Main" test package for documentation @@ -28,7 +28,10 @@ sub start { sub completed_search { my($conn, $task, $udata, $event) = @_; - $conn->log("irspy_test", "Fetch test search succeeded"); + my $n = $task->{rs}->size(); + $conn->log("irspy_test", "Fetch test search found $n records"); + return ZOOM::IRSpy::Status::TEST_SKIPPED if $n == 0; + my @syntax = ( 'canmarc', 'danmarc', @@ -69,29 +72,25 @@ sub record { my $syn = $test_args->{'syntax'}; my $rs = $task->{rs}; - # Due to a bug in ZOOM-C (as of YAZ 2.1.38 of 31st October 2006), - # diagnostics in Present responses are not reported, so that we - # always end up in this callback rather than in error() where we - # should be. Luckily, we can test whether the retrieval really - # did work by rendering the record, which will yield an undefined - # result if the fetch failed. my $record = _fetch_record($rs, 0, $syn); - my $text = $record->render(); - if (defined $text) { + my $ok = 0; + if ($record->error()) { + $conn->log("irspy_test", "retrieval of $syn record failed: ", + $record->exception()); + } else { + $ok = 1; + my $text = $record->render(); $conn->log("irspy_test", "Successfully retrieved a $syn record"); if (0) { print STDERR "Hits: ", $rs->size(), "\n"; print STDERR "Syntax: ", $syn, "\n"; print STDERR $text; } - } else { - $conn->log("irspy_test", "Retrieval of $syn record failed: ", - "exception unavailable"); } $conn->record()->store_result('record_fetch', 'syntax' => $syn, - 'ok' => defined $text); + 'ok' => $ok); return ZOOM::IRSpy::Status::TASK_DONE; }