comparison test/db_test_base.py @ 2906:a8808157f892

fix some bugs introduced in refactoring of blobfiles filename() unless in debug mode, keep a single persistent connection through a single web or mailgw request fix enabling of DEBUG logging in db_test_case (no cmdline switch yet)
author Richard Jones <richard@users.sourceforge.net>
date Fri, 12 Nov 2004 04:07:05 +0000
parents 09a4d6dd6dcb
children 0aaf356fd105
comparison
equal deleted inserted replaced
2905:6e46572a9f39 2906:a8808157f892
13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 13 # BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS" 14 # FOR A PARTICULAR PURPOSE. THE CODE PROVIDED HEREUNDER IS ON AN "AS IS"
15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE, 15 # BASIS, AND THERE IS NO OBLIGATION WHATSOEVER TO PROVIDE MAINTENANCE,
16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 16 # SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
17 # 17 #
18 # $Id: db_test_base.py,v 1.53 2004-11-11 06:04:59 richard Exp $ 18 # $Id: db_test_base.py,v 1.54 2004-11-12 04:07:05 richard Exp $
19 19
20 import unittest, os, shutil, errno, imp, sys, time, pprint 20 import unittest, os, shutil, errno, imp, sys, time, pprint
21 21
22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \ 22 from roundup.hyperdb import String, Password, Link, Multilink, Date, \
23 Interval, DatabaseError, Boolean, Number, Node 23 Interval, DatabaseError, Boolean, Number, Node
29 config.DATABASE = "_test_dir" 29 config.DATABASE = "_test_dir"
30 config.RDBMS_NAME = "rounduptest" 30 config.RDBMS_NAME = "rounduptest"
31 config.RDBMS_HOST = "localhost" 31 config.RDBMS_HOST = "localhost"
32 config.RDBMS_USER = "rounduptest" 32 config.RDBMS_USER = "rounduptest"
33 config.RDBMS_PASSWORD = "rounduptest" 33 config.RDBMS_PASSWORD = "rounduptest"
34 config.logging = MockNull() 34 #config.logging = MockNull()
35 # these TRACKER_WEB and MAIL_DOMAIN values are used in mailgw tests 35 # these TRACKER_WEB and MAIL_DOMAIN values are used in mailgw tests
36 config.MAIL_DOMAIN = "your.tracker.email.domain.example" 36 config.MAIL_DOMAIN = "your.tracker.email.domain.example"
37 config.TRACKER_WEB = "http://tracker.example/cgi-bin/roundup.cgi/bugs/" 37 config.TRACKER_WEB = "http://tracker.example/cgi-bin/roundup.cgi/bugs/"
38 # uncomment the following to have excessive debug output from test cases 38 # uncomment the following to have excessive debug output from test cases
39 # FIXME: tracker logging level should be increased by -v arguments 39 # FIXME: tracker logging level should be increased by -v arguments
40 # to 'run_tests.py' script 40 # to 'run_tests.py' script
41 #config.LOGGING_LEVEL = "DEBUG" 41 #config.LOGGING_LEVEL = "DEBUG"
42 #config.init_logging()
42 43
43 def setupTracker(dirname, backend="anydbm"): 44 def setupTracker(dirname, backend="anydbm"):
44 """Install and initialize new tracker in dirname; return tracker instance. 45 """Install and initialize new tracker in dirname; return tracker instance.
45 46
46 If the directory exists, it is wiped out before the operation. 47 If the directory exists, it is wiped out before the operation.
233 if commit: self.db.commit() 234 if commit: self.db.commit()
234 l = [u1,u2]; l.sort() 235 l = [u1,u2]; l.sort()
235 m = self.db.issue.get(nid, "nosy"); m.sort() 236 m = self.db.issue.get(nid, "nosy"); m.sort()
236 self.assertEqual(l, m) 237 self.assertEqual(l, m)
237 238
238 def testMultilinkOrdering(self): 239 # XXX one day, maybe...
239 for i in range(10): 240 # def testMultilinkOrdering(self):
240 self.db.user.create(username='foo%s'%i) 241 # for i in range(10):
241 i = self.db.issue.create(title="spam", nosy=['5','3','12','4']) 242 # self.db.user.create(username='foo%s'%i)
242 self.db.commit() 243 # i = self.db.issue.create(title="spam", nosy=['5','3','12','4'])
243 l = self.db.issue.get(i, "nosy") 244 # self.db.commit()
244 # all backends should return the Multilink numeric-id-sorted 245 # l = self.db.issue.get(i, "nosy")
245 self.assertEqual(l, ['3', '4', '5', '12']) 246 # # all backends should return the Multilink numeric-id-sorted
247 # self.assertEqual(l, ['3', '4', '5', '12'])
246 248
247 # Date 249 # Date
248 def testDateChange(self): 250 def testDateChange(self):
249 self.assertRaises(TypeError, self.db.issue.create, 251 self.assertRaises(TypeError, self.db.issue.create,
250 title='spam', deadline=1) 252 title='spam', deadline=1)
600 ar(TypeError, self.db.user.set, nid, age='a') 602 ar(TypeError, self.db.user.set, nid, age='a')
601 # invalid boolean value 603 # invalid boolean value
602 ar(TypeError, self.db.user.set, nid, assignable='true') 604 ar(TypeError, self.db.user.set, nid, assignable='true')
603 605
604 def testJournals(self): 606 def testJournals(self):
605 self.db.user.create(username="mary") 607 muid = self.db.user.create(username="mary")
606 self.db.user.create(username="pete") 608 self.db.user.create(username="pete")
607 self.db.issue.create(title="spam", status='1') 609 self.db.issue.create(title="spam", status='1')
608 self.db.commit() 610 self.db.commit()
609 611
610 # journal entry for issue create 612 # journal entry for issue create
632 self.assertEqual(('issue', '1', 'assignedto'), params) 634 self.assertEqual(('issue', '1', 'assignedto'), params)
633 635
634 # wait a bit to keep proper order of journal entries 636 # wait a bit to keep proper order of journal entries
635 time.sleep(0.01) 637 time.sleep(0.01)
636 # journal entry for unlink 638 # journal entry for unlink
639 self.db.setCurrentUser('mary')
637 self.db.issue.set('1', assignedto='2') 640 self.db.issue.set('1', assignedto='2')
638 self.db.commit() 641 self.db.commit()
639 journal = self.db.getjournal('user', '1') 642 journal = self.db.getjournal('user', '1')
640 self.assertEqual(3, len(journal)) 643 self.assertEqual(3, len(journal))
641 (nodeid, date_stamp, journaltag, action, params) = journal[2] 644 (nodeid, date_stamp, journaltag, action, params) = journal[2]
642 self.assertEqual('1', nodeid) 645 self.assertEqual('1', nodeid)
643 self.assertEqual('1', journaltag) 646 self.assertEqual(muid, journaltag)
644 self.assertEqual('unlink', action) 647 self.assertEqual('unlink', action)
645 self.assertEqual(('issue', '1', 'assignedto'), params) 648 self.assertEqual(('issue', '1', 'assignedto'), params)
646 649
647 # test disabling journalling 650 # test disabling journalling
648 # ... get the last entry 651 # ... get the last entry

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