From: Ben Finney Date: Wed, 2 Mar 2016 04:43:44 +0000 (+1100) Subject: Get command-line arguments as a parameter to ‘main’. X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=dfb9444316c739e9f07e6f08855f57e3e62b7f91;p=redacted-XKCD-password-generator.git Get command-line arguments as a parameter to ‘main’. This makes the ‘main’ function more easily tested: no need for special patches just for the command-line arguments. --- diff --git a/xkcdpass/xkcd_password.py b/xkcdpass/xkcd_password.py index a5aa522..62bb3f2 100755 --- a/xkcdpass/xkcd_password.py +++ b/xkcdpass/xkcd_password.py @@ -314,13 +314,18 @@ class XkcdPassOptionParser(optparse.OptionParser, object): help="Separate words within a passphrase with DELIM.") -def main(): +def main(argv=None): + """ Mainline code for this program. """ + + if argv is None: + argv = sys.argv + count = 1 - program_name = os.path.basename(sys.argv[0]) + program_name = os.path.basename(argv[0]) parser = XkcdPassOptionParser(prog=program_name) - (options, args) = parser.parse_args(sys.argv[1:]) + (options, args) = parser.parse_args(argv[1:]) validate_options(parser, options, args) my_wordlist = generate_wordlist(wordfile=options.wordfile, @@ -344,4 +349,4 @@ def main(): if __name__ == '__main__': - main() + main(sys.argv)