Skip to content

Commit

Permalink
Merge pull request #432 from msdemlei/fix-uws-errorsummary
Browse files Browse the repository at this point in the history
UWS error messages now sit on errorsummary.
  • Loading branch information
bsipocz committed Mar 7, 2023
1 parent 83c8a4b commit 11e4e99
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 15 deletions.
4 changes: 4 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,10 @@
- Removing defaults for optional SIAv1 and SSA query parameters to avoid
unnecessarily overriding the server-side defaults. [#366]

- Error messages from uws jobs are now in job.errorsummary.message
rather than job.message (where one wouldn't expect them given the UWS
schema). [#432]

1.4 (2022-09-26)
================

Expand Down
5 changes: 4 additions & 1 deletion pyvo/dal/tap.py
Original file line number Diff line number Diff line change
Expand Up @@ -951,7 +951,10 @@ def raise_if_error(self):
if theres an error
"""
if self.phase in {"ERROR", "ABORTED"}:
msg = self._job._message if self._job and self._job._message else ''
msg = ""
if self._job and self._job.errorsummary:
msg = self._job.errorsummary.message.content
msg = msg or "<No useful error from server>"
raise DALQueryError("Query Error: " + msg, self.url)

def fetch_result(self):
Expand Down
7 changes: 5 additions & 2 deletions pyvo/dal/tests/test_tap.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from pyvo.dal import DALQueryError

from pyvo.io.uws import JobFile
from pyvo.io.uws.tree import Parameter, Result
from pyvo.io.uws.tree import Parameter, Result, ErrorSummary, Message
from pyvo.utils import prototype

from astropy.time import Time, TimeDelta
Expand Down Expand Up @@ -180,7 +180,10 @@ def create(self, request, context):
job.jobid = newid
if 'test_erroneus_submit.non_existent' in request.text:
job.phase = 'ERROR'
job.message = 'test_erroneus_submit.non_existent not found'
job._errorsummary = ErrorSummary()
job.errorsummary.message = Message()
job.errorsummary.message.content =\
'test_erroneus_submit.non_existent not found'
else:
job.phase = 'PENDING'
job.quote = Time.now() + TimeDelta(1, format='sec')
Expand Down
3 changes: 2 additions & 1 deletion pyvo/io/uws/tests/test_job.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"""
Tests for pyvo.io.vosi
"""

import pyvo.io.uws as uws

from astropy.utils.data import get_pkg_data_filename
Expand Down Expand Up @@ -30,4 +31,4 @@ def test_error_job(self):

assert not job.errorsummary.has_detail
assert job.errorsummary.type_ == 'fatal'
assert job.message == 'We have problem'
assert job.errorsummary.message.content == 'We have problem'
14 changes: 3 additions & 11 deletions pyvo/io/uws/tree.py
Original file line number Diff line number Diff line change
Expand Up @@ -265,17 +265,9 @@ def errorsummary(self):

@errorsummary.adder
def errorsummary(self, iterator, tag, data, config, pos):
self._errorsummary = ErrorSummary(config, pos,
'errorSummary', **data)

@uwselement(plain=True)
def message(self):
"""the error message"""
return self._message

@message.setter
def message(self, message):
self._message = message
res = ErrorSummary(config, pos, 'errorSummary', **data)
res.parse(iterator, config)
self._errorsummary = res


class Jobs(HomogeneousList, UWSElement):
Expand Down

0 comments on commit 11e4e99

Please sign in to comment.