test_models.py 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. from hookvision.models import (
  2. ModuleType, CameraPosition, CameraState, SwitchMode, HookState,
  3. CameraModel, BucketModel, AIConfig, ModbusConfig,
  4. SocketConfig, VideoConfig, Config
  5. )
  6. class TestEnums:
  7. def test_module_type(self):
  8. assert ModuleType.RFID.value == "RFID"
  9. assert ModuleType.HD3200.value == "HD3200"
  10. def test_camera_position(self):
  11. assert CameraPosition.LEFT.value == "left"
  12. assert CameraPosition.RIGHT.value == "right"
  13. def test_camera_state(self):
  14. assert CameraState.ONLINE.value == "online"
  15. assert CameraState.OFFLINE.value == "offline"
  16. def test_switch_mode(self):
  17. assert SwitchMode.AUTO.value == "auto"
  18. assert SwitchMode.HAND.value == "hand"
  19. def test_hook_state(self):
  20. assert HookState.IDLE.value == "idle"
  21. assert HookState.RELEASING.value == "releasing"
  22. assert HookState.HOOKING.value == "hooking"
  23. assert HookState.READY.value == "ready"
  24. class TestModels:
  25. def test_camera_model_defaults(self):
  26. cam = CameraModel(position=CameraPosition.LEFT, rtsp_url="rtsp://test")
  27. assert cam.position == CameraPosition.LEFT
  28. assert cam.rtsp_url == "rtsp://test"
  29. assert cam.topic is None
  30. assert cam.state == CameraState.OFFLINE
  31. def test_bucket_model_defaults(self):
  32. b = BucketModel(id=1, description="test", code_x="X001")
  33. assert b.code_y == ""
  34. assert b.cameras == []
  35. assert b.is_active is False
  36. assert b.ready_x is False
  37. assert b.ready_y is True
  38. def test_ai_config_defaults(self):
  39. ai = AIConfig()
  40. assert ai.enabled is False
  41. assert ai.tts_enabled is False
  42. assert ai.offset_ratio_tolerance == 0.25
  43. assert ai.ready_debounce == 3
  44. assert ai.auto_calib_ready_frames == 3
  45. assert ai.auto_calib_duration_secs == 1.0
  46. assert ai.auto_calib_min_samples == 2
  47. def test_modbus_config(self):
  48. m = ModbusConfig(ip="192.168.1.1")
  49. assert m.port == 502
  50. assert m.frequency == 100
  51. assert m.stability_count == 3
  52. def test_socket_config(self):
  53. s = SocketConfig(ip="192.168.1.1")
  54. assert s.port == 6000
  55. assert s.stability_time == 20
  56. assert s.stability_count == 3
  57. def test_video_config_defaults(self):
  58. v = VideoConfig()
  59. assert v.rtsp_timeout == 5.0
  60. def test_config_defaults(self):
  61. c = Config()
  62. assert c.app_name == "钢包工位视频监测系统"
  63. assert c.module_type == ModuleType.RFID
  64. assert c.buckets == []
  65. assert c.rfid is None
  66. assert c.modbus is None