def test_ssh_into_instance(self, call_mock, _get_ssh_file_mock, authorize_ssh_mock, describe_security_group_mock, describe_instance_mock): describe_instance_mock.return_value = mock_responses.DESCRIBE_INSTANCES_RESPONSE[ 'Reservations'][0]['Instances'][0] describe_security_group_mock.return_value = mock_responses.DESCRIBE_SECURITY_GROUPS_RESPONSE[ 'SecurityGroups'][0] _get_ssh_file_mock.return_value = 'aws-eb-us-west-2' call_mock.return_value = 0 sshops.ssh_into_instance('instance-id')
def test_ssh_into_instance__neither_public_nor_private_ip_found( self, call_mock, _get_ssh_file_mock, describe_instance_mock): describe_instance_response = deepcopy( mock_responses.DESCRIBE_INSTANCES_RESPONSE['Reservations'][0] ['Instances'][0]) del describe_instance_response['PublicIpAddress'] del describe_instance_response['PrivateIpAddress'] describe_instance_mock.return_value = describe_instance_response _get_ssh_file_mock.return_value = 'aws-eb-us-west-2' call_mock.return_value = 0 with self.assertRaises(sshops.NotFoundError): sshops.ssh_into_instance('instance-id')
def test_ssh_into_instance__ssh_fails(self, call_mock, _get_ssh_file_mock, authorize_ssh_mock, describe_security_group_mock, describe_instance_mock): describe_instance_mock.return_value = mock_responses.DESCRIBE_INSTANCES_RESPONSE[ 'Reservations'][0]['Instances'][0] describe_security_group_mock.return_value = mock_responses.DESCRIBE_SECURITY_GROUPS_RESPONSE[ 'SecurityGroups'][0] _get_ssh_file_mock.return_value = 'aws-eb-us-west-2' call_mock.return_value = 1 with self.assertRaises(sshops.CommandError) as context_manager: sshops.ssh_into_instance('instance-id') self.assertEqual('An error occurred while running: ssh.', str(context_manager.exception))
def test_ssh_into_instance__uses_private_address( self, call_mock, _get_ssh_file_mock, authorize_ssh_mock, describe_security_group_mock, describe_instance_mock): describe_instance_response = deepcopy( mock_responses.DESCRIBE_INSTANCES_RESPONSE['Reservations'][0] ['Instances'][0]) del describe_instance_response['PublicIpAddress'] describe_instance_mock.return_value = describe_instance_response describe_security_group_mock.return_value = mock_responses.DESCRIBE_SECURITY_GROUPS_RESPONSE[ 'SecurityGroups'][0] _get_ssh_file_mock.return_value = 'aws-eb-us-west-2' call_mock.return_value = 0 sshops.ssh_into_instance('instance-id') call_mock.assert_called_once_with( ['ssh', '-i', 'aws-eb-us-west-2', '[email protected]'])
def test_ssh_into_instance__no_ssh_rule_exists( self, call_mock, _get_ssh_file_mock, authorize_ssh_mock, revoke_ssh_mock, describe_security_group_mock, describe_instance_mock): describe_instance_response = deepcopy( mock_responses.DESCRIBE_INSTANCES_RESPONSE['Reservations'][0] ['Instances'][0]) describe_instance_mock.return_value = describe_instance_response describe_security_group_mock.return_value = mock_responses.DESCRIBE_SECURITY_GROUPS_RESPONSE[ 'SecurityGroups'][1] _get_ssh_file_mock.return_value = 'aws-eb-us-west-2' call_mock.return_value = 0 sshops.ssh_into_instance('instance-id') authorize_ssh_mock.assert_called_once_with('sg-12312313') revoke_ssh_mock.assert_called_once_with('sg-12312313') call_mock.assert_called_once_with( ['ssh', '-i', 'aws-eb-us-west-2', '[email protected]'])
def test_ssh_into_instance__no_key_pair(self, describe_instance_mock): describe_instance_mock.return_value = dict() with self.assertRaises(sshops.NoKeypairError): sshops.ssh_into_instance('some-instance-id')