test_models.py 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. from hookvision.models import (
  2. ModuleType, CameraPosition, CameraState, SwitchMode, HookState,
  3. CameraModel, BucketModel, NVRModel, 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_nvr_model_defaults(self):
  39. nvr = NVRModel(id=0, name="test", ip="192.168.1.1")
  40. assert nvr.port == 8000
  41. assert nvr.username == "admin"
  42. assert nvr.password == ""
  43. def test_ai_config_defaults(self):
  44. ai = AIConfig()
  45. assert ai.enabled is False
  46. assert ai.broker == "127.0.0.1"
  47. assert ai.port == 1883
  48. assert ai.topics == []
  49. def test_modbus_config(self):
  50. m = ModbusConfig(ip="192.168.1.1")
  51. assert m.port == 502
  52. assert m.frequency == 100
  53. assert m.stability_count == 3
  54. def test_socket_config(self):
  55. s = SocketConfig(ip="192.168.1.1")
  56. assert s.port == 6000
  57. assert s.stability_time == 20
  58. assert s.stability_count == 3
  59. def test_video_config_defaults(self):
  60. v = VideoConfig()
  61. assert v.rtsp_timeout == 5.0
  62. def test_config_defaults(self):
  63. c = Config()
  64. assert c.app_name == "钢包工位视频监测系统"
  65. assert c.module_type == ModuleType.RFID
  66. assert c.buckets == []
  67. assert c.nvrs == []
  68. assert c.rfid is None
  69. assert c.modbus is None