Add workaround for clash with "six" on Python 3
The "six" library changes the list of modules on the fly when we access a module attribute; this causes a "RuntimeError: dictionary changed size during iteration" under Python 3. This workaround excludes modules matching `six.moves.*` from attribute checking on "unpatching" phase.
Use fake class for min and max in order for pickle to work
Version 2.1 added back python2 support.
Avoid passing locale-dependent string to dateutil
This just increases the chance that the user will have a usable locale on his system.
The standard unittest module only got SkipTest from Python 2.7.
When a date or datetime object is passed to freeze_time, it is converted to a string which is then later parsed with dateutil. The conversion was done using the '%x' format character, which return the appropriate date representation for the current locale. This means that you get '01/02/13' for January 2nd with the C and en_US locales, and '02/01/13' for the same date using most European locales. The string is then parsed incorrectly by dateutils. Using the isoformat method on date/datetime objects solves this by returning a string in 'yyyy-mm-dd' format. This string is parsed correctly by dateutil, regardless of the current locale.
Add support for fake time.time()