mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-04-05 14:47:40 +03:00
Add tests for move_relative command parameter parsing
Verify the underscore-delimited parameter format handles both the original pan+tilt format and the new pan+tilt+zoom format correctly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
190cc6054a
commit
2249217d93
40
frigate/test/test_ptz_commands.py
Normal file
40
frigate/test/test_ptz_commands.py
Normal file
@ -0,0 +1,40 @@
|
||||
from unittest import TestCase, main
|
||||
|
||||
|
||||
class TestMoveRelativeParsing(TestCase):
|
||||
"""Test the move_relative command parameter parsing logic."""
|
||||
|
||||
def _parse_move_relative(self, param: str):
|
||||
"""Replicate the parsing logic from OnvifController.handle_command_async."""
|
||||
parts = param.split("_")
|
||||
_, pan, tilt = parts[0], parts[1], parts[2]
|
||||
zoom = float(parts[3]) if len(parts) > 3 else 0
|
||||
return float(pan), float(tilt), zoom
|
||||
|
||||
def test_pan_tilt_only(self):
|
||||
pan, tilt, zoom = self._parse_move_relative("move_0.5_-0.3")
|
||||
self.assertAlmostEqual(pan, 0.5)
|
||||
self.assertAlmostEqual(tilt, -0.3)
|
||||
self.assertAlmostEqual(zoom, 0)
|
||||
|
||||
def test_pan_tilt_with_zoom(self):
|
||||
pan, tilt, zoom = self._parse_move_relative("move_0.5_-0.3_0.8")
|
||||
self.assertAlmostEqual(pan, 0.5)
|
||||
self.assertAlmostEqual(tilt, -0.3)
|
||||
self.assertAlmostEqual(zoom, 0.8)
|
||||
|
||||
def test_zero_zoom(self):
|
||||
pan, tilt, zoom = self._parse_move_relative("move_0.0_0.0_0.0")
|
||||
self.assertAlmostEqual(pan, 0.0)
|
||||
self.assertAlmostEqual(tilt, 0.0)
|
||||
self.assertAlmostEqual(zoom, 0.0)
|
||||
|
||||
def test_negative_values(self):
|
||||
pan, tilt, zoom = self._parse_move_relative("move_-1.0_-1.0_0.5")
|
||||
self.assertAlmostEqual(pan, -1.0)
|
||||
self.assertAlmostEqual(tilt, -1.0)
|
||||
self.assertAlmostEqual(zoom, 0.5)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main(verbosity=2)
|
||||
Loading…
Reference in New Issue
Block a user