[Zope3-checkins] CVS: Zope3/src/zope/app/browser/form/tests - test_editview.py:1.10

Jim Fulton jim@zope.com
Wed, 2 Jul 2003 18:10:43 -0400


Update of /cvs-repository/Zope3/src/zope/app/browser/form/tests
In directory cvs.zope.org:/tmp/cvs-serv32698/src/zope/app/browser/form/tests

Modified Files:
	test_editview.py 
Log Message:
Added an editview hook.  When an edit view has made changes to an
object, it will call it's "called" method. This method can be
overridden in an editview class to perform processing based on updated
data.


=== Zope3/src/zope/app/browser/form/tests/test_editview.py 1.9 => 1.10 ===
--- Zope3/src/zope/app/browser/form/tests/test_editview.py:1.9	Fri Jun  6 17:35:17 2003
+++ Zope3/src/zope/app/browser/form/tests/test_editview.py	Wed Jul  2 18:10:39 2003
@@ -124,6 +124,33 @@
         self.assertEqual(c.getbaz(), u'd baz')
         self.failUnless(getEvents(filter=lambda event: event.object == c))
 
+    def test_apply_update_changed(self):
+        class EVc(EV):
+            _changed = 0
+            def changed(self):
+                self._changed += 1
+        
+        c = C()
+        request = TestRequest()
+        v = EVc(c, request)
+        oldchanged = v._changed
+        d = {}
+        d['foo'] = u'd foo'
+        d['bar'] = u'd bar'
+        d['getbaz'] = u'd baz'
+        self.failIf(v.apply_update(d))
+        self.assertEqual(c.foo, u'd foo')
+        self.assertEqual(c.bar, u'd bar')
+        self.assertEqual(c.a  , u'c a')
+        self.assertEqual(c.b  , u'c b')
+        self.assertEqual(c.getbaz(), u'd baz')
+        self.failUnless(getEvents(filter=lambda event: event.object == c))
+
+        # make sure that changed was called
+        self.assertEqual(v._changed, oldchanged + 1)
+        self.failUnless(v.apply_update(d))
+        self.assertEqual(v._changed, oldchanged + 1)
+
     def test_apply_update_w_adapter(self):
         c = Foo()
         request = TestRequest()