From d889840294dda2876b0ffc18c1b9815cb7ebd060 Mon Sep 17 00:00:00 2001
From: Nicolas Delaby <nicolas@nexedi.com>
Date: Mon, 31 May 2010 17:14:04 +0000
Subject: [PATCH] Fix assertXMLViewIsEqual. Not that diff on edit_workflow are
 ignored, because ERP5Conduit is not able to merge workflow history. No
 decisions has been taken to decide how manage workflow history.

git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@35836 20353a03-c40f-0410-a6d1-a30d3c3de9de
---
 product/ERP5SyncML/tests/testERP5SyncML.py | 35 ++++++++++++----------
 1 file changed, 20 insertions(+), 15 deletions(-)

diff --git a/product/ERP5SyncML/tests/testERP5SyncML.py b/product/ERP5SyncML/tests/testERP5SyncML.py
index afe55fd7ee..c8e4fc483a 100644
--- a/product/ERP5SyncML/tests/testERP5SyncML.py
+++ b/product/ERP5SyncML/tests/testERP5SyncML.py
@@ -361,8 +361,8 @@ class TestERP5SyncMLMixin:
     transaction.commit()
     self.tic()
 
-  def assertXMLViewIsEqual(self, sub_id, object_pub=None, object_sub=None,\
-                           force=0):
+  def assertXMLViewIsEqual(self, sub_id, object_pub=None, object_sub=None,
+                                                                  force=False):
     """
       Check the equality between two xml objects with gid as id
     """
@@ -373,24 +373,29 @@ class TestERP5SyncMLMixin:
     gid_sub = publication.getGidFromObject(object_sub)
     self.assertEqual(gid_pub, gid_sub)
     conduit = ERP5Conduit()
-    xml_pub = conduit.getXMLFromObjectWithGid(object=object_pub, gid=gid_pub,\
-              xml_mapping=publication.getXMLMapping())
+    xml_pub = conduit.getXMLFromObjectWithGid(object=object_pub, gid=gid_pub,
+                                       xml_mapping=publication.getXMLMapping())
     #if One Way From Server there is not xml_mapping for subscription
-    xml_sub = conduit.getXMLFromObjectWithGid(object=object_sub, gid=gid_sub,\
-              xml_mapping=subscription.getXMLMapping(force))
+    xml_sub = conduit.getXMLFromObjectWithGid(object=object_sub, gid=gid_sub,
+                                 xml_mapping=subscription.getXMLMapping(force))
     erp5diff = ERP5Diff()
     erp5diff.compare(xml_pub, xml_sub)
     result = erp5diff.outputString()
     result = etree.XML(result)
-    if len(result) != 0 :
-      for update in result:
-        #XXX edit workflow is not replaced, so discard workflow checking
-        if update.get('select').find('time') != -1 or\
-        update.get('select').find('serial') !=1:
-          continue
-        else :
-          self.fail('diff between pub:\n%s \nand sub:\n%s \n => \n%s' %\
-              (xml_pub, xml_sub, etree.tostring(result, pretty_print=True)))
+    identity = True
+    for update in result:
+      #XXX edit workflow is not replaced, so discard workflow checking
+      select = update.get('select', '')
+      discarded_list = ('edit_workflow',)
+      if 'edit_workflow' in  select:
+        continue
+      else:
+        identity = False
+        break
+    if not identity:
+      self.fail('diff between pub:%s and sub:%s \n%s' % (object_pub.getPath(),
+                                                         object_sub.getPath(),
+                                   etree.tostring(result, pretty_print=True)))
 
   def deletePublicationAndSubscription(self):
     portal_sync = self.getSynchronizationTool()
-- 
2.30.9