Mercurial > p > roundup > code
comparison test/test_actions.py @ 6325:1a15089c2e49 issue2550923_computed_property
Merge trunk into branch
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Sat, 06 Feb 2021 20:15:26 -0500 |
| parents | 68d83479747b |
| children | f2c31f5ec50b |
comparison
equal
deleted
inserted
replaced
| 6319:20e77c3ce6f6 | 6325:1a15089c2e49 |
|---|---|
| 1 from __future__ import print_function | 1 from __future__ import print_function |
| 2 import unittest | 2 import unittest, copy |
| 3 from cgi import FieldStorage, MiniFieldStorage | 3 from cgi import FieldStorage, MiniFieldStorage |
| 4 | 4 |
| 5 from roundup import hyperdb | 5 from roundup import hyperdb |
| 6 from roundup.date import Date, Interval | 6 from roundup.date import Date, Interval |
| 7 from roundup.cgi.actions import * | 7 from roundup.cgi.actions import * |
| 27 self.client.db.Otk.getall = self.data_get | 27 self.client.db.Otk.getall = self.data_get |
| 28 self.client.db.Otk.set = self.data_set | 28 self.client.db.Otk.set = self.data_set |
| 29 self.client.db.config.WEB_LOGIN_ATTEMPTS_MIN = 20 | 29 self.client.db.config.WEB_LOGIN_ATTEMPTS_MIN = 20 |
| 30 self.client._ok_message = [] | 30 self.client._ok_message = [] |
| 31 self.client._error_message = [] | 31 self.client._error_message = [] |
| 32 self.client.add_error_message = lambda x : add_message( | 32 self.client.add_error_message = lambda x, escape=True: add_message( |
| 33 self.client._error_message, x) | 33 self.client._error_message, x, escape=escape) |
| 34 self.client.add_ok_message = lambda x : add_message( | 34 self.client.add_ok_message = lambda x : add_message( |
| 35 self.client._ok_message, x) | 35 self.client._ok_message, x) |
| 36 self.client.form = self.form | 36 self.client.form = self.form |
| 37 self.client.base = "http://whoami.com/path/" | 37 self.client.base = "http://whoami.com/path/" |
| 38 class TemplatingUtils: | 38 class TemplatingUtils: |
| 237 self.action = EditItemAction(self.client) | 237 self.action = EditItemAction(self.client) |
| 238 self.now = Date('.') | 238 self.now = Date('.') |
| 239 # round off for testing | 239 # round off for testing |
| 240 self.now.second = int(self.now.second) | 240 self.now.second = int(self.now.second) |
| 241 | 241 |
| 242 def testLastUserActivity(self): | 242 def testLastUserActivityAt(self): |
| 243 self.assertEqual(self.action.lastUserActivity(), None) | 243 self.assertEqual(self.action.lastUserActivity(), None) |
| 244 | 244 |
| 245 # test @ special variable form | |
| 245 self.client.form.value.append( | 246 self.client.form.value.append( |
| 246 MiniFieldStorage('@lastactivity', str(self.now))) | 247 MiniFieldStorage('@lastactivity', str(self.now))) |
| 248 self.assertEqual(self.action.lastUserActivity(), self.now) | |
| 249 | |
| 250 def testLastUserActivityColon(self): | |
| 251 self.assertEqual(self.action.lastUserActivity(), None) | |
| 252 | |
| 253 # test : special variable form | |
| 254 self.client.form.value.append( | |
| 255 MiniFieldStorage(':lastactivity', str(self.now))) | |
| 247 self.assertEqual(self.action.lastUserActivity(), self.now) | 256 self.assertEqual(self.action.lastUserActivity(), self.now) |
| 248 | 257 |
| 249 def testLastNodeActivity(self): | 258 def testLastNodeActivity(self): |
| 250 self.action.classname = 'issue' | 259 self.action.classname = 'issue' |
| 251 self.action.nodeid = '1' | 260 self.action.nodeid = '1' |
| 260 | 269 |
| 261 def testCollision(self): | 270 def testCollision(self): |
| 262 # fake up an actual change | 271 # fake up an actual change |
| 263 self.action.classname = 'test' | 272 self.action.classname = 'test' |
| 264 self.action.nodeid = '1' | 273 self.action.nodeid = '1' |
| 265 self.client.parsePropsFromForm = lambda: ({('test','1'):{1:1}}, []) | 274 self.client.parsePropsFromForm = lambda: ( |
| 266 self.assertTrue(self.action.detectCollision(self.now, | 275 {('test','1'):{"prop1":"1"}}, []) |
| 267 self.now + Interval("1d"))) | 276 props = self.action.detectCollision(self.now, |
| 277 self.now + Interval("1d")) | |
| 278 self.assertTrue(props) | |
| 279 self.action.handleCollision(props) | |
| 280 self.assertEqual(self.client._error_message[0], | |
| 281 'Edit Error: someone else has edited this test ' | |
| 282 '(prop1). View <a target="_blank" href="test1">their ' | |
| 283 'changes</a> in a new window.') | |
| 268 self.assertFalse(self.action.detectCollision(self.now, | 284 self.assertFalse(self.action.detectCollision(self.now, |
| 269 self.now - Interval("1d"))) | 285 self.now - Interval("1d"))) |
| 270 self.assertFalse(self.action.detectCollision(None, self.now)) | 286 self.assertFalse(self.action.detectCollision(None, self.now)) |
| 271 | 287 |
| 272 class LoginTestCase(ActionTestCase): | 288 class LoginTestCase(ActionTestCase): |
