Mercurial > p > roundup > code
diff test/test_actions.py @ 2014:366d3bbce982
Simple version of collision detection...
...with tests and a new generic template for classic and minimal.
| author | Johannes Gijsbers <jlgijsbers@users.sourceforge.net> |
|---|---|
| date | Sat, 14 Feb 2004 02:06:27 +0000 |
| parents | 1782fe36e7b8 |
| children | 5a7ec0c63095 |
line wrap: on
line diff
--- a/test/test_actions.py Sat Feb 14 01:55:35 2004 +0000 +++ b/test/test_actions.py Sat Feb 14 02:06:27 2004 +0000 @@ -1,7 +1,10 @@ +from __future__ import nested_scopes + import unittest from cgi import FieldStorage, MiniFieldStorage from roundup import hyperdb +from roundup.date import Date, Interval from roundup.cgi.actions import * from roundup.cgi.exceptions import Redirect, Unauthorised @@ -130,13 +133,43 @@ # The single value gets replaced with the tokenized list. self.assertEqual([x.value for x in self.form['foo']], ['hello', 'world']) + +class CollisionDetectionTestCase(ActionTestCase): + def setUp(self): + ActionTestCase.setUp(self) + self.action = EditItemAction(self.client) + self.now = Date('.') + + def testLastUserActivity(self): + self.assertEqual(self.action.lastUserActivity(), None) + + self.client.form.value.append(MiniFieldStorage('@lastactivity', str(self.now))) + self.assertEqual(self.action.lastUserActivity(), self.now) + + def testLastNodeActivity(self): + self.action.classname = 'issue' + self.action.nodeid = '1' + + def get(nodeid, propname): + self.assertEqual(nodeid, '1') + self.assertEqual(propname, 'activity') + return self.now + self.client.db.issue.get = get + + self.assertEqual(self.action.lastNodeActivity(), self.now) + + def testCollision(self): + self.failUnless(self.action.detectCollision(self.now, self.now + Interval("1d"))) + self.failIf(self.action.detectCollision(self.now, self.now - Interval("1d"))) + self.failIf(self.action.detectCollision(None, self.now)) def test_suite(): suite = unittest.TestSuite() suite.addTest(unittest.makeSuite(RetireActionTestCase)) suite.addTest(unittest.makeSuite(StandardSearchActionTestCase)) suite.addTest(unittest.makeSuite(FakeFilterVarsTestCase)) - suite.addTest(unittest.makeSuite(ShowActionTestCase)) + suite.addTest(unittest.makeSuite(ShowActionTestCase)) + suite.addTest(unittest.makeSuite(CollisionDetectionTestCase)) return suite if __name__ == '__main__':
