#134390 Report by node gh-actions covering 200 tests from 60 modules resulted into 8 errors

Report

ObsPy version
1.1.1.post0+2824.gd2981ba429.…
GitHub Pull Request
-
Report file
JSON document
Total runtime
146.9 sec
Report date/time
May 6, 2023, 6:14 a.m.

System / Python

Architecture
64bit
Machine
x86_64
Node
gh-actions
Processor
x86_64
Python Compiler
GCC 11.3.0
Python Implementation
CPython
Python Version
3.11.3
Release
5.15.0-1036-azure
System
Linux
Version
#43-Ubuntu SMP Wed Mar 29 16:11:05 UTC 2023

Dependencies

cartopy
0.21.1
decorator
5.1.1
flake8
---
geographiclib
2.0
lxml
4.9.2
matplotlib
3.7.1
numpy
1.24.3
obspy
1.1.1.post0+2824.gd2981ba429.mithcell.master
pyproj
3.5.0
pytest
7.3.1
pytest-json-report
1.5.0
requests
2.29.0
scipy
1.10.1
setuptools
67.7.2
shapefile
---
sqlalchemy
2.0.12

Modules (60)

Module Errors / Failures Tracebacks
obspy.clients.earthworm - -
obspy.clients.fdsn 3 1 2 3
obspy.clients.filesystem Not tested -
obspy.clients.iris 2 4 5
obspy.clients.neic 1 6
obspy.clients.nrl - -
obspy.clients.seedlink 2 7 8
obspy.clients.syngine - -
obspy.core - -
obspy.core.event Not tested -
obspy.core.inventory Not tested -
obspy.core.util Not tested -
obspy.geodetics Not tested -
obspy.imaging Not tested -
obspy.io.ah Not tested -
obspy.io.alsep Not tested -
obspy.io.arclink Not tested -
obspy.io.ascii Not tested -
obspy.io.cmtsolution Not tested -
obspy.io.cnv Not tested -
obspy.io.css Not tested -
obspy.io.csv Not tested -
obspy.io.dmx Not tested -
obspy.io.focmec Not tested -
obspy.io.gcf Not tested -
obspy.io.gse2 Not tested -
obspy.io.hypodd Not tested -
obspy.io.iaspei Not tested -
obspy.io.json Not tested -
obspy.io.kinemetrics Not tested -
obspy.io.kml Not tested -
obspy.io.mseed Not tested -
obspy.io.ndk Not tested -
obspy.io.nied Not tested -
obspy.io.nlloc Not tested -
obspy.io.nordic Not tested -
obspy.io.pdas Not tested -
obspy.io.pde Not tested -
obspy.io.quakeml Not tested -
obspy.io.reftek Not tested -
obspy.io.rg16 Not tested -
obspy.io.sac Not tested -
obspy.io.scardec Not tested -
obspy.io.seg2 Not tested -
obspy.io.segy Not tested -
obspy.io.seisan Not tested -
obspy.io.seiscomp Not tested -
obspy.io.sh Not tested -
obspy.io.shapefile Not tested -
obspy.io.stationtxt Not tested -
obspy.io.stationxml Not tested -
obspy.io.wav Not tested -
obspy.io.win Not tested -
obspy.io.xseed Not tested -
obspy.io.y Not tested -
obspy.io.zmap Not tested -
obspy.realtime Not tested -
obspy.scripts Not tested -
obspy.signal Not tested -
obspy.taup Not tested -
Summary 8 8

