testSetupInstallRoot will be always skipped, ...

testSetupInstallRoot will be always skipped, because of "wrong" location of 'setup.py':
located twice upper directory related to 'fail2ban/tests/misctestcase.py'

if you really want to move it, move it into  fail2ban/tests/utils.py
This function is generally useful (although not yet used anywhere else) so why not to keep it available?