diff test/test_templating.py @ 3972:eee76dd4a09f

'Make a Copy' failed with more than one person in nosy list [SF#1906147]
author Richard Jones <richard@users.sourceforge.net>
date Fri, 07 Mar 2008 00:35:47 +0000
parents 2372597ebbdb
children 13161539e5bd
line wrap: on
line diff
--- a/test/test_templating.py	Sat Mar 01 08:18:07 2008 +0000
+++ b/test/test_templating.py	Fri Mar 07 00:35:47 2008 +0000
@@ -12,7 +12,8 @@
     def setUp(self):
         self.form = FieldStorage()
         self.client = MockNull()
-        self.client.db = MockDatabase()
+        self.client.db = db = MockDatabase()
+        db.security.hasPermission = lambda *args, **kw: True
         self.client.form = self.form
 
 class HTMLDatabaseTestCase(TemplatingTestCase):
@@ -69,6 +70,24 @@
         self.assertEqual(lookupKeys(shrubbery, 'spam', ['ok','2']), ['ok',
             'eggs'])
 
+class HTMLClassTestCase(TemplatingTestCase) :
+
+    def test_multilink(self):
+        """`lookup` of an item will fail if leading or trailing whitespace
+           has not been stripped.
+        """
+        def lookup(key) :
+            self.assertEqual(key, key.strip())
+            return "User%s"%key
+        self.form.list.append(MiniFieldStorage("nosy", "1, 2"))
+        nosy = hyperdb.Multilink("user")
+        self.client.db.classes = dict \
+            ( issue = MockNull(getprops = lambda : dict(nosy = nosy))
+            , user  = MockNull(get = lambda id, name : id, lookup = lookup)
+            )
+        cls = HTMLClass(self.client, "issue")
+        cls["nosy"]
+
 '''
 class HTMLPermissions:
     def is_edit_ok(self):
@@ -243,6 +262,7 @@
     suite = unittest.TestSuite()
     suite.addTest(unittest.makeSuite(HTMLDatabaseTestCase))
     suite.addTest(unittest.makeSuite(FunctionsTestCase))
+    suite.addTest(unittest.makeSuite(HTMLClassTestCase))
     return suite
 
 if __name__ == '__main__':

Roundup Issue Tracker: http://roundup-tracker.org/