PlatSim_Genova/TestEnvironment/env/site-packages/pyvisa/testsuite/test_event.py
2026-01-30 16:38:33 +01:00

61 lines
1.5 KiB
Python

# -*- coding: utf-8 -*-
"""Test events classes.
This file is part of PyVISA.
:copyright: 2019-2022 by PyVISA Authors, see AUTHORS for more details.
:license: MIT, see LICENSE for more details.
"""
import logging
import pytest
from pyvisa import constants, errors
from pyvisa.events import Event
from . import BaseTestCase
class TestEvent(BaseTestCase):
"""Test Event functionalities."""
def setup_method(self):
self.old = Event._event_classes.copy()
def teardown_method(self):
Event._event_classes = self.old
def test_register(self):
assert Event._event_classes[constants.EventType.clear] is Event
def test_double_register_event_cls(self, caplog):
class SubEvent(Event):
pass
with caplog.at_level(logging.DEBUG, logger="pyvisa"):
Event.register(constants.EventType.clear)(SubEvent)
assert caplog.records
assert Event._event_classes[constants.EventType.clear] is SubEvent
def test_register_event_cls_missing_attr(self):
class SubEvent(Event):
pass
with pytest.raises(TypeError):
Event.register(constants.EventType.exception)(SubEvent)
assert Event._event_classes[constants.EventType.exception] is not SubEvent
def test_event_context(self):
event = Event(None, constants.EventType.clear, 1)
assert event.context == 1
event.close()
with pytest.raises(errors.InvalidSession):
event.context