diff --git a/pyproject.toml b/pyproject.toml index ea596d9..b70a6d4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -61,6 +61,15 @@ exclude = ["eventio._dev_version"] [tool.setuptools_scm] version_file = "src/eventio/_version.py" - -[tool.pytest] -addopts = "-v --durations=10" +[tool.pytest.ini_options] +minversion = "7" +testpaths = ["tests"] +log_cli_level = "INFO" +xfail_strict = true +# print summary of failed tests, force errors if settings are misspelled +addopts = ["-ra", "--strict-config", "--strict-markers", "-v", "--durations=10"] +filterwarnings = [ + "error", + "ignore:File seems to be truncated:UserWarning", + "ignore:Version unknown:UserWarning", # pycorsikaio +] diff --git a/src/eventio/base.py b/src/eventio/base.py index 7cb36f8..61ef7b4 100644 --- a/src/eventio/base.py +++ b/src/eventio/base.py @@ -48,7 +48,7 @@ def seek(self, offset, whence=0): return self.pos def close(self): - return self.pipe.close() + pass def tell(self): return self.pos @@ -144,9 +144,16 @@ def __exit__(self, exc_type, exc_value, traceback): self.close() def close(self): - self._filehandle.close() if self.read_process is not None: self.read_process.terminate() + self.read_process.stdout.close() + self.read_process.stderr.close() + self.read_process.wait(timeout=1) + + self._filehandle.close() + + def __del__(self): + self.close() def check_size_or_raise(data, expected_length, zero_ok=True): diff --git a/tests/simtel/test_compare_hessio.py b/tests/simtel/test_compare_hessio.py index 57e69ff..1a798fe 100644 --- a/tests/simtel/test_compare_hessio.py +++ b/tests/simtel/test_compare_hessio.py @@ -1,5 +1,4 @@ import pytest -from pkg_resources import resource_filename import numpy as np pyhessio = pytest.importorskip("pyhessio") diff --git a/tests/test_open_file.py b/tests/test_open_file.py index 82012a3..0c59c88 100644 --- a/tests/test_open_file.py +++ b/tests/test_open_file.py @@ -58,8 +58,7 @@ def test_types_gzip(): def test_types_zcat(): from eventio.base import PipeWrapper testfile = 'tests/resources/one_shower.dat.gz' - f = eventio.EventIOFile(testfile) - - assert isinstance(f._filehandle, PipeWrapper) - types = [o.header.type for o in f] - assert types == [1200, 1212, 1201, 1202, 1203, 1204, 1209, 1210] + with eventio.EventIOFile(testfile) as f: + assert isinstance(f._filehandle, PipeWrapper) + types = [o.header.type for o in f] + assert types == [1200, 1212, 1201, 1202, 1203, 1204, 1209, 1210]