suou/tests/test_codecs.py

51 lines
2 KiB
Python
Raw Normal View History

2025-07-19 11:31:01 +02:00
import binascii
import unittest
from suou.codecs import b64encode, b64decode, want_urlsafe
2025-07-19 11:31:01 +02:00
B1 = b'N\xf0\xb4\xc3\x85\n\xf9\xb6\x9a\x0f\x82\xa6\x99G\x07#'
B2 = b'\xbcXiF,@|{\xbe\xe3\x0cz\xa8\xcbQ\x82'
B3 = b"\xe9\x18)\xcb'\xc2\x96\xae\xde\x86"
B4 = B1[-2:] + B2[:-2]
B5 = b'\xff\xf8\xa7\x8a\xdf\xff'
class TestCodecs(unittest.TestCase):
def setUp(self) -> None:
...
def tearDown(self) -> None:
...
def test_b64encode(self):
self.assertEqual(b64encode(B1), 'TvC0w4UK-baaD4KmmUcHIw')
self.assertEqual(b64encode(B2), 'vFhpRixAfHu-4wx6qMtRgg')
self.assertEqual(b64encode(B3), '6RgpyyfClq7ehg')
self.assertEqual(b64encode(B4), 'ByO8WGlGLEB8e77jDHqoyw')
self.assertEqual(b64encode(B5), '__init__')
self.assertEqual(b64encode(B1[:4]), 'TvC0ww')
self.assertEqual(b64encode(b'\0' + B1[:4]), 'AE7wtMM')
self.assertEqual(b64encode(b'\0\0\0\0\0' + B1[:4]), 'AAAAAABO8LTD')
self.assertEqual(b64encode(b'\xff'), '_w')
self.assertEqual(b64encode(b''), '')
def test_b64decode(self):
self.assertEqual(b64decode('TvC0w4UK-baaD4KmmUcHIw'), B1)
self.assertEqual(b64decode('vFhpRixAfHu-4wx6qMtRgg'), B2)
self.assertEqual(b64decode('6RgpyyfClq7ehg'), B3)
self.assertEqual(b64decode('ByO8WGlGLEB8e77jDHqoyw'), B4)
self.assertEqual(b64decode('__init__'), B5)
self.assertEqual(b64decode('TvC0ww'), B1[:4])
self.assertEqual(b64decode('AE7wtMM'), b'\0' + B1[:4])
self.assertEqual(b64decode('AAAAAABO8LTD'), b'\0\0\0\0\0' + B1[:4])
self.assertEqual(b64decode('_w'), b'\xff')
self.assertEqual(b64decode(''), b'')
self.assertRaises(binascii.Error, b64decode, 'C')
def test_want_urlsafe(self):
self.assertEqual('__init__', want_urlsafe('//init_/'))
self.assertEqual('Disney-', want_urlsafe('Disney+'))
self.assertEqual('spaziocosenza', want_urlsafe('spazio cosenza'))
self.assertEqual('=======', want_urlsafe('======='))