Fixed error in program output decoding.
Fixed possible use of a non-initialized variable.
Fixed wrong mode for opening vcs configuration file when modifying them.
Added command output and status code validation for vcs repositories initialization.
Fixed use of wrong object in classmethod (self instead of cls.
Removed unused imports.
Removed unused variable assignment.
Removed unused imports.
Removed trailing blank line flake8 complains about.
Removed unused import.
Removed implemented TODO item.
Fixed wrong operation ordering that made tests setup fail when fixture directory was not present (which is the case in pristine checkouts).
Fixed miss-spelled kwargs in call to getpreferredencoding().
Put some order in the different testing utility we built (in the prospect of making it an independent package).
Added ability to capture stdout/stderr io from any module.
Now uses the IOCapture impl. from ssh_harness.context.
Now uses the InThrowableDir impl. from ssh_harness.contexts.
Added ability to properly skip a test if the repository it depends on could not be created for some reason.
Made the _basename method accessible as a class method or an instance method.
Factored out some code related to external command calls and output validation.
Added proper validation of the availability of external commands (with user feedback).
Made mercurial dependent code work with python 2.7 even if mercurial module cannot be imported (falls back to the hg binary).
Bumped version to 1.0.2.
Added capture and validation of IO produced by the tests (renders the test runner output less messy).
Removed build site dependent paths.
Fixed typo in the package name the copyright and license statements.
Made the mode argument of the _check_dir method optional (default is stat.S_IRWXU).
Added precondition to make sure the directory where temporary checkouts/clones are made exists.
Added some clean-up actions before trying to run the tests.