Tracebacks (8)

Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/fdsn/tests/test_client.py", line 382, in test_iris_event_catalog_availability
assert {*self.client.services["available_event_catalogs"]} == \
AssertionError: assert {'GCMT\n ', '...'NEIC PDE\n '} == {'GCMT', 'ISC', 'NEIC PDE'}
Extra items in the left set:
'ISC\n '
'GCMT\n '
'NEIC PDE\n '
Extra items in the right set:
'NEIC PDE'
'ISC'
'GCMT'
Full diff:
- {'NEIC PDE', 'ISC', 'GCMT'}
+ {'ISC\n ', 'GCMT\n ', 'NEIC PDE\n '}
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/fdsn/tests/test_client.py", line 814, in test_help_function_with_iris
assert got[-2].startswith('Available catalogs:')
AssertionError: assert False
+ where False = <built-in method startswith of str object at 0x7f6e6075c8f0>('Available catalogs:')
+ where <built-in method startswith of str object at 0x7f6e6075c8f0> = 'HLW'.startswith
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/_pytest/runner.py", line 341, in from_call
result: Optional[TResult] = func()
^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/_pytest/runner.py", line 262, in <lambda>
lambda: ihook(item=item, **kwds), when=when, reraise=reraise
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/pluggy/_callers.py", line 55, in _multicall
gen.send(outcome)
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/_pytest/threadexception.py", line 83, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/_pytest/threadexception.py", line 73, in thread_exception_runtest_hook
warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg))
pytest.PytestUnhandledThreadExceptionWarning: Exception in thread Thread-103
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
self.run()
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/fdsn/client.py", line 1543, in run
code, data = download_url(
^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 0)
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/tests/test_client.py", line 139, in test_evalresp
client.evalresp(network="IU", station="ANMO", location="00",
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/client.py", line 970, in evalresp
data = self._fetch("evalresp", **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/client.py", line 124, in _fetch
response = urllib_request.urlopen(req, timeout=self.timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 216, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 525, in open
response = meth(req, response)
^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 634, in http_response
response = self.parent.error(
^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 563, in error
return self._call_chain(*args)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 496, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 643, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500:
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/client.py", line 331, in timeseries
data = self._fetch("timeseries", param_list=filter, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/client.py", line 124, in _fetch
response = urllib_request.urlopen(req, timeout=self.timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 216, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 525, in open
response = meth(req, response)
^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 634, in http_response
response = self.parent.error(
^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 563, in error
return self._call_chain(*args)
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 496, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/urllib/request.py", line 643, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500:
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/tests/test_client.py", line 268, in test_timeseries
st2 = client.timeseries("IU", "ANMO", "00", "BHZ", t1, t2,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/iris/client.py", line 335, in timeseries
raise Exception(msg)
Exception: No waveform data available (HTTPError: HTTP Error 500: )
cls = <class '_pytest.runner.CallInfo'>
func = <function call_runtest_hook.<locals>.<lambda> at 0x7f6e612c62a0>
when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: "Callable[[], TResult]",
when: "Literal['collect', 'setup', 'call', 'teardown']",
reraise: Optional[
Union[Type[BaseException], Tuple[Type[BaseException], ...]]
] = None,
) -> "CallInfo[TResult]":
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: Optional[TResult] = func()
../_pytest/runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> lambda: ihook(item=item, **kwds), when=when, reraise=reraise
)
../_pytest/runner.py:262:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_HookCaller 'pytest_runtest_call'>, args = ()
kwargs = {'item': <DoctestItem obspy.clients.neic.client.Client.get_waveforms_nscl>}
argname = 'item', firstresult = False
def __call__(self, *args, **kwargs):
if args:
raise TypeError("hook calling supports only keyword arguments")
assert not self.is_historic()
# This is written to avoid expensive operations when not needed.
if self.spec:
for argname in self.spec.argnames:
if argname not in kwargs:
notincall = tuple(set(self.spec.argnames) - kwargs.keys())
warnings.warn(
"Argument(s) {} which are declared in the hookspec "
"can not be found in this hook call".format(notincall),
stacklevel=2,
)
break
firstresult = self.spec.opts.get("firstresult")
else:
firstresult = False
> return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
../pluggy/_hooks.py:265:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.config.PytestPluginManager object at 0x7f6e71c14cd0>
hook_name = 'pytest_runtest_call'
methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/share/miniconda3/envs/test/lib/python3.11/...3e5d0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f6e659693d0>>, ...]
kwargs = {'item': <DoctestItem obspy.clients.neic.client.Client.get_waveforms_nscl>}
firstresult = False
def _hookexec(self, hook_name, methods, kwargs, firstresult):
# called from all hookcaller instances.
# enable_tracing will set its own wrapping function at self._inner_hookexec
> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
../pluggy/_manager.py:80:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook_name = 'pytest_runtest_call'
hook_impls = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/share/miniconda3/envs/test/lib/python3.11/...3e5d0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f6e659693d0>>, ...]
caller_kwargs = {'item': <DoctestItem obspy.clients.neic.client.Client.get_waveforms_nscl>}
firstresult = False
def _multicall(hook_name, hook_impls, caller_kwargs, firstresult):
"""Execute a call into multiple python functions/methods and return the
result(s).
``caller_kwargs`` comes from _HookCaller.__call__().
"""
__tracebackhide__ = True
results = []
excinfo = None
try: # run impl and wrapper setup functions in a loop
teardowns = []
try:
for hook_impl in reversed(hook_impls):
try:
args = [caller_kwargs[argname] for argname in hook_impl.argnames]
except KeyError:
for argname in hook_impl.argnames:
if argname not in caller_kwargs:
raise HookCallError(
f"hook call must provide argument {argname!r}"
)
if hook_impl.hookwrapper:
try:
gen = hook_impl.function(*args)
next(gen) # first yield
teardowns.append(gen)
except StopIteration:
_raise_wrapfail(gen, "did not yield")
else:
res = hook_impl.function(*args)
if res is not None:
results.append(res)
if firstresult: # halt further impl calls
break
except BaseException:
excinfo = sys.exc_info()
finally:
if firstresult: # first result hooks return a single value
outcome = _Result(results[0] if results else None, excinfo)
else:
outcome = _Result(results, excinfo)
# run all wrapper post-yield blocks
for gen in reversed(teardowns):
try:
> gen.send(outcome)
../pluggy/_callers.py:55:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@pytest.hookimpl(hookwrapper=True, tryfirst=True)
def pytest_runtest_call() -> Generator[None, None, None]:
> yield from unraisable_exception_runtest_hook()
../_pytest/unraisableexception.py:88:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
with catch_unraisable_exception() as cm:
yield
if cm.unraisable:
if cm.unraisable.err_msg is not None:
err_msg = cm.unraisable.err_msg
else:
err_msg = "Exception ignored in"
msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
msg += "".join(
traceback.format_exception(
cm.unraisable.exc_type,
cm.unraisable.exc_value,
cm.unraisable.exc_traceback,
)
)
> warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
E pytest.PytestUnraisableExceptionWarning: Exception ignored in: <socket.socket [closed] fd=-1, family=2, type=1, proto=6>
E
E Traceback (most recent call last):
E File "/usr/share/miniconda3/envs/test/lib/python3.11/copy.py", line 264, in <genexpr>
E args = (deepcopy(arg, memo) for arg in args)
E
E ResourceWarning: unclosed <socket.socket [closed] fd=13, family=2, type=1, proto=6>
../_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning
200 Supports ``fnmatch`` wildcards, e.g. ``*`` and ``?``, in ``network``,
201 ``station``, ``location`` and ``channel``.
202
203 >>> client = Client('rtserver.ipgp.fr')
204 >>> info = client.get_info(station="FDFM")
205 >>> print(info)
206 [('G', 'FDFM')]
207 >>> info = client.get_info(station="FD?M", channel='*Z',
208 ... level='channel')
209 >>> print(info) # doctest: +NORMALIZE_WHITESPACE
Expected:
[('G', 'FDFM', '00', 'BHZ'), ('G', 'FDFM', '00', 'HHZ'),
('G', 'FDFM', '00', 'HNZ'), ('G', 'FDFM', '00', 'LHZ'),
('G', 'FDFM', '10', 'BHZ'), ('G', 'FDFM', '10', 'HHZ'),
('G', 'FDFM', '10', 'LHZ')]
Got:
[('G', 'FDFM', '00', 'BHZ'), ('G', 'FDFM', '00', 'HHZ'), ('G', 'FDFM', '00', 'HNZ'), ('G', 'FDFM', '00', 'LHZ'), ('G', 'FDFM', '10', 'HHZ')]
/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/seedlink/basic_client.py:209: DocTestFailure
078 >>> print(st) # doctest: +ELLIPSIS
079 1 Trace(s) in Stream:
080 G.FDFM.00.BHZ | 20... | 20.0 Hz, ... samples
081
082 Most servers support '?' single-character wildcard in location and
083 channel code fields:
084
085 >>> st = client.get_waveforms("G", "FDFM", "??", "B??", t, t + 5)
086 >>> st = st.sort(reverse=True)
087 >>> print(st) # doctest: +ELLIPSIS
Differences (unified diff with -expected +actual):
@@ -1,7 +1,4 @@
-6 Trace(s) in Stream:
-G.FDFM.10.BHZ | 20... | 20.0 Hz, ... samples
-G.FDFM.10.BHN | 20... | 20.0 Hz, ... samples
-G.FDFM.10.BHE | 20... | 20.0 Hz, ... samples
-G.FDFM.00.BHZ | 20... | 20.0 Hz, ... samples
-G.FDFM.00.BHN | 20... | 20.0 Hz, ... samples
-G.FDFM.00.BHE | 20... | 20.0 Hz, ... samples
+3 Trace(s) in Stream:
+G.FDFM.00.BHZ | 2023-05-06T10:48:39.650000Z - 2023-05-06T10:48:44.650000Z | 20.0 Hz, 101 samples
+G.FDFM.00.BHN | 2023-05-06T10:48:39.650000Z - 2023-05-06T10:48:44.650000Z | 20.0 Hz, 101 samples
+G.FDFM.00.BHE | 2023-05-06T10:48:39.650000Z - 2023-05-06T10:48:44.650000Z | 20.0 Hz, 101 samples
/usr/share/miniconda3/envs/test/lib/python3.11/site-packages/obspy/clients/seedlink/basic_client.py:87: DocTestFailure

Skipped tests (5)

Submodule Test Skip message
clients.fdsn clients/fdsn/tests/test_client.py::TestClient::test_trim_stream_after_get_waveform Skipped: data no longer available
clients.fdsn clients/fdsn/tests/test_client.py::TestClient::test_eida_token_resolution Skipped: Token is expired
clients.seedlink clients/seedlink/tests/test_slclient.py::TestSLClient::test_info Skipped: test must be started manually
clients.seedlink clients/seedlink/tests/test_slclient.py::TestSLClient::test_time_window Skipped: test must be started manually
clients.seedlink clients/seedlink/tests/test_slclient.py::TestSLClient::test_issue708 Skipped: test must be started manually

Slowest tests (20)

Runtime Test
9.738s clients/fdsn/tests/test_client.py::TestClient::test_irisph5_event
9.026s clients/fdsn/tests/test_eidaws_routing_client.py::TestEIDAWSRoutingClient::test_get_waveforms_integration_test
7.994s clients/syngine/tests/test_client.py::TestClient::test_get_available_models
7.595s clients/fdsn/tests/test_client.py::TestClient::test_dataselect_bulk
4.982s clients/fdsn/tests/test_client.py::TestClient::test_iris_example_queries_dataselect
4.731s clients/fdsn/tests/test_client.py::TestClient::test_iris_example_queries_dataselect_discover_services_false
3.957s clients/syngine/tests/test_client.py::TestClient::test_get_waveforms
3.672s clients/fdsn/client.py::obspy.clients.fdsn.client.Client.get_waveforms_bulk
3.357s clients/syngine/__init__.py::obspy.clients.syngine
3.288s clients/fdsn/tests/test_client.py::TestClient::test_redirection_auth
3.278s clients/fdsn/tests/test_client.py::TestClient::test_redirection
3.013s clients/fdsn/client.py::obspy.clients.fdsn.client.Client.get_waveforms
2.968s clients/fdsn/tests/test_federator_routing_client.py::TestFederatorRoutingClient::test_get_waveforms_integration_test
2.774s clients/iris/tests/test_client.py::TestClient::test_resp
2.688s clients/nrl/client.py::obspy.clients.nrl.client.NRL.get_response
2.251s clients/seedlink/tests/test_basic_client.py::TestClient::test_multiple_waveform_requests_with_multiple_info_requests
2.142s clients/iris/tests/test_client.py::TestClient::test_flinnengdahl
2.116s clients/fdsn/tests/test_eidaws_routing_client.py::TestEIDAWSRoutingClient::test_get_stations_integration_test
2.057s clients/fdsn/__init__.py::obspy.clients.fdsn
1.886s clients/syngine/client.py::obspy.clients.syngine.client.Client.get_waveforms_bulk