def test_create_user_alternate_binary_existing_user(
            self, mock_pwd, mock_subprocess):
        mock_pwd.getpwnam.return_value = True
        binary_value = 'test_binary'

        a = SAMLAuthenticator()
        a.create_system_user_binary = binary_value

        assert a._optional_user_add('Bluedata')

        mock_pwd.getpwnam.assert_called_once_with('Bluedata')
        mock_subprocess.call.assert_not_called()
    def test_create_user_alternate_binary(self, mock_pwd, mock_subprocess):
        mock_pwd.getpwnam.side_effect = KeyError('Bad username')
        mock_subprocess.call.return_value = 0
        binary_value = 'test_binary'

        a = SAMLAuthenticator()
        a.create_system_user_binary = binary_value

        assert a._optional_user_add('Bluedata')

        mock_pwd.getpwnam.assert_called_once_with('Bluedata')
        mock_subprocess.call.assert_called_once_with(
            [binary_value, 'Bluedata'])