diff --git a/src/pms/core/reader.py b/src/pms/core/reader.py index 0571256..ef5e1eb 100644 --- a/src/pms/core/reader.py +++ b/src/pms/core/reader.py @@ -61,6 +61,15 @@ def __call__(self, *, raw: bool | None = None) -> Iterator[RawData | ObsData]: """ ... + def start(self) -> None: + self.__enter__() + + def read_one(self, *, raw: bool | None = None) -> RawData | ObsData: + return next(self(raw=raw)) + + def stop(self) -> None: + self.__exit__(None, None, None) + class SensorReader(Reader): """Read sensor messages from serial port diff --git a/tests/core/test_reader.py b/tests/core/test_reader.py index dc06433..fd60eec 100644 --- a/tests/core/test_reader.py +++ b/tests/core/test_reader.py @@ -9,20 +9,17 @@ class MockReader(reader.Reader): def __init__(self, raise_on_enter=False): self.raise_on_enter = raise_on_enter - def read_one(self): - raise NotImplemented - def __call__(self): raise NotImplemented - def open(self): + def __exit__(self, *args, **kwargs): + self.exited = True + + def __enter__(self): if self.raise_on_enter: raise reader.UnableToRead() self.entered = True - def close(self): - self.exited = True - @pytest.fixture def mock_sleep(monkeypatch):