25 lines
838 B
Python
25 lines
838 B
Python
from desktop_mark.models import Annotation, AnnotationProject, AnnotationType, Rect, WindowInfo
|
|
from desktop_mark.storage import project_from_dict, project_to_dict
|
|
|
|
|
|
def test_project_json_round_trip() -> None:
|
|
project = AnnotationProject(
|
|
window=WindowInfo(123, "记事本", "notepad.exe", Rect(1, 2, 300, 400)),
|
|
custom_window_name="登录页",
|
|
window_description="用户登录窗口",
|
|
annotations=[
|
|
Annotation(
|
|
id="a1",
|
|
rect=Rect(10, 20, 30, 40),
|
|
control_name="用户名输入框",
|
|
description="输入登录用户名",
|
|
type=AnnotationType.INPUT,
|
|
actions=["input_text"],
|
|
)
|
|
],
|
|
)
|
|
|
|
restored = project_from_dict(project_to_dict(project))
|
|
|
|
assert restored == project
|