comparison 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
comparison
equal deleted inserted replaced
2013:d116293863a4 2014:366d3bbce982
1 from __future__ import nested_scopes
2
1 import unittest 3 import unittest
2 from cgi import FieldStorage, MiniFieldStorage 4 from cgi import FieldStorage, MiniFieldStorage
3 5
4 from roundup import hyperdb 6 from roundup import hyperdb
7 from roundup.date import Date, Interval
5 from roundup.cgi.actions import * 8 from roundup.cgi.actions import *
6 from roundup.cgi.exceptions import Redirect, Unauthorised 9 from roundup.cgi.exceptions import Redirect, Unauthorised
7 10
8 class MockNull: 11 class MockNull:
9 def __init__(self, **kwargs): 12 def __init__(self, **kwargs):
128 131
129 self.assertFilterEquals('foo') 132 self.assertFilterEquals('foo')
130 133
131 # The single value gets replaced with the tokenized list. 134 # The single value gets replaced with the tokenized list.
132 self.assertEqual([x.value for x in self.form['foo']], ['hello', 'world']) 135 self.assertEqual([x.value for x in self.form['foo']], ['hello', 'world'])
136
137 class CollisionDetectionTestCase(ActionTestCase):
138 def setUp(self):
139 ActionTestCase.setUp(self)
140 self.action = EditItemAction(self.client)
141 self.now = Date('.')
142
143 def testLastUserActivity(self):
144 self.assertEqual(self.action.lastUserActivity(), None)
145
146 self.client.form.value.append(MiniFieldStorage('@lastactivity', str(self.now)))
147 self.assertEqual(self.action.lastUserActivity(), self.now)
148
149 def testLastNodeActivity(self):
150 self.action.classname = 'issue'
151 self.action.nodeid = '1'
152
153 def get(nodeid, propname):
154 self.assertEqual(nodeid, '1')
155 self.assertEqual(propname, 'activity')
156 return self.now
157 self.client.db.issue.get = get
158
159 self.assertEqual(self.action.lastNodeActivity(), self.now)
160
161 def testCollision(self):
162 self.failUnless(self.action.detectCollision(self.now, self.now + Interval("1d")))
163 self.failIf(self.action.detectCollision(self.now, self.now - Interval("1d")))
164 self.failIf(self.action.detectCollision(None, self.now))
133 165
134 def test_suite(): 166 def test_suite():
135 suite = unittest.TestSuite() 167 suite = unittest.TestSuite()
136 suite.addTest(unittest.makeSuite(RetireActionTestCase)) 168 suite.addTest(unittest.makeSuite(RetireActionTestCase))
137 suite.addTest(unittest.makeSuite(StandardSearchActionTestCase)) 169 suite.addTest(unittest.makeSuite(StandardSearchActionTestCase))
138 suite.addTest(unittest.makeSuite(FakeFilterVarsTestCase)) 170 suite.addTest(unittest.makeSuite(FakeFilterVarsTestCase))
139 suite.addTest(unittest.makeSuite(ShowActionTestCase)) 171 suite.addTest(unittest.makeSuite(ShowActionTestCase))
172 suite.addTest(unittest.makeSuite(CollisionDetectionTestCase))
140 return suite 173 return suite
141 174
142 if __name__ == '__main__': 175 if __name__ == '__main__':
143 runner = unittest.TextTestRunner() 176 runner = unittest.TextTestRunner()
144 unittest.main(testRunner=runner) 177 unittest.main(testRunner=runner)

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