def test_custom_alphabet64_invalid(): CUSTOM = 'abcdefghijklmnopqrstuvwxyz0123456789.:,;*@#$%&/()[]{}=_-ABCDEFGH' # bad custom alphabet with pytest.raises(AssertionError): to64(1, 'bad') with pytest.raises(AssertionError): to64(1, CUSTOM + '!-') # values not in custom alphabet with pytest.raises(ValueError): from64('J', CUSTOM) with pytest.raises(ValueError): from64('!', CUSTOM)
def test_from64(): assert from64('0') == 0 assert from64('a') == 10 assert from64('1Z') == 125 assert from64('1=') == 126 assert from64('1_') == 127 assert from64('20') == 128 with pytest.raises(ValueError): from64('!')
def test_custom_alphabet64(): CUSTOM = 'abcdefghijklmnopqrstuvwxyz0123456789.:,;*@#$%&/()[]{}=_-ABCDEFGH' assert to64(555, CUSTOM) == 'i$' assert from64('AA', CUSTOM) == 3640 RANDOM = [ c for c in '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ=_' ] random.shuffle(RANDOM) RANDOM = ''.join(RANDOM) RCUSTOM = [c for c in CUSTOM] random.shuffle(RCUSTOM) RCUSTOM = ''.join(RCUSTOM) rnum = random.randint(0, 5555) assert from64(to64(rnum, CUSTOM), CUSTOM) == rnum assert from64(to64(rnum, RANDOM), RANDOM) == rnum assert from64(to64(rnum, RCUSTOM), RCUSTOM) == rnum