[Zope-CVS] CVS: Products/AdaptableStorage/tests - Zope2TestBase.py:1.7

Shane Hathaway shane@zope.com
Mon, 3 Feb 2003 13:26:55 -0500


Update of /cvs-repository/Products/AdaptableStorage/tests
In directory cvs.zope.org:/tmp/cvs-serv10265/tests

Modified Files:
	Zope2TestBase.py 
Log Message:
Integrated work by Christian Zagrodnick: added mappers for Python Scripts,
DTML Methods, DTML Documents, and ZSQLMethods.  Thanks!


=== Products/AdaptableStorage/tests/Zope2TestBase.py 1.6 => 1.7 ===
--- Products/AdaptableStorage/tests/Zope2TestBase.py:1.6	Tue Jan 21 11:49:45 2003
+++ Products/AdaptableStorage/tests/Zope2TestBase.py	Mon Feb  3 13:26:52 2003
@@ -25,7 +25,10 @@
 from OFS.ObjectManager import ObjectManager
 from OFS.SimpleItem import SimpleItem
 from OFS.Image import manage_addFile
+from OFS.DTMLMethod import DTMLMethod
 from AccessControl.User import User, UserFolder
+from Products.PythonScripts.PythonScript import PythonScript
+from Products.ZSQLMethods.SQL import manage_addZSQLMethod
 
 from Products.AdaptableStorage.patches import applySetObPatch
 
@@ -366,4 +369,77 @@
                 conn2.close()
         finally:
             conn.close()
+
+
+    def testPythonScript(self):
+        conn = self.db.open()
+        try:
+            app = conn.root()['Application']
+            script = PythonScript('script')
+            script.write('##title=test script\nreturn "OK"')
+            script._makeFunction()
+            app._setObject(script.id, script, set_owner=0)
+            get_transaction().commit()
+
+            conn2 = self.db.open()
+            try:
+                app = conn2.root()['Application']
+                script = app.script
+                self.assertEqual(script.title, 'test script')
+                res = script()
+                self.assertEqual(res, 'OK')
+            finally:
+                conn2.close()
+
+        finally:
+            conn.close()
+
+
+    def testDTMLMethod(self):
+        conn = self.db.open()
+        try:
+            app = conn.root()['Application']
+            m = DTMLMethod()
+            m._setId('m')
+            method_body = '''All <dtml-var expr="'OK'">.'''
+            m.manage_edit(method_body, 'test method')
+            app._setObject(m.getId(), m, set_owner=0)
+            get_transaction().commit()
+
+            conn2 = self.db.open()
+            try:
+                app = conn2.root()['Application']
+                m = app.m
+                self.assertEqual(m.title, 'test method')
+                res = m()
+                self.assertEqual(res, 'All OK.')
+            finally:
+                conn2.close()
+
+        finally:
+            conn.close()
+
+
+    def testZSQLMethod(self):
+        conn = self.db.open()
+        try:
+            app = conn.root()['Application']
+            template = 'SELECT <dtml-var foo> from <dtml-var bar>'
+            manage_addZSQLMethod(app, 'm', 'test sql', 'none', 'foo bar',
+                                 template)
+            get_transaction().commit()
+
+            conn2 = self.db.open()
+            try:
+                app = conn2.root()['Application']
+                m = app.m
+                self.assertEqual(m.title, 'test sql')
+                self.assertEqual(m._arg._keys, ['foo', 'bar'])
+                self.assertEqual(m.src, template)
+            finally:
+                conn2.close()
+
+        finally:
+            conn.close()
+