Added the first layers unit tests.
Finished the module registry. It is now possible to save the current & previous states of sys.modules.
Moved all layer tests to the unit tests layer.
Forgot to check that register() only accepts dictionaries and that current_state() returns an empty dictionary.
Removed PyCharm template code from tests.common.__init__.
Renamed the ModulesRegistry methods to clarify intent.
More intent clarification. Added a new exception that should be raised when no modules are registered.
Moved registry tests to the correct layer.
Added the integration test module isolation level calculator. All tests pass correctly.
Excluding modules from calculation is now possible.
Nose2 is now verbose when it is being executed under CI.
Added logging to the samples generator.
Moved the isolation support module to the common module.
Other minor readability adjustments.
The testsuite now caches the samples locally & under CI.
Moved setUp & tearDown inside the test to ensure the locallity of the monkeypatch.
USED_CACHED_DATA environment variable values were misspelled.
Since combinations_with_replacements does not exist on Python 2.6 I moved the definition into the compat module.
Moved mock to the compat module as well in order to allow importing from unittest on Python 3.3.
Reduced the sample max length under CI since Travis still kills my build.
Fixed python compatibility issues with samples caching.
Added functions to improve readability.