#!/usr/bin/python

'''Unit tests for dirops_mod'''

import sys

import dirops_mod

def check_prepend_dirs():
    '''Test prepend_dirs for errors'''
    all_good = True
    expected_result = 'dir-a/dir-bc/dir-def/dir-ghij'
    actual_result = dirops_mod.prepend_dirs('/a/bc/def/ghij') 
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.prepend_dirs 4-level path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, str(actual_result)))
        all_good = False

    expected_result = '.'
    actual_result = dirops_mod.prepend_dirs('/')
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.prepend_dirs /-only path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, str(actual_result)))
        all_good = False

    expected_result = '.'
    actual_result = dirops_mod.prepend_dirs('.')
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.prepend_dirs .-only path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, str(actual_result)))
        all_good = False

    return all_good


def check_strip_dirs():
    '''Test strip_dirs for errors'''
    all_good = True
    expected_result = 'a/bc/def/ghij'
    actual_result = dirops_mod.strip_dirs('dir-a/dir-bc/dir-def/dir-ghij') 
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.strip_dirs 4-level path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    expected_result = '/'
    actual_result = dirops_mod.strip_dirs('.') 
    if dirops_mod.strip_dirs('.') != '.':
        sys.stderr.write('%s: dirops_mod.strip_dirs /-only path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    return all_good


def check_get_path_parts():
    '''Test get_path_parts for errors'''

    all_good = True

    expected_result = (['a', 'bc', 'def'], 'ghij')
    actual_result = dirops_mod.get_path_parts('/a/bc/def/ghij')
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.get_path_parts 4-level path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    expected_result = (['a', 'bc', 'def'], 'ghij')
    actual_result = dirops_mod.get_path_parts([ 'a', 'bc', 'def', 'ghij'])
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.get_path_parts 4-level list problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    return all_good


def main():
    '''Run automated tests for dirops_mod'''
    all_good = True
    all_good &= check_prepend_dirs()
    all_good &= check_strip_dirs()
    all_good &= check_get_path_parts()
    if all_good:
        sys.exit(0)
    else:
        sys.stderr.write('%s: One or more tests failed\n' % sys.argv[0])
        sys.exit(1)

main()
#!/usr/bin/python

'''Unit tests for dirops_mod'''

import sys

import dirops_mod

def check_prepend_dirs():
    '''Test prepend_dirs for errors'''
    all_good = True
    expected_result = 'dir-a/dir-bc/dir-def/dir-ghij'
    actual_result = dirops_mod.prepend_dirs('/a/bc/def/ghij') 
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.prepend_dirs 4-level path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, str(actual_result)))
        all_good = False

    expected_result = '.'
    actual_result = dirops_mod.prepend_dirs('/')
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.prepend_dirs /-only path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, str(actual_result)))
        all_good = False

    expected_result = '.'
    actual_result = dirops_mod.prepend_dirs('.')
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.prepend_dirs .-only path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, str(actual_result)))
        all_good = False

    return all_good


def check_strip_dirs():
    '''Test strip_dirs for errors'''
    all_good = True
    expected_result = 'a/bc/def/ghij'
    actual_result = dirops_mod.strip_dirs('dir-a/dir-bc/dir-def/dir-ghij') 
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.strip_dirs 4-level path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    expected_result = '/'
    actual_result = dirops_mod.strip_dirs('.') 
    if dirops_mod.strip_dirs('.') != '.':
        sys.stderr.write('%s: dirops_mod.strip_dirs /-only path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    return all_good


def check_get_path_parts():
    '''Test get_path_parts for errors'''

    all_good = True

    expected_result = (['a', 'bc', 'def'], 'ghij')
    actual_result = dirops_mod.get_path_parts('/a/bc/def/ghij')
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.get_path_parts 4-level path problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    expected_result = (['a', 'bc', 'def'], 'ghij')
    actual_result = dirops_mod.get_path_parts([ 'a', 'bc', 'def', 'ghij'])
    if actual_result != expected_result:
        sys.stderr.write('%s: dirops_mod.get_path_parts 4-level list problem: expected %s, got %s\n' % (
            sys.argv[0], expected_result, actual_result))
        all_good = False

    return all_good


def main():
    '''Run automated tests for dirops_mod'''
    all_good = True
    all_good &= check_prepend_dirs()
    all_good &= check_strip_dirs()
    all_good &= check_get_path_parts()
    if all_good:
        sys.exit(0)
    else:
        sys.stderr.write('%s: One or more tests failed\n' % sys.argv[0])
        sys.exit(1)

main()