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=6ed0edb0596eaad99fdcea50c0684ab8d8a60795;hp=f79d6baef1b0466e07787124480365e79bf74a0d;hb=1a4c5ca7fe06c3e6b864b45ea071d500753d3ab5;hpb=958430ce05b1d7aee3f26de1ef198e6fb343dad8 diff --git a/lib/ZOOM/IRSpy/Test/Record/Fetch.pm b/lib/ZOOM/IRSpy/Test/Record/Fetch.pm index f79d6ba..6ed0edb 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.9 2006-10-26 17:17:27 mike Exp $ +# $Id: Fetch.pm,v 1.12 2006-11-01 09:56:50 sondberg Exp $ # See the "Main" test package for documentation @@ -69,17 +69,29 @@ sub record { my $syn = $test_args->{'syntax'}; my $rs = $task->{rs}; - $conn->log("irspy_test", "Successfully retrieved a $syn record"); - if (1) { - print STDERR "Hits: ", $rs->size(), "\n"; - print STDERR "Syntax: ", $syn, "\n"; - my $record = _fetch_record($rs, 0, $syn); - print STDERR $record->render(); + # 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) { + $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' => 1); + 'ok' => defined $text ? 1 : 0); return ZOOM::IRSpy::Status::TASK_DONE; }