1proxy / tests /unit /test_base64_decoder.py
paijo77's picture
update tests/unit/test_base64_decoder.py
1998928 verified
import pytest
import base64
from app.utils.base64_decoder import SubscriptionDecoder
class TestBase64Decoder:
def test_decode_simple_base64(self):
original = "vmess://test123\nvless://test456"
encoded = base64.b64encode(original.encode()).decode()
decoded = SubscriptionDecoder.decode(encoded)
assert decoded == original
def test_decode_with_padding(self):
original = "proxy list"
encoded_with = base64.b64encode(original.encode()).decode()
encoded_without = encoded_with.rstrip("=")
assert SubscriptionDecoder.decode(encoded_with) == original
assert SubscriptionDecoder.decode(encoded_without) == original
def test_decode_multiline(self):
original = "line1\nline2\nline3"
encoded = base64.b64encode(original.encode()).decode()
decoded = SubscriptionDecoder.decode(encoded)
assert decoded.count("\n") == 2
assert "line1" in decoded
def test_invalid_base64(self):
with pytest.raises(ValueError):
SubscriptionDecoder.decode("not!@#$%valid&*base64")
def test_empty_string(self):
result = SubscriptionDecoder.decode("")
assert result == ""