
=======================================
grampg: Grumpy Admin Password Generator
=======================================

*Copyright 2012 Elvio Toccalino.*


===
FAQ
===

**What to import?**
  Import the grampg module. It'll expose four classes: PasswordGenerator and three exceptions. To be fair, you can make do pretty well with PasswordGenerator and PasswordSpecError classes (the latter being the base class for grampg exceptions).

**How to use the PasswordGenerator, then?**
  That class provides a *nice* interface, which allows to create a generator by chaining methods until you're satisfied. Technically speaking, the grampg module implements a builder by leveraging the method chain technique (a.k.a. *train wreck* :P) to provide a fluent interface. Check the docs for a list of methods to call and their impact on the generator being built.

**Are the passwords "good"?**
  Yes. Quite so. grampg will spit passwords that are as good as the standard random python module, and your specifications, allow it. If you're interested (or doubtful) check the docs of the package (read grampg/docs/README.txt). I included a description of the generation algorithm, and notes about its implementation; it's simple enough to be readable.

**Why the lousy name?**
  It all started as a joke on my own grumpy admin, who commissioned a solution like grampg. I tried to think of something funny and clever for the name... after 15 minutes I started to feel like Jane, the character from Firefly, standing in front of a bunch of mudders. Got stuck with *grampg*.
  Suggestions are *not* welcomed.

**Are there tests? How to run them?**
  Running ``python2 setup test`` runs the whole test suit, which is comprised of unit test (for the individual pieces that form the *specs*), use cases (both faulty and valid) and regression tests (bugs fixed). This tests live in grampg/tests.
