paijo77 commited on
Commit
1998928
·
verified ·
1 Parent(s): 7fb6342

update tests/unit/test_base64_decoder.py

Browse files
Files changed (1) hide show
  1. tests/unit/test_base64_decoder.py +36 -0
tests/unit/test_base64_decoder.py ADDED
@@ -0,0 +1,36 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import pytest
2
+ import base64
3
+ from app.utils.base64_decoder import SubscriptionDecoder
4
+
5
+
6
+ class TestBase64Decoder:
7
+ def test_decode_simple_base64(self):
8
+ original = "vmess://test123\nvless://test456"
9
+ encoded = base64.b64encode(original.encode()).decode()
10
+
11
+ decoded = SubscriptionDecoder.decode(encoded)
12
+ assert decoded == original
13
+
14
+ def test_decode_with_padding(self):
15
+ original = "proxy list"
16
+ encoded_with = base64.b64encode(original.encode()).decode()
17
+ encoded_without = encoded_with.rstrip("=")
18
+
19
+ assert SubscriptionDecoder.decode(encoded_with) == original
20
+ assert SubscriptionDecoder.decode(encoded_without) == original
21
+
22
+ def test_decode_multiline(self):
23
+ original = "line1\nline2\nline3"
24
+ encoded = base64.b64encode(original.encode()).decode()
25
+
26
+ decoded = SubscriptionDecoder.decode(encoded)
27
+ assert decoded.count("\n") == 2
28
+ assert "line1" in decoded
29
+
30
+ def test_invalid_base64(self):
31
+ with pytest.raises(ValueError):
32
+ SubscriptionDecoder.decode("not!@#$%valid&*base64")
33
+
34
+ def test_empty_string(self):
35
+ result = SubscriptionDecoder.decode("")
36
+ assert result == ""