mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-23 17:40:02 +02:00
30 lines
1.0 KiB
Python
30 lines
1.0 KiB
Python
import pydase.units as u
|
|
from pydase import DataService
|
|
from pydase.data_service.data_service_observer import DataServiceObserver
|
|
from pydase.data_service.state_manager import StateManager
|
|
from pytest import LogCaptureFixture
|
|
|
|
|
|
def test_unexpected_type_change_warning(caplog: LogCaptureFixture) -> None:
|
|
class ServiceClass(DataService):
|
|
attr_1 = 1.0
|
|
current = 1.0 * u.units.A
|
|
|
|
service_instance = ServiceClass()
|
|
state_manager = StateManager(service_instance)
|
|
DataServiceObserver(state_manager)
|
|
service_instance.attr_1 = 2
|
|
|
|
assert "'attr_1' changed to '2'" in caplog.text
|
|
assert (
|
|
"Type of 'attr_1' changed from 'float' to 'int'. This may have unwanted "
|
|
"side effects! Consider setting it to 'float' directly." in caplog.text
|
|
)
|
|
|
|
service_instance.current = 2
|
|
assert "'current' changed to '2'" in caplog.text
|
|
assert (
|
|
"Type of 'current' changed from 'Quantity' to 'int'. This may have unwanted "
|
|
"side effects! Consider setting it to 'Quantity' directly." in caplog.text
|
|
)
|