#!/usr/bin/env python

'''Unit test for our escape and unescape functions'''

# This was working fine on 2.x but not 3.x, when we were using base64

import sys

import python2x3
import escape_mod

def main():
    '''Main function'''
    all_good = True
    for string in [
        '/abc',
        '/def/ghi',
        '/jkl/mno/',
        'abc',
        python2x3.string_to_binary('abc'),
        'abc\ndef\nghi',
        'abc def ghi',
        'abc def\nghi',
        'abc%def%ghi',
        'abc%20 %%',
        ]:

        encoded = escape_mod.escape(string)
        decoded = escape_mod.unescape(encoded)

        stb_string = python2x3.string_to_binary(string)
        if stb_string == decoded:
            sys.stdout.write('good\n')
        else:
            sys.stdout.write('bad: %s, %s\n' % (stb_string, decoded))
            all_good = False

    if not all_good:
        sys.stderr.write('%s: One or more tests failed\n' % sys.argv[0])
        sys.exit(1)

main()