from hookvision.models import ( ModuleType, CameraPosition, CameraState, SwitchMode, HookState, CameraModel, BucketModel, NVRModel, AIConfig, ModbusConfig, SocketConfig, VideoConfig, Config ) class TestEnums: def test_module_type(self): assert ModuleType.RFID.value == "RFID" assert ModuleType.HD3200.value == "HD3200" def test_camera_position(self): assert CameraPosition.LEFT.value == "left" assert CameraPosition.RIGHT.value == "right" def test_camera_state(self): assert CameraState.ONLINE.value == "online" assert CameraState.OFFLINE.value == "offline" def test_switch_mode(self): assert SwitchMode.AUTO.value == "auto" assert SwitchMode.HAND.value == "hand" def test_hook_state(self): assert HookState.IDLE.value == "idle" assert HookState.RELEASING.value == "releasing" assert HookState.HOOKING.value == "hooking" assert HookState.READY.value == "ready" class TestModels: def test_camera_model_defaults(self): cam = CameraModel(position=CameraPosition.LEFT, rtsp_url="rtsp://test") assert cam.position == CameraPosition.LEFT assert cam.rtsp_url == "rtsp://test" assert cam.topic is None assert cam.state == CameraState.OFFLINE def test_bucket_model_defaults(self): b = BucketModel(id=1, description="test", code_x="X001") assert b.code_y == "" assert b.cameras == [] assert b.is_active is False assert b.ready_x is False assert b.ready_y is True def test_nvr_model_defaults(self): nvr = NVRModel(id=0, name="test", ip="192.168.1.1") assert nvr.port == 8000 assert nvr.username == "admin" assert nvr.password == "" def test_ai_config_defaults(self): ai = AIConfig() assert ai.enabled is False assert ai.broker == "127.0.0.1" assert ai.port == 1883 assert ai.topics == [] def test_modbus_config(self): m = ModbusConfig(ip="192.168.1.1") assert m.port == 502 assert m.frequency == 100 assert m.stability_count == 3 def test_socket_config(self): s = SocketConfig(ip="192.168.1.1") assert s.port == 6000 assert s.stability_time == 20 assert s.stability_count == 3 def test_video_config_defaults(self): v = VideoConfig() assert v.rtsp_timeout == 5.0 def test_config_defaults(self): c = Config() assert c.app_name == "钢包工位视频监测系统" assert c.module_type == ModuleType.RFID assert c.buckets == [] assert c.nvrs == [] assert c.rfid is None assert c.modbus is None