@ -22,41 +22,51 @@ class TestImports(unittest.TestCase):
if mod in sys . modules :
del sys . modules [ mod ]
@patch.object ( builtins , ' __import__ ' )
def test_module_utils_basic_import_syslog ( self , mock_import ) :
def test_module_utils_basic_import_syslog ( self ) :
present = True
def _mock_import ( name , * args , * * kwargs ) :
if name == ' syslog ' :
if present :
return unittest . mock . MagicMock ( )
raise ImportError
return realimport ( name , * args , * * kwargs )
self . clear_modules ( [ ' syslog ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertTrue ( mod . module_utils . basic . HAS_SYSLOG )
with patch . object ( builtins , ' __import__ ' , _mock_import ) :
self . clear_modules ( [ ' syslog ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertTrue ( mod . module_utils . basic . HAS_SYSLOG )
present = False
self . clear_modules ( [ ' syslog ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertFalse ( mod . module_utils . basic . HAS_SYSLOG )
self . clear_modules ( [ ' syslog ' , ' ansible.module_utils.basic ' ] )
self . clear_modules ( [ ' syslog ' , ' ansible.module_utils.basic ' ] )
mock_import . side_effect = _mock_import
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertFalse ( mod . module_utils . basic . HAS_SYSLOG )
def test_module_utils_basic_import_selinux ( self ) :
present = True
@patch.object ( builtins , ' __import__ ' )
def test_module_utils_basic_import_selinux ( self , mock_import ) :
def _mock_import ( name , globals = None , locals = None , fromlist = tuple ( ) , level = 0 , * * kwargs ) :
if name == ' ansible.module_utils.compat ' and fromlist == ( ' selinux ' , ) :
if present :
return unittest . mock . MagicMock ( )
raise ImportError
return realimport ( name , globals = globals , locals = locals , fromlist = fromlist , level = level , * * kwargs )
try :
with patch . object ( builtins , ' __import__ ' , _mock_import ) :
self . clear_modules ( [ ' ansible.module_utils.compat.selinux ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertTrue ( mod . module_utils . basic . HAVE_SELINUX )
except ImportError :
# no selinux on test system, so skip
pass
self . clear_modules ( [ ' ansible.module_utils.compat.selinux ' , ' ansible.module_utils.basic ' ] )
mock_import . side_effect = _mock_import
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertFalse ( mod . module_utils . basic . HAVE_SELINUX )
present = False
self . clear_modules ( [ ' ansible.module_utils.compat.selinux ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertFalse ( mod . module_utils . basic . HAVE_SELINUX )
self . clear_modules ( [ ' ansible.module_utils.compat.selinux ' , ' ansible.module_utils.basic ' ] )
# FIXME: doesn't work yet
# @patch.object(builtins, 'bytes')
@ -64,22 +74,29 @@ class TestImports(unittest.TestCase):
# mock_bytes.side_effect = NameError()
# from ansible.module_utils import basic
@patch.object ( builtins , ' __import__ ' )
def test_module_utils_basic_import_systemd_journal ( self , mock_import ) :
def test_module_utils_basic_import_systemd_journal ( self ) :
present = True
def _mock_import ( name , * args , * * kwargs ) :
try :
fromlist = kwargs . get ( ' fromlist ' , args [ 2 ] )
except IndexError :
fromlist = [ ]
if name == ' systemd ' and ' journal ' in fromlist :
if present :
return unittest . mock . MagicMock ( )
raise ImportError
return realimport ( name , * args , * * kwargs )
self . clear_modules ( [ ' systemd ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertTrue ( mod . module_utils . basic . has_journal )
with patch . object ( builtins , ' __import__ ' , _mock_import ) :
self . clear_modules ( [ ' systemd ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertTrue ( mod . module_utils . basic . has_journal )
present = False
self . clear_modules ( [ ' systemd ' , ' ansible.module_utils.basic ' ] )
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertFalse ( mod . module_utils . basic . has_journal )
self . clear_modules ( [ ' systemd ' , ' ansible.module_utils.basic ' ] )
mock_import . side_effect = _mock_import
mod = builtins . __import__ ( ' ansible.module_utils.basic ' )
self . assertFalse ( mod . module_utils . basic . has_journal )
self . clear_modules ( [ ' systemd ' , ' ansible.module_utils.basic ' ] )