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_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
def test_to64(): assert to64(0) == '0' assert to64(10) == 'a' assert to64(125) == '1Z' assert to64(126) == '1=' assert to64(127) == '1_' assert to64(128) == '20' assert len(to64(pow(3, 1979))) == 523 with pytest.raises(AssertionError): to64(-1) with pytest.raises(AssertionError): to64('a')