mirror of
https://github.com/tiqi-group/pydase.git
synced 2025-04-21 16:50:02 +02:00
55 lines
1.7 KiB
Python
55 lines
1.7 KiB
Python
import json
|
|
import logging
|
|
import tempfile
|
|
from pathlib import Path
|
|
|
|
import pydase
|
|
from pydase.data_service.data_service_observer import DataServiceObserver
|
|
from pydase.data_service.state_manager import StateManager
|
|
from pydase.server.web_server.web_server import WebServer
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
def test_web_settings() -> None:
|
|
class SubClass(pydase.DataService):
|
|
name = "Hello"
|
|
|
|
class ServiceClass(pydase.DataService):
|
|
def __init__(self) -> None:
|
|
super().__init__()
|
|
self.attr_1 = SubClass()
|
|
self.added = "added"
|
|
|
|
service_instance = ServiceClass()
|
|
state_manager = StateManager(service_instance)
|
|
observer = DataServiceObserver(state_manager)
|
|
with tempfile.TemporaryDirectory() as tmp:
|
|
web_settings = {
|
|
"attr_1": {"displayName": "Attribute", "display": False},
|
|
"attr_1.name": {"displayName": "Attribute name", "display": True},
|
|
}
|
|
web_settings_file = Path(tmp) / "web_settings.json"
|
|
|
|
with web_settings_file.open("w") as file:
|
|
file.write(json.dumps(web_settings))
|
|
|
|
server = WebServer(
|
|
observer,
|
|
host="0.0.0.0",
|
|
port=8001,
|
|
generate_web_settings=True,
|
|
config_dir=Path(tmp),
|
|
)
|
|
new_web_settings = server.web_settings
|
|
|
|
# existing entries are not overwritten, new entries are appended
|
|
assert new_web_settings == {
|
|
**web_settings,
|
|
"added": {"displayName": "added", "display": True},
|
|
}
|
|
assert json.loads(web_settings_file.read_text()) == {
|
|
**web_settings,
|
|
"added": {"displayName": "added", "display": True},
|
|
}
|