@@ -12,7 +12,8 @@ class TemplatingTestCase(unittest.TestCase):
1212 def setUp (self ):
1313 self .form = FieldStorage ()
1414 self .client = MockNull ()
15- self .client .db = MockDatabase ()
15+ self .client .db = db = MockDatabase ()
16+ db .security .hasPermission = lambda * args , ** kw : True
1617 self .client .form = self .form
1718
1819class HTMLDatabaseTestCase (TemplatingTestCase ):
@@ -69,6 +70,24 @@ def get(entry, key):
6970 self .assertEqual (lookupKeys (shrubbery , 'spam' , ['ok' ,'2' ]), ['ok' ,
7071 'eggs' ])
7172
73+ class HTMLClassTestCase (TemplatingTestCase ) :
74+
75+ def test_multilink (self ):
76+ """`lookup` of an item will fail if leading or trailing whitespace
77+ has not been stripped.
78+ """
79+ def lookup (key ) :
80+ self .assertEqual (key , key .strip ())
81+ return "User%s" % key
82+ self .form .list .append (MiniFieldStorage ("nosy" , "1, 2" ))
83+ nosy = hyperdb .Multilink ("user" )
84+ self .client .db .classes = dict \
85+ ( issue = MockNull (getprops = lambda : dict (nosy = nosy ))
86+ , user = MockNull (get = lambda id , name : id , lookup = lookup )
87+ )
88+ cls = HTMLClass (self .client , "issue" )
89+ cls ["nosy" ]
90+
7291'''
7392class HTMLPermissions:
7493 def is_edit_ok(self):
@@ -243,6 +262,7 @@ def test_suite():
243262 suite = unittest .TestSuite ()
244263 suite .addTest (unittest .makeSuite (HTMLDatabaseTestCase ))
245264 suite .addTest (unittest .makeSuite (FunctionsTestCase ))
265+ suite .addTest (unittest .makeSuite (HTMLClassTestCase ))
246266 return suite
247267
248268if __name__ == '__main__' :
0 commit comments