mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-21 19:07:46 +01:00
1bc9efd529
* Consts for regex * Add regex for camera username and password * Redact user:pass from ffmpeg logs * Redact ffmpeg commands * Move common function to util * Add tests * Formatting * Remove unused imports * Fix test * Add port to test * Support special characters in passwords * Add tests for special character handling * Remove docs about not supporting special characters
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
"""Test camera user and password cleanup."""
|
|
|
|
import unittest
|
|
|
|
from frigate.util import clean_camera_user_pass, escape_special_characters
|
|
|
|
|
|
class TestUserPassCleanup(unittest.TestCase):
|
|
def setUp(self) -> None:
|
|
self.rtsp_with_pass = "rtsp://user:password@192.168.0.2:554/live"
|
|
self.rtsp_with_special_pass = "rtsp://user:password#$@@192.168.0.2:554/live"
|
|
self.rtsp_no_pass = "rtsp://192.168.0.3:554/live"
|
|
|
|
def test_cleanup(self):
|
|
"""Test that user / pass are cleaned up."""
|
|
clean = clean_camera_user_pass(self.rtsp_with_pass)
|
|
assert clean != self.rtsp_with_pass
|
|
assert "user:password" not in clean
|
|
|
|
def test_no_cleanup(self):
|
|
"""Test that nothing changes when no user / pass are defined."""
|
|
clean = clean_camera_user_pass(self.rtsp_no_pass)
|
|
assert clean == self.rtsp_no_pass
|
|
|
|
def test_special_char_password(self):
|
|
"""Test that special characters in pw are escaped, but not others."""
|
|
escaped = escape_special_characters(self.rtsp_with_special_pass)
|
|
assert escaped == "rtsp://user:password%23%24%40@192.168.0.2:554/live"
|
|
|
|
def test_no_special_char_password(self):
|
|
"""Test that no change is made to path with no special characters."""
|
|
escaped = escape_special_characters(self.rtsp_with_pass)
|
|
assert escaped == self.rtsp_with_pass
|