Assignment 6

This function gets much simpler if you consider that it's just taking a single string as input. Instead of looping `crack` you're just comparing `crypted == crack`.

That said, this next comment is really for your own education rather than solving the issue since your second parameter isn't necessary to solve this problem. I've never seen a function call as a default and I'm a bit surprised that Jenkins didn't call a violation on it. The reason that I'd not consider it a good practice is twofold. 1) While we've not covered exception handling in detail, Python has tools for catching those errors you sometimes encounter and dealing with them in a nicer manner than just blowing up the program. If there was a problem with `test_passwords()`, however, in your argument definition you'd not be able to trap the error and debug it. The other reason I don't like it is because it's not readable. Here's the thing, the arguments and their defaults are 'created' at the time the interpreter reads the `def` line so it wouldn't run `test_passwords()` each time as many might think. If the result of `test_paswords()` the first time was a 2, and a 4 on its second run, a 6 on its second run, and so-on, the argument would always be a 2. Try to keep defaults as non-functional, clearly defined values.