Ticket: https://fedorahosted.org/freeipa/ticket/4793

I'm able to reproduce it only in one nose test.

Patch attached.

--
Martin Basti

From a50874ff0d32b004545b76f987fc402548bd2de8 Mon Sep 17 00:00:00 2001
From: Martin Basti <mba...@redhat.com>
Date: Tue, 9 Dec 2014 12:27:42 +0100
Subject: [PATCH] Fix adding messages on client side

https://fedorahosted.org/freeipa/ticket/4793
---
 ipalib/messages.py | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/ipalib/messages.py b/ipalib/messages.py
index b44beca729f5483a7241e4c98a9f724ed663e70f..3076879009312fd342c652c57dbb6555dc3a905d 100644
--- a/ipalib/messages.py
+++ b/ipalib/messages.py
@@ -39,8 +39,18 @@ from ipalib.capabilities import client_has_capability
 
 
 def add_message(version, result, message):
+    """
+    Add new message to result.
+    Result can contain messages in tuple on client and in list on server.
+    """
     if client_has_capability(version, 'messages'):
-        result.setdefault('messages', []).append(message.to_dict())
+        messages = result.get('messages')
+        if isinstance(messages, tuple):
+            # messages are in tuple, concatenate it with new message
+            result['messages'] = messages + (message.to_dict(),)
+        else:
+            # None, list
+            result.setdefault('messages', []).append(message.to_dict())
 
 
 def process_message_arguments(obj, format=None, message=None, **kw):
-- 
1.8.3.1

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to