@ -375,7 +375,7 @@ class TestGetFileVaultSecret(unittest.TestCase):
self . assertEqual ( secret . bytes , to_bytes ( password ) )
self . assertEqual ( secret . bytes , to_bytes ( password ) )
def test_file_ not_a_directory( self ) :
def test_file_ path_part_ not_a_directory( self ) :
filename = ' /dev/null/foobar '
filename = ' /dev/null/foobar '
self . assertRaisesRegex ( errors . AnsibleError ,
self . assertRaisesRegex ( errors . AnsibleError ,
@ -392,6 +392,44 @@ class TestGetFileVaultSecret(unittest.TestCase):
vault . get_file_vault_secret ,
vault . get_file_vault_secret ,
filename = filename )
filename = filename )
def test_file_not_a_directory ( self ) :
filename = ' /dev '
self . assertRaisesRegex ( errors . AnsibleError ,
' .*The vault password file %s is not a file.* ' % filename ,
vault . get_file_vault_secret ,
filename = filename )
def test_file_is_symlink_to_file ( self ) :
with tempfile . NamedTemporaryFile ( suffix = ' symlink ' ) as tmp_file :
symlink_filename = os . path . realpath ( tmp_file . name )
try :
with tempfile . NamedTemporaryFile ( suffix = ' target ' ) as tmp_file :
target_filename = tmp_file . name
os . symlink ( target_filename , symlink_filename )
secret = vault . get_file_vault_secret ( filename = symlink_filename , loader = self . fake_loader )
self . assertIsInstance ( secret , vault . FileVaultSecret )
self . assertEqual ( secret . filename , symlink_filename )
finally :
os . remove ( symlink_filename )
def test_file_is_symlink_to_directory ( self ) :
with tempfile . NamedTemporaryFile ( suffix = ' symlink ' ) as tmp_file :
symlink_filename = os . path . realpath ( tmp_file . name )
try :
with tempfile . TemporaryDirectory ( suffix = ' target ' ) as target_filename :
os . symlink ( target_filename , symlink_filename )
self . assertRaisesRegex ( errors . AnsibleError ,
' .*The vault password file %s is not a file.* ' % symlink_filename ,
vault . get_file_vault_secret ,
filename = symlink_filename )
finally :
os . remove ( symlink_filename )
class TestVaultIsEncrypted ( unittest . TestCase ) :
class TestVaultIsEncrypted ( unittest . TestCase ) :
def test_bytes_not_encrypted ( self ) :
def test_bytes_not_encrypted ( self ) :