Mercurial > p > roundup > code
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 ] |
