ForcePilot/backend/test/unit/channel/security/test_qr_binding.py
Kris bab30f2715
Some checks failed
Deploy VitePress site to Pages / build (push) Has been cancelled
Ruff Format Check / Ruff Format & Lint (push) Has been cancelled
Deploy VitePress site to Pages / Deploy (push) Has been cancelled
feat:0715
2026-07-15 12:30:58 +08:00

57 lines
2.0 KiB
Python

from __future__ import annotations
import pytest
from yuxi.channel.security.qr_binding import PairingQRGenerator
@pytest.fixture
def qr_generator() -> PairingQRGenerator:
return PairingQRGenerator()
@pytest.mark.unit
class TestPairingQRGeneratorGenerateContent:
def test_plain_mode_returns_raw_code(self, qr_generator: PairingQRGenerator) -> None:
code = "123456"
result = qr_generator.generate_content(code, "feishu", "acc_1", "peer_1", mode="plain")
assert result == code
def test_link_mode_returns_url_when_base_url_provided(self, qr_generator: PairingQRGenerator) -> None:
generator = PairingQRGenerator(base_url="https://example.com")
result = generator.generate_content("123456", "feishu", "acc_1", "peer_1", mode="link")
assert result == ("https://example.com/pairing?code=123456&channel=feishu&account=acc_1&peer_id=peer_1")
def test_link_mode_falls_back_to_code_when_base_url_missing(self, qr_generator: PairingQRGenerator) -> None:
code = "123456"
result = qr_generator.generate_content(code, "feishu", "acc_1", "peer_1", mode="link")
assert result == code
@pytest.mark.unit
class TestPairingQRGeneratorGenerateImage:
PNG_HEADER = b"\x89PNG\r\n\x1a\n"
def test_generate_image_returns_png_bytes(self, qr_generator: PairingQRGenerator) -> None:
image = qr_generator.generate_image("test-content")
assert image
assert isinstance(image, bytes)
assert image.startswith(self.PNG_HEADER)
@pytest.mark.parametrize(
("box_size", "border"),
[
(1, 0),
(10, 2),
(20, 5),
],
)
def test_generate_image_with_various_sizes(
self,
qr_generator: PairingQRGenerator,
box_size: int,
border: int,
) -> None:
image = qr_generator.generate_image("test-content", box_size=box_size, border=border)
assert image
assert image.startswith(self.PNG_HEADER)