mirror of
https://github.com/smittix/intercept.git
synced 2026-06-19 02:49:45 -07:00
30450295b5
Auth fixture, /listening->/receiver waterfall rename, numeric validator returns, and float timestamp — all matching current code behaviour. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
117 lines
3.8 KiB
Python
117 lines
3.8 KiB
Python
"""Comprehensive tests for validation utilities."""
|
|
|
|
import pytest
|
|
|
|
from utils.validation import (
|
|
validate_device_index,
|
|
validate_frequency,
|
|
validate_gain,
|
|
validate_rtl_tcp_host,
|
|
validate_rtl_tcp_port,
|
|
)
|
|
|
|
|
|
class TestFrequencyValidation:
|
|
"""Tests for frequency validation."""
|
|
|
|
def test_valid_frequencies(self):
|
|
"""Test valid frequency values."""
|
|
assert validate_frequency("152.0") == 152.0
|
|
assert validate_frequency(152.0) == 152.0
|
|
assert validate_frequency("1090") == 1090.0
|
|
assert validate_frequency(433.92) == 433.92
|
|
|
|
def test_frequency_range(self):
|
|
"""Test frequency range limits."""
|
|
# RTL-SDR typical range: 24MHz - 1766MHz
|
|
assert validate_frequency("24") == 24.0
|
|
assert validate_frequency("1700") == 1700.0
|
|
|
|
def test_invalid_frequencies(self):
|
|
"""Test invalid frequency values."""
|
|
with pytest.raises(ValueError):
|
|
validate_frequency("")
|
|
with pytest.raises(ValueError):
|
|
validate_frequency("abc")
|
|
with pytest.raises(ValueError):
|
|
validate_frequency(-100)
|
|
with pytest.raises(ValueError):
|
|
validate_frequency(0)
|
|
|
|
|
|
class TestGainValidation:
|
|
"""Tests for gain validation."""
|
|
|
|
def test_valid_gains(self):
|
|
"""Test valid gain values."""
|
|
assert validate_gain("0") == 0.0
|
|
assert validate_gain("40") == 40.0
|
|
assert validate_gain(49.6) == 49.6
|
|
|
|
def test_invalid_gains(self):
|
|
"""Test invalid gain values."""
|
|
with pytest.raises(ValueError):
|
|
validate_gain(-10)
|
|
with pytest.raises(ValueError):
|
|
validate_gain("invalid")
|
|
|
|
|
|
class TestDeviceIndexValidation:
|
|
"""Tests for device index validation."""
|
|
|
|
def test_valid_indices(self):
|
|
"""Test valid device indices."""
|
|
assert validate_device_index("0") == 0
|
|
assert validate_device_index(0) == 0
|
|
assert validate_device_index("1") == 1
|
|
assert validate_device_index(3) == 3
|
|
|
|
def test_invalid_indices(self):
|
|
"""Test invalid device indices."""
|
|
with pytest.raises(ValueError):
|
|
validate_device_index(-1)
|
|
with pytest.raises(ValueError):
|
|
validate_device_index("abc")
|
|
|
|
|
|
class TestRtlTcpHostValidation:
|
|
"""Tests for RTL-TCP host validation."""
|
|
|
|
def test_valid_hosts(self):
|
|
"""Test valid host values."""
|
|
assert validate_rtl_tcp_host("localhost") == "localhost"
|
|
assert validate_rtl_tcp_host("127.0.0.1") == "127.0.0.1"
|
|
assert validate_rtl_tcp_host("192.168.1.1") == "192.168.1.1"
|
|
assert validate_rtl_tcp_host("server.example.com") == "server.example.com"
|
|
|
|
def test_invalid_hosts(self):
|
|
"""Test invalid host values."""
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_host("")
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_host("invalid host with spaces")
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_host("host;rm -rf /")
|
|
|
|
|
|
class TestRtlTcpPortValidation:
|
|
"""Tests for RTL-TCP port validation."""
|
|
|
|
def test_valid_ports(self):
|
|
"""Test valid port values."""
|
|
assert validate_rtl_tcp_port(1234) == 1234
|
|
assert validate_rtl_tcp_port("1234") == 1234
|
|
assert validate_rtl_tcp_port(30003) == 30003
|
|
assert validate_rtl_tcp_port(65535) == 65535
|
|
|
|
def test_invalid_ports(self):
|
|
"""Test invalid port values."""
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_port(0)
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_port(-1)
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_port(70000)
|
|
with pytest.raises(ValueError):
|
|
validate_rtl_tcp_port("abc")
|