boto/botocore — pull request #100 by jamesls (2013-08-11 16:20:26+00:00)
Title: Improve botocore param validation

This pull requests improves the validation of botocore:

* Add the param name to all validation error message to make it easier to
figure out which parameter failed validation.
* Validate struct/list types (recursively). Members of these two types are now
validated.
* Validate known keys for struct params.
* Validate required keys for struct params.
* Validate all params. In some cases the `.validate()` method was not being
called so I moved it up as one of the first things that happens in
`build_parameter`.

I relaxed the blob validation to also accept strings. This was one of those
situations where `.validate()` wasn't being called, as this started failing
once I started validating the blob parameters.

I've also cleaned up some minor pep8 issues (this is done as a separate
commit).

For testing, I've added a number of tests that also validate the error message
via `assertRaisesRegexp` as I think these are fairly important to users.

And to verify this without artificial data, I've also added unit tests for
`SES` that show the type of validation errors you'd get with an actual service.

cc @garnaat @toastdriven @danielgtaylor