Author: andrej Date: Sun Mar 17 14:55:13 2013 New Revision: 1457457 URL: http://svn.apache.org/r1457457 Log: patching trac, make consistent behaivour of old_values parameter of IResourceChangeLisntener.resource_changed method - towards #411
Modified: incubator/bloodhound/trunk/trac/trac/attachment.py incubator/bloodhound/trunk/trac/trac/tests/attachment.py incubator/bloodhound/trunk/trac/trac/ticket/model.py incubator/bloodhound/trunk/trac/trac/wiki/model.py incubator/bloodhound/trunk/trac/trac/wiki/tests/model.py Modified: incubator/bloodhound/trunk/trac/trac/attachment.py URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/trac/trac/attachment.py?rev=1457457&r1=1457456&r2=1457457&view=diff ============================================================================== --- incubator/bloodhound/trunk/trac/trac/attachment.py (original) +++ incubator/bloodhound/trunk/trac/trac/attachment.py Sun Mar 17 14:55:13 2013 @@ -288,7 +288,11 @@ class Attachment(object): for listener in AttachmentModule(self.env).change_listeners: if hasattr(listener, 'attachment_reparented'): listener.attachment_reparented(self, old_realm, old_id) - old_values = dict(parent_realm=old_realm, parent_id=old_id) + old_values = dict() + if self.parent_realm != old_realm: + old_values["parent_realm"] = old_realm + if self.parent_id != old_id: + old_values["parent_id"] = old_id ResourceSystem(self.env).resource_changed(self, old_values=old_values) def insert(self, filename, fileobj, size, t=None, db=None): Modified: incubator/bloodhound/trunk/trac/trac/tests/attachment.py URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/trac/trac/tests/attachment.py?rev=1457457&r1=1457456&r2=1457457&view=diff ============================================================================== --- incubator/bloodhound/trunk/trac/trac/tests/attachment.py (original) +++ incubator/bloodhound/trunk/trac/trac/tests/attachment.py Sun Mar 17 14:55:13 2013 @@ -253,8 +253,7 @@ class AttachmentResourceChangeListenerTe self.assertEqual(attachment.filename, self.filename) self.assertEqual(attachment.parent_realm, self.parent_realm) self.assertEqual("SomePage", self.parent_id) - self.assertEqual( - self.DUMMY_PARENT_REALM, self.listener.old_values["parent_realm"]) + self.assertNotIn("parent_realm", self.listener.old_values) self.assertEqual( self.DUMMY_PARENT_ID, self.listener.old_values["parent_id"]) Modified: incubator/bloodhound/trunk/trac/trac/ticket/model.py URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/trac/trac/ticket/model.py?rev=1457457&r1=1457456&r2=1457457&view=diff ============================================================================== --- incubator/bloodhound/trunk/trac/trac/ticket/model.py (original) +++ incubator/bloodhound/trunk/trac/trac/ticket/model.py Sun Mar 17 14:55:13 2013 @@ -770,7 +770,11 @@ class AbstractEnum(object): (self.name, self._old_name)) TicketSystem(self.env).reset_ticket_fields() - old_values = dict(name=self._old_name, value=self._old_value) + old_values = dict() + if self.name != self._old_name: + old_values["name"] = self._old_name + if self.value != self._old_value: + old_values["value"] = self._old_value self._old_name = self.name self._old_value = self.value ResourceSystem(self.env).resource_changed(self, old_values) @@ -905,7 +909,10 @@ class Component(object): self._old_name = self.name TicketSystem(self.env).reset_ticket_fields() - old_values = dict(name=old_name) + #todo:add support of old_values for owner and description fields + old_values = dict() + if self.name != old_name: + old_values["name"] = old_name ResourceSystem(self.env).resource_changed(self, old_values) @classmethod @@ -1221,7 +1228,10 @@ class Version(object): self._old_name = self.name TicketSystem(self.env).reset_ticket_fields() - old_values = dict(name=old_name) + #todo: add support of old_values for time and description fields + old_values = dict() + if self.name != old_name: + old_values["name"] = old_name ResourceSystem(self.env).resource_changed(self, old_values) @classmethod Modified: incubator/bloodhound/trunk/trac/trac/wiki/model.py URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/trac/trac/wiki/model.py?rev=1457457&r1=1457456&r2=1457457&view=diff ============================================================================== --- incubator/bloodhound/trunk/trac/trac/wiki/model.py (original) +++ incubator/bloodhound/trunk/trac/trac/wiki/model.py Sun Mar 17 14:55:13 2013 @@ -166,18 +166,19 @@ class WikiPage(object): time=t, comment=comment, author=author, - remote_addr=remote_addr, - source_action="save") + remote_addr=remote_addr) if self.version == 1: ResourceSystem(self.env).resource_created(self, context) else: + old_values = dict() + if self.readonly != self.old_readonly: + old_values["readonly"] = self.old_readonly + if self.text != self.old_text: + old_values["text"] = self.old_text ResourceSystem(self.env).resource_changed( self, - old_values=dict( - name=self.name, - readonly = self.old_readonly, - text = self.old_text), - context = context) + old_values, + context) self.old_readonly = self.readonly self.old_text = self.text @@ -217,11 +218,7 @@ class WikiPage(object): ResourceSystem(self.env).resource_changed( self, - old_values=dict( - name=old_name, - readonly = self.readonly, - text = self.text), - context=dict(source_action="rename") + dict(name=old_name) ) def get_history(self, db=None): Modified: incubator/bloodhound/trunk/trac/trac/wiki/tests/model.py URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/trac/trac/wiki/tests/model.py?rev=1457457&r1=1457456&r2=1457457&view=diff ============================================================================== --- incubator/bloodhound/trunk/trac/trac/wiki/tests/model.py (original) +++ incubator/bloodhound/trunk/trac/trac/wiki/tests/model.py Sun Mar 17 14:55:13 2013 @@ -299,10 +299,7 @@ class WikiResourceChangeListenerTestCase self.assertIsInstance(self.listener.resource, WikiPage) self.assertEqual(self.INITIAL_NAME, self.wiki_name) self.assertEqual(CHANGED_TEXT, self.wiki_text) - self.assertEqual( - dict(text=self.INITIAL_TEXT, readonly=0, name=self.INITIAL_NAME), - self.listener.old_values) - self.assertEqual("save", self.listener.context["source_action"]) + self.assertEqual({"text":self.INITIAL_TEXT}, self.listener.old_values) def test_change_listener_renamed(self): wiki_page = self._create_wiki_page(self.INITIAL_NAME) @@ -312,10 +309,7 @@ class WikiResourceChangeListenerTestCase self.assertIsInstance(self.listener.resource, WikiPage) self.assertEqual(CHANGED_NAME, self.wiki_name) self.assertEqual(self.INITIAL_TEXT, self.wiki_text) - self.assertEqual( - dict(text=self.INITIAL_TEXT, readonly=0, name=self.INITIAL_NAME), - self.listener.old_values) - self.assertEqual("rename", self.listener.context["source_action"]) + self.assertEqual({"name":self.INITIAL_NAME}, self.listener.old_values) def test_change_listener_deleted(self): wiki_page = self._create_wiki_page(self.INITIAL_NAME)