Fix SyntaxWarning under Python 3

Change-Id: I60cf7bc796b5cb4927cd92477e3eb26379f06316
Drop description from 403 flask test case

Older versions of werkzeug pass the description parameter back
in the description.  As the description is never actually validated
in the test case, dropping it seems OK.

Change-Id: Icd547113d8fe918f35a97c4a5de220b3aaace5cd
Closes-Bug: 1242486
Remove the duplicated error message from Enum

If Enum validation detects invalid parameter, wsme returns a respose
like the following message:

  {"debuginfo": null, "faultcode": "Client",
   "faultstring": "Invalid input for field/attribute param_enum.
                   Value: 'hourse'.
                   Invalid value (should be one of: dog, cat)"
  }

In faultstring, the first message shows a invalid request.
So it is not necessary to contain it in the third message.

Change-Id: Ie52660fcf704551ce082f7dca2fadedadb12562a
Use assertRaises() for negative tests

This patch makes negative tests use assertRaises() for cleaning up.

Change-Id: Ief64c0737f7aabc414744861e7c750ec2bb1e466
Merge "Remove the duplicated error message from Enum"
Merge "Fix SyntaxWarning under Python 3"
Merge "Drop description from 403 flask test case"
Add IntegerType and some classes for validation

This patch adds the following classes for API parameter validation:

IntegerType
  * Value range validation (minimum, maximum)

StringType
  * String length validation (min_length, max_length)
  * Allowed string (pattern): e.g. should contain [a-zA-Z0-9_.- ] only.

IPv4AddressType
  * String format validation for IPv4

IPv6AddressType
  * String format validation for IPv6

UuidType
  * String format validation for UUID

Partially implements blueprint nova-api-validation-fw

Closes-Bug: 1245795
Change-Id: I5aead6c51b74464681e4ac41fa2a9c66c09adab2
Fix a typo in the types documentation

Change-Id: Ib3a81c1c1145a31431cacde1cbabdf4a08300068
Support building wheels (PEP-427)

With that, building and uploading wheels to PyPI is only one "python
setup.py bdist_wheel" away.

Change-Id: Ia7583925080fbe15d8274ff4badcd089b6512004
Support dynamic types

Some of the OpenStack projects need to be able to add
data to the input and output types used by the API,
in order to support extensions configured when the
service is deployed. This change adds a reregister()
method to the Registry that can be used to update the
registration of an existing class, and provides a
DynamicBase class with a convenience method for adding
new extension fields.

bp support-dynamic-types

Change-Id: Idf892de2129fddd7ddbb43847ebe0f14464a6e97
Merge "Support dynamic types"