#127725 Report by node gh-actions covering 200 tests from 61 modules resulted into 3 errors

Report

ObsPy version
1.3.0.post0+176.g1312df82b2
GitHub Pull Request
https://github.com/obspy/obspy/pull/3158
Report file
JSON document
Total runtime
171.4 sec
Report date/time
Sept. 29, 2022, 9:34 a.m.

System / Python

Architecture
64bit
Machine
x86_64
Node
gh-actions
Processor
x86_64
Python Compiler
GCC 10.4.0
Python Implementation
CPython
Python Version
3.10.6
Release
5.15.0-1020-azure
System
Linux
Version
#25~20.04.1-Ubuntu SMP Thu Sep 1 19:20:56 UTC 2022

Dependencies

cartopy
0.21.0
decorator
5.1.1
flake8
---
geographiclib
2.0
lxml
4.9.1
matplotlib
3.6.0
numpy
1.23.3
obspy
1.3.0.post0+176.g1312df82b2
pyproj
3.4.0
pytest
7.1.3
pytest-json-report
1.5.0
requests
2.28.1
scipy
1.9.1
setuptools
65.4.0
shapefile
---
sqlalchemy
1.4.41

Modules (61)

Module Errors / Failures Tracebacks
obspy.clients Not tested -
obspy.clients.earthworm 1 1
obspy.clients.fdsn 2 2 3
obspy.clients.filesystem Not tested -
obspy.clients.iris - -
obspy.clients.neic - -
obspy.clients.nrl - -
obspy.clients.seedlink - -
obspy.clients.seishub Not tested -
obspy.clients.syngine - -
obspy.core Not tested -
obspy.core.event Not tested -
obspy.core.inventory Not tested -
obspy.core.util Not tested -
obspy.db Not tested -
obspy.geodetics Not tested -
obspy.imaging Not tested -
obspy.io.ah 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.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 3 3

Tracebacks (3)

cls = <class '_pytest.runner.CallInfo'>
func = <function call_runtest_hook.<locals>.<lambda> at 0x7fd4e702af80>
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:338:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> lambda: ihook(item=item, **kwds), when=when, reraise=reraise
)
../_pytest/runner.py:259:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_HookCaller 'pytest_runtest_call'>, args = ()
kwargs = {'item': <DoctestItem obspy.clients.earthworm>}, 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 0x7fd4f594cac0>
hook_name = 'pytest_runtest_call'
methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/usr/share/miniconda3/envs/test/lib/python3.10/...27be0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7fd4e71d3130>>, ...]
kwargs = {'item': <DoctestItem obspy.clients.earthworm>}, 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.10/...27be0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7fd4e71d3130>>, ...]
caller_kwargs = {'item': <DoctestItem obspy.clients.earthworm>}
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 fd=-1, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0>
E
E Traceback (most recent call last):
E File "/usr/share/miniconda3/envs/test/lib/python3.10/site-packages/obspy/clients/earthworm/client.py", line 107, in get_waveforms
E tbl = read_wave_server_v(self.host, self.port, scnl, starttime,
E ResourceWarning: unclosed <socket.socket fd=14, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('10.1.0.93', 42166), raddr=('130.118.181.39', 16022)>
../_pytest/unraisableexception.py:78: PytestUnraisableExceptionWarning
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.10/site-packages/obspy/clients/fdsn/tests/test_client.py", line 865, in test_help_function_with_iris
self.assertTrue(got[-2].startswith('Available catalogs:'))
File "/usr/share/miniconda3/envs/test/lib/python3.10/unittest/case.py", line 687, in assertTrue
raise self.failureException(msg)
AssertionError: False is not true
Traceback (most recent call last):
File "/usr/share/miniconda3/envs/test/lib/python3.10/site-packages/obspy/clients/fdsn/tests/test_client.py", line 415, in test_iris_event_catalog_availability
self.assertEqual(set(self.client.services["available_event_catalogs"]),
File "/usr/share/miniconda3/envs/test/lib/python3.10/unittest/case.py", line 845, in assertEqual
assertion_func(first, second, msg=msg)
File "/usr/share/miniconda3/envs/test/lib/python3.10/unittest/case.py", line 1105, in assertSetEqual
self.fail(self._formatMessage(msg, standardMsg))
File "/usr/share/miniconda3/envs/test/lib/python3.10/unittest/case.py", line 675, in fail
raise self.failureException(msg)
AssertionError: Items in the first set but not the second:
'ISC\n '
'GCMT\n '
'NEIC PDE\n '
Items in the second set but not the first:
'NEIC PDE'
'GCMT'
'ISC'

Skipped tests (5)

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

Slowest tests (20)

Runtime Test
15.501s clients/fdsn/tests/test_client.py::ClientTestCase::test_irisph5_event
9.548s clients/syngine/tests/test_client.py::ClientTestCase::test_get_available_models
7.817s clients/fdsn/tests/test_client.py::ClientTestCase::test_redirection
7.296s clients/fdsn/tests/test_eidaws_routing_client.py::EIDAWSRoutingClientTestCase::test_get_waveforms_integration_test
7.129s clients/fdsn/tests/test_client.py::ClientTestCase::test_redirection_auth
6.915s clients/fdsn/tests/test_client.py::ClientTestCase::test_dataselect_bulk
6.120s clients/fdsn/__init__.py::obspy.clients.fdsn
5.978s clients/fdsn/tests/test_client.py::ClientTestCase::test_iris_example_queries_dataselect
4.305s clients/fdsn/tests/test_client.py::ClientTestCase::test_set_credentials
4.300s clients/seedlink/basic_client.py::obspy.clients.seedlink.basic_client.Client.get_waveforms
4.213s clients/fdsn/tests/test_client.py::ClientTestCase::test_iris_example_queries_dataselect_discover_services_false
4.077s clients/fdsn/tests/test_eidaws_routing_client.py::EIDAWSRoutingClientTestCase::test_get_stations_integration_test
4.051s clients/syngine/tests/test_client.py::ClientTestCase::test_get_waveforms
3.407s clients/seedlink/tests/test_basic_client.py::ClientTestCase::test_multiple_waveform_requests_with_multiple_info_requests
3.286s clients/syngine/__init__.py::obspy.clients.syngine
2.716s clients/fdsn/client.py::obspy.clients.fdsn.client.Client.get_waveforms
2.393s clients/iris/tests/test_client.py::ClientTestCase::test_resp
2.390s clients/syngine/tests/test_client.py::ClientTestCase::test_source_mechanisms_mock
2.208s clients/fdsn/tests/test_federator_routing_client.py::FederatorRoutingClientTestCase::test_get_waveforms_integration_test
2.114s clients/iris/tests/test_client.py::ClientTestCase::test_evalresp