def main():
"""Small main program"""
import sys, getopt
- usage = """usage: %s [-h|-d|-e|-u|-t] [file|-]
+ usage = f"""usage: {sys.argv[0]} [-h|-d|-e|-u|-t] [file|-]
-h: print this help message and exit
-d, -u: decode
- -e: encode (default)
- -t: encode and decode string 'Aladdin:open sesame'"""%sys.argv[0]
+ -e: encode (default)"""
try:
opts, args = getopt.getopt(sys.argv[1:], 'hdeut')
except getopt.error as msg:
if o == '-e': func = encode
if o == '-d': func = decode
if o == '-u': func = decode
- if o == '-t': test(); return
if o == '-h': print(usage); return
if args and args[0] != '-':
with open(args[0], 'rb') as f:
func(sys.stdin.buffer, sys.stdout.buffer)
-def test():
- s0 = b"Aladdin:open sesame"
- print(repr(s0))
- s1 = encodebytes(s0)
- print(repr(s1))
- s2 = decodebytes(s1)
- print(repr(s2))
- assert s0 == s2
-
-
if __name__ == '__main__':
main()
b"YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNE"
b"RUZHSElKS0xNTk9QUVJTVFVWV1hZWjAxMjM0\nNT"
b"Y3ODkhQCMwXiYqKCk7Ojw+LC4gW117fQ==\n")
+ eq(base64.encodebytes(b"Aladdin:open sesame"),
+ b"QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n")
# Non-bytes
eq(base64.encodebytes(bytearray(b'abc')), b'YWJj\n')
eq(base64.encodebytes(memoryview(b'abc')), b'YWJj\n')
b"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
b"0123456789!@#0^&*();:<>,. []{}")
eq(base64.decodebytes(b''), b'')
+ eq(base64.decodebytes(b"QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n"),
+ b"Aladdin:open sesame")
# Non-bytes
eq(base64.decodebytes(bytearray(b'YWJj\n')), b'abc')
eq(base64.decodebytes(memoryview(b'YWJj\n')), b'abc')
def get_output(self, *args):
return script_helper.assert_python_ok('-m', 'base64', *args).out
- def test_encode_decode(self):
- output = self.get_output('-t')
- self.assertSequenceEqual(output.splitlines(), (
- b"b'Aladdin:open sesame'",
- br"b'QWxhZGRpbjpvcGVuIHNlc2FtZQ==\n'",
- b"b'Aladdin:open sesame'",
- ))
-
def test_encode_file(self):
with open(os_helper.TESTFN, 'wb') as fp:
fp.write(b'a\xffb\n')