"""Tests for identicon and QR code generation. Replaces Java's ZXing + Identicon with Python qrcode + hash-based grid. """ from __future__ import annotations import pytest from i2p_apps.console.identicon import ( generate_identicon_svg, generate_qr_svg, ) class TestIdenticon: """Hash-based visual identicon for router/destination hashes.""" def test_generates_svg(self): svg = generate_identicon_svg("abc123def456") assert svg.startswith("" in svg def test_deterministic(self): s1 = generate_identicon_svg("same_hash") s2 = generate_identicon_svg("same_hash") assert s1 == s2 def test_different_hashes_different_icons(self): s1 = generate_identicon_svg("hash_aaa") s2 = generate_identicon_svg("hash_bbb") assert s1 != s2 def test_custom_size(self): svg = generate_identicon_svg("test", size=128) assert 'width="128"' in svg def test_default_size(self): svg = generate_identicon_svg("test") assert 'width="64"' in svg class TestQRCode: """QR code generation for I2P destinations.""" def test_generates_svg(self): svg = generate_qr_svg("http://example.i2p") assert "" in svg def test_contains_rect_elements(self): svg = generate_qr_svg("test data") assert "