61 lines
1.5 KiB
Python
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
|