X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=lib%2FZOOM%2FIRSpy%2FTest%2FRecord%2FFetch.pm;h=6ed0edb0596eaad99fdcea50c0684ab8d8a60795;hb=c235c5a6c3137b667a85f6c0a4449fa56a40248d;hp=1750f6be9166cb52a22a565763b9ff38583c8376;hpb=a67e96d0b4450a1eb4bce9836b2004a70bc818ba;p=irspy-moved-to-github.git diff --git a/lib/ZOOM/IRSpy/Test/Record/Fetch.pm b/lib/ZOOM/IRSpy/Test/Record/Fetch.pm index 1750f6b..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.10 2006-10-26 18:22:41 sondberg 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 (0) { - 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; }