comparison test/test_actions.py @ 4992:b562df8a5056

Fix form-parsing for multilinks If multiple new items are added to a multilink property, the old version would create the new items but only link one.
author Ralf Schlatterbeck <rsc@runtux.com>
date Sun, 21 Jun 2015 21:20:10 +0200
parents ca692423e401
children 4ad465b09cbe
comparison
equal deleted inserted replaced
4991:03505579abef 4992:b562df8a5056
232 232
233 class EditItemActionTestCase(ActionTestCase): 233 class EditItemActionTestCase(ActionTestCase):
234 def setUp(self): 234 def setUp(self):
235 ActionTestCase.setUp(self) 235 ActionTestCase.setUp(self)
236 self.result = [] 236 self.result = []
237 self.new_id = 16
237 class AppendResult: 238 class AppendResult:
238 def __init__(inner_self, name): 239 def __init__(inner_self, name):
239 inner_self.name = name 240 inner_self.name = name
240 def __call__(inner_self, *args, **kw): 241 def __call__(inner_self, *args, **kw):
241 self.result.append((inner_self.name, args, kw)) 242 self.result.append((inner_self.name, args, kw))
242 if inner_self.name == 'set': 243 if inner_self.name == 'set':
243 return kw 244 return kw
244 return '17' 245 self.new_id+=1
246 return str(self.new_id)
245 247
246 self.client.db.security.hasPermission = true 248 self.client.db.security.hasPermission = true
247 self.client.classname = 'issue' 249 self.client.classname = 'issue'
248 self.client.base = 'http://tracker/' 250 self.client.base = 'http://tracker/'
249 self.client.nodeid = '4711' 251 self.client.nodeid = '4711'
272 self.action.handle() 274 self.action.handle()
273 except Redirect, msg: 275 except Redirect, msg:
274 pass 276 pass
275 self.assertEqual(expect, self.result) 277 self.assertEqual(expect, self.result)
276 278
279 def testMessageMultiAttach(self):
280 expect = \
281 [ ('create',(),{'content':'t2'})
282 , ('create',(),{'content':'t'})
283 , ('set',('4711',), {'messages':['23','42','17','18']})
284 ]
285 self.client.db.classes.get = lambda a, b:['23','42']
286 self.client.parsePropsFromForm = lambda: \
287 ( {('msg','-1'):{'content':'t'},('msg','-2'):{'content':'t2'}
288 , ('issue','4711'):{}}
289 , [('issue','4711','messages',[('msg','-1'),('msg','-2')])]
290 )
291 try :
292 self.action.handle()
293 except Redirect, msg:
294 pass
295 self.assertEqual(expect, self.result)
296
277 def testFileAttach(self): 297 def testFileAttach(self):
278 expect = \ 298 expect = \
279 [('create',(),{'content':'t','type':'text/plain','name':'t.txt'}) 299 [('create',(),{'content':'t','type':'text/plain','name':'t.txt'})
280 ,('set',('4711',),{'files':['23','42','17']}) 300 ,('set',('4711',),{'files':['23','42','17']})
281 ] 301 ]

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