From b35918db4b2de0c3a186f7a7a6abb871190931cd 2020-01-06 18:10:31 From: Branko Majic Date: 2020-01-06 18:10:31 Subject: [PATCH] MAR-148: Fixed tests for the backup_server role: - Fix some handling of newlines by updating test data keys to include newline at the end of file. - Ensure we do not produce exit code 255 when testing the available authentication mechanisms for the backup SSH server instance (otherwise we get runtime exception from Testinfra itself). - Fix some handling of newlines by not doing stripping and including newline in expected output. --- diff --git a/roles/backup_server/molecule/default/tests/data/ssh/client1 b/roles/backup_server/molecule/default/tests/data/ssh/client1 index f479da587f71e5feec43afb3a1cdb670a975b558..40882f32a98c14c5bb5d458bf010647f20a30a51 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/client1 +++ b/roles/backup_server/molecule/default/tests/data/ssh/client1 @@ -2,4 +2,4 @@ MHcCAQEEINHLWDWSpuuGgHT5cGpzkPMdnmT493/zqrBSyMOGPPrqoAoGCCqGSM49 AwEHoUQDQgAE1gEshzmIJDC93lAg7kdjUWeFrI8I26Mvi7IAM37SBfU2a08KMDWR QvLygMvp6rixo4QRpkUp5lDcl24fybh6xQ== ------END EC PRIVATE KEY----- \ No newline at end of file +-----END EC PRIVATE KEY----- diff --git a/roles/backup_server/molecule/default/tests/data/ssh/client1.pub b/roles/backup_server/molecule/default/tests/data/ssh/client1.pub index e4be7aa32385bbb830346bcda281afb5090d7548..a5ec5d29a3657c2207e139f60c6c1095ed0c0823 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/client1.pub +++ b/roles/backup_server/molecule/default/tests/data/ssh/client1.pub @@ -1 +1 @@ -ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNYBLIc5iCQwvd5QIO5HY1FnhayPCNujL4uyADN+0gX1NmtPCjA1kULy8oDL6eq4saOEEaZFKeZQ3JduH8m4esU= user@client1 \ No newline at end of file +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBNYBLIc5iCQwvd5QIO5HY1FnhayPCNujL4uyADN+0gX1NmtPCjA1kULy8oDL6eq4saOEEaZFKeZQ3JduH8m4esU= user@client1 diff --git a/roles/backup_server/molecule/default/tests/data/ssh/client2 b/roles/backup_server/molecule/default/tests/data/ssh/client2 index 2ccdeaae319790751cdaef141a29864581c282ca..115f4712dc4096d33098597a6737f81ef026492c 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/client2 +++ b/roles/backup_server/molecule/default/tests/data/ssh/client2 @@ -2,4 +2,4 @@ MHcCAQEEICwzh3hupZa3aKFWFwdRosm8kXS6czUWw/sHIvgKWNEcoAoGCCqGSM49 AwEHoUQDQgAEPh00CkvI6wEACjGfETwsP1RwyekgFsiQl7IvuJ4Nc20GgdvzRw6n gFDn1F4NkfdJl1Fg2UNLMeXWG4murieuBA== ------END EC PRIVATE KEY----- \ No newline at end of file +-----END EC PRIVATE KEY----- diff --git a/roles/backup_server/molecule/default/tests/data/ssh/client2.pub b/roles/backup_server/molecule/default/tests/data/ssh/client2.pub index 5929d300519fe13aaa5cbac6d39fef1e85b6cfe3..2c0f0df207f4f6aa438fc0533ee2634e0f2820c4 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/client2.pub +++ b/roles/backup_server/molecule/default/tests/data/ssh/client2.pub @@ -1 +1 @@ -ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD4dNApLyOsBAAoxnxE8LD9UcMnpIBbIkJeyL7ieDXNtBoHb80cOp4BQ59ReDZH3SZdRYNlDSzHl1huJrq4nrgQ= user@client2 \ No newline at end of file +ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBD4dNApLyOsBAAoxnxE8LD9UcMnpIBbIkJeyL7ieDXNtBoHb80cOp4BQ59ReDZH3SZdRYNlDSzHl1huJrq4nrgQ= user@client2 diff --git a/roles/backup_server/molecule/default/tests/data/ssh/server_dsa b/roles/backup_server/molecule/default/tests/data/ssh/server_dsa index d02624d4fff39fd17fcc134898aa8cd340699e88..12c97bc8b56671e48a48fab1074b4e3436c57177 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/server_dsa +++ b/roles/backup_server/molecule/default/tests/data/ssh/server_dsa @@ -9,4 +9,4 @@ gaRvcyUCgYAYAG/Udg4i/2q8Iemqs5TuP48ge1CxQcyFw4vVl2zr85MPZ24rBf+Z PGy1CsEBpJqHQ5agftMYR9CRcxlqAP44JpIPcSq1NsL59HnXDsdCe/IJjO4JmL1H L+VIcWkXgj0MxGds8hck+HC5lX7jGAKjZBea8ksBZD/Ma2WvYKXpggIVANDGn68D y8jb/9mLaOM8bd9VFfdC ------END DSA PRIVATE KEY----- \ No newline at end of file +-----END DSA PRIVATE KEY----- diff --git a/roles/backup_server/molecule/default/tests/data/ssh/server_ecdsa b/roles/backup_server/molecule/default/tests/data/ssh/server_ecdsa index 22e62fcf5773fee0cb7b086581dbe53ca0e73345..a6407cc62422059b7825f3cc5d6f813d635698dc 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/server_ecdsa +++ b/roles/backup_server/molecule/default/tests/data/ssh/server_ecdsa @@ -2,4 +2,4 @@ MHcCAQEEICsNfHic+b1E8HsU2kXcQNXozt4SHCb9VQC06GvbTkZuoAoGCCqGSM49 AwEHoUQDQgAEtplvzFzDk9vNDwmjzHKBxRojrOIYuz5mqwColI4ii72I3TNIo71r i6Nt4yAht9lk8HlRZy/ULE16RNni2SsBow== ------END EC PRIVATE KEY----- \ No newline at end of file +-----END EC PRIVATE KEY----- diff --git a/roles/backup_server/molecule/default/tests/data/ssh/server_ed25519 b/roles/backup_server/molecule/default/tests/data/ssh/server_ed25519 index 757290a024ee2567a2452e0542b6ac9f9521c134..e6ad182ff60b3b234dc1d5fb23573232448143b5 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/server_ed25519 +++ b/roles/backup_server/molecule/default/tests/data/ssh/server_ed25519 @@ -4,4 +4,4 @@ QyNTUxOQAAACDkMzY9epWd7nCCb8JxWM0f72U90rloiFTzToSuSRpaugAAAJDQ62Z20Otm dgAAAAtzc2gtZWQyNTUxOQAAACDkMzY9epWd7nCCb8JxWM0f72U90rloiFTzToSuSRpaug AAAEDvdmF74GsQAOmsWcFWmXsbzdcSoHNbLiTkSWaVp0CtV+QzNj16lZ3ucIJvwnFYzR/v ZT3SuWiIVPNOhK5JGlq6AAAADGJyYW5rb0BtYXJrcwE= ------END OPENSSH PRIVATE KEY----- \ No newline at end of file +-----END OPENSSH PRIVATE KEY----- diff --git a/roles/backup_server/molecule/default/tests/data/ssh/server_rsa b/roles/backup_server/molecule/default/tests/data/ssh/server_rsa index a8b3b7720aa6a7af27da156374ac3c483687c4eb..bdd327a305c37c9d3f74e630408a89915314948d 100644 --- a/roles/backup_server/molecule/default/tests/data/ssh/server_rsa +++ b/roles/backup_server/molecule/default/tests/data/ssh/server_rsa @@ -24,4 +24,4 @@ dvDt0R1O9ch2UjnmAx/8rk5yKNLfRIzo4q2zXx0snIYCMbn9LsYZoMoA8r+Oipv0 iR+wTQKBgQCpVCOigFz1pxUxWdbjQicEwug8k7dOtXkWepNqmXXFQTXUQnhsJ4iP DlDGllPBJasoReRLAnI4OTkbuU1qECnUilVvFnqnuuox3vJ4IWeTdAxcmUAK7+WD 7EYQgHFDybzjEhxXtXGaMSfndAEVwPMRitZMUXaBjnufFW/j/8mrYg== ------END RSA PRIVATE KEY----- \ No newline at end of file +-----END RSA PRIVATE KEY----- diff --git a/roles/backup_server/molecule/default/tests/test_default.py b/roles/backup_server/molecule/default/tests/test_default.py index ab8988991be223b99e445ced14ae280d543da6f7..e8b13fe049ef81e6981e00716dbc9506aa564c76 100644 --- a/roles/backup_server/molecule/default/tests/test_default.py +++ b/roles/backup_server/molecule/default/tests/test_default.py @@ -172,8 +172,16 @@ def test_backup_ssh_server_login_mechanisms(host): Tests available SSH login mechanisms (should be just public key). """ - # Try to login with no preferred authentication types to the server. - login_attempt = host.run("ssh -v -o PreferredAuthentications=none -o NoHostAuthenticationForLocalhost=yes localhost") - - assert login_attempt.rc == 255 + # Try to login with no preferred authentication types to the + # server. + # @TODO: The /bin/false is used because the ssh command listed + # below will return error code 255. On the other hand, + # Testinfra itself treats exit code 255 as special case for + # detecting when the ssh connection to managed machine + # fails. It might be a good idea to try to reach out to + # Testinfra maintainer about this or update this test to + # use Paramiko in some way. + login_attempt = host.run("ssh -v -o PreferredAuthentications=none -o NoHostAuthenticationForLocalhost=yes localhost || /bin/false") + + assert login_attempt.rc == 1 assert "debug1: Authentications that can continue: publickey" in login_attempt.stderr.split("\r\n") diff --git a/roles/backup_server/molecule/default/tests/test_parameters_mandatory.py b/roles/backup_server/molecule/default/tests/test_parameters_mandatory.py index 77183fedefa712753c25540628b5441ea88c68df..2d551f19a6f9b968d0a29e0fc39b7a4d3e1bb82f 100644 --- a/roles/backup_server/molecule/default/tests/test_parameters_mandatory.py +++ b/roles/backup_server/molecule/default/tests/test_parameters_mandatory.py @@ -20,4 +20,4 @@ def test_firewall_configuration(host): assert firewall_config.user == 'root' assert firewall_config.group == 'root' assert firewall_config.mode == 0o640 - assert firewall_config.content == "" + assert firewall_config.content == "\n" diff --git a/roles/backup_server/molecule/default/tests/test_parameters_optional.py b/roles/backup_server/molecule/default/tests/test_parameters_optional.py index 0c8dc00f88233c4a6eef82e93fdce3b74b5e4a4d..1b7ff895ace5e059a8fbbc9536d2645cd6517273 100644 --- a/roles/backup_server/molecule/default/tests/test_parameters_optional.py +++ b/roles/backup_server/molecule/default/tests/test_parameters_optional.py @@ -110,7 +110,7 @@ def test_backup_client_authorized_keys(host): assert client1_user_authorized_keys.user == 'root' assert client1_user_authorized_keys.group == 'bak-client1_backup' assert client1_user_authorized_keys.mode == 0o640 - assert client1_user_authorized_keys.content == open('tests/data/ssh/client1.pub', 'r').read().strip() + assert client1_user_authorized_keys.content == open('tests/data/ssh/client1.pub', 'r').read() client2_user = host.user('bak-client2-backup') @@ -119,7 +119,7 @@ def test_backup_client_authorized_keys(host): assert client2_user_authorized_keys.user == 'root' assert client2_user_authorized_keys.group == 'bak-client2-backup' assert client2_user_authorized_keys.mode == 0o640 - assert client2_user_authorized_keys.content == open('tests/data/ssh/client2.pub', 'r').read().strip() + assert client2_user_authorized_keys.content == open('tests/data/ssh/client2.pub', 'r').read() def test_firewall_configuration(host):