Fixed issues with rbtools argument parsing on Python 3 when running '--help'

Review Request #10856 — Created Jan. 24, 2020 and submitted — Latest diff uploaded

Information

RBTools
release-2.0.x
392c050...

Reviewers

On python 2, running rbt --help <command> and rbt <command> --help
are equivalent. However, running rbt <command> --help does not work
on python 3. This happens because byte strings are utilized in the
code to see if --help or -h are passed in as arguments. They are
never found because the code is trying to find b'--help' or b'-h'.
In python 2, b'--help' is equivalent to '--help', but in python 3,
this is not the case.

To fix this issue, the byte strings b'--help' and b’-h’ have been
changed to python 3 compatible strings (i.e. --help and -h). Unit
tests have also been added to ensure that all possible positions and
cases of the 'help' argument work for rbtools.(ex. rbt —help <command>,
rbt <command> -h, rbt help <command>, etc.).

All tests were run using both python 2.7.17 and python 3.7.6.

Test cases run on python 2.7.17 and 3.7.6:
Test case where rbt help <command> is run
Test case where rbt <command> --help or rbt <command> -h is run
Test case where rbt --help <command> or rbt -h <command> is run
Test case where an invalid rbt command is run with help
Test case where multiple arguments are entered