Mercurial > p > roundup > code
comparison test/db_test_base.py @ 5175:e1e40674a0bc
Implement double-precision Number
.. as an option to the 'Number' property.
| author | Ralf Schlatterbeck <rsc@runtux.com> |
|---|---|
| date | Mon, 12 Dec 2016 13:53:47 +0100 |
| parents | 6ae426092d7d |
| children | 462b0f76fce8 |
comparison
equal
deleted
inserted
replaced
| 5174:a76fbb9f5535 | 5175:e1e40674a0bc |
|---|---|
| 78 mls.setkey("name") | 78 mls.setkey("name") |
| 79 status = module.Class(db, "status", name=String(), mls=Multilink("mls")) | 79 status = module.Class(db, "status", name=String(), mls=Multilink("mls")) |
| 80 status.setkey("name") | 80 status.setkey("name") |
| 81 priority = module.Class(db, "priority", name=String(), order=String()) | 81 priority = module.Class(db, "priority", name=String(), order=String()) |
| 82 priority.setkey("name") | 82 priority.setkey("name") |
| 83 user = module.Class(db, "user", username=String(), password=Password(quiet=True), | 83 user = module.Class(db, "user", username=String(), |
| 84 assignable=Boolean(quiet=True), age=Number(quiet=True), roles=String(), address=String(), | 84 password=Password(quiet=True), assignable=Boolean(quiet=True), |
| 85 rating=Integer(quiet=True), supervisor=Link('user'),realname=String(quiet=True)) | 85 age=Number(quiet=True), roles=String(), address=String(), |
| 86 rating=Integer(quiet=True), supervisor=Link('user'), | |
| 87 realname=String(quiet=True), longnumber=Number(use_double=True)) | |
| 86 user.setkey("username") | 88 user.setkey("username") |
| 87 file = module.FileClass(db, "file", name=String(), type=String(), | 89 file = module.FileClass(db, "file", name=String(), type=String(), |
| 88 comment=String(indexme="yes"), fooz=Password()) | 90 comment=String(indexme="yes"), fooz=Password()) |
| 89 file_nidx = module.FileClass(db, "file_nidx", content=String(indexme='no')) | 91 file_nidx = module.FileClass(db, "file_nidx", content=String(indexme='no')) |
| 90 | 92 |
| 91 # initialize quiet mode a second way without using Multilink("user", quiet=True) | 93 # initialize quiet mode a second way without using Multilink("user", quiet=True) |
| 92 mynosy = Multilink("user") | 94 mynosy = Multilink("user") |
| 93 mynosy.quiet = True | 95 mynosy.quiet = True |
| 94 issue = module.IssueClass(db, "issue", title=String(indexme="yes"), | 96 issue = module.IssueClass(db, "issue", title=String(indexme="yes"), |
| 95 status=Link("status"), nosy=mynosy, deadline=Date(quiet=True), | 97 status=Link("status"), nosy=mynosy, deadline=Date(quiet=True), |
| 96 foo=Interval(quiet=True, default_value=date.Interval('-1w')), files=Multilink("file"), assignedto=Link('user', quiet=True), | 98 foo=Interval(quiet=True, default_value=date.Interval('-1w')), |
| 97 priority=Link('priority'), spam=Multilink('msg'), | 99 files=Multilink("file"), assignedto=Link('user', quiet=True), |
| 98 feedback=Link('msg')) | 100 priority=Link('priority'), spam=Multilink('msg'), feedback=Link('msg')) |
| 99 stuff = module.Class(db, "stuff", stuff=String()) | 101 stuff = module.Class(db, "stuff", stuff=String()) |
| 100 session = module.Class(db, 'session', title=String()) | 102 session = module.Class(db, 'session', title=String()) |
| 101 msg = module.FileClass(db, "msg", date=Date(), | 103 msg = module.FileClass(db, "msg", date=Date(), |
| 102 author=Link("user", do_journal='no'), | 104 author=Link("user", do_journal='no'), files=Multilink('file'), |
| 103 files=Multilink('file'), inreplyto=String(), | 105 inreplyto=String(), messageid=String(), |
| 104 messageid=String(), | 106 recipients=Multilink("user", do_journal='no')) |
| 105 recipients=Multilink("user", do_journal='no') | |
| 106 ) | |
| 107 session.disableJournalling() | 107 session.disableJournalling() |
| 108 db.post_init() | 108 db.post_init() |
| 109 if create: | 109 if create: |
| 110 user.create(username="admin", roles='Admin', | 110 user.create(username="admin", roles='Admin', |
| 111 password=password.Password('sekrit')) | 111 password=password.Password('sekrit')) |
| 535 | 535 |
| 536 def testNumberUnset(self): | 536 def testNumberUnset(self): |
| 537 nid = self.db.user.create(username='foo', age=1) | 537 nid = self.db.user.create(username='foo', age=1) |
| 538 self.db.user.set(nid, age=None) | 538 self.db.user.set(nid, age=None) |
| 539 self.assertEqual(self.db.user.get(nid, "age"), None) | 539 self.assertEqual(self.db.user.get(nid, "age"), None) |
| 540 | |
| 541 # Long number | |
| 542 def testDoubleChange(self): | |
| 543 lnl = 100.12345678 | |
| 544 ln = 100.123456789 | |
| 545 lng = 100.12345679 | |
| 546 nid = self.db.user.create(username='foo', longnumber=ln) | |
| 547 self.assertEqual(self.db.user.get(nid, 'longnumber') < lng, True) | |
| 548 self.assertEqual(self.db.user.get(nid, 'longnumber') > lnl, True) | |
| 549 lnl = 1.0012345678e55 | |
| 550 ln = 1.00123456789e55 | |
| 551 lng = 1.0012345679e55 | |
| 552 self.db.user.set(nid, longnumber=ln) | |
| 553 self.assertEqual(self.db.user.get(nid, 'longnumber') < lng, True) | |
| 554 self.assertEqual(self.db.user.get(nid, 'longnumber') > lnl, True) | |
| 555 self.db.user.set(nid, longnumber=-1) | |
| 556 self.assertEqual(self.db.user.get(nid, 'longnumber'), -1) | |
| 557 self.db.user.set(nid, longnumber=0) | |
| 558 self.assertEqual(self.db.user.get(nid, 'longnumber'), 0) | |
| 559 | |
| 560 nid = self.db.user.create(username='bar', longnumber=0) | |
| 561 self.assertEqual(self.db.user.get(nid, 'longnumber'), 0) | |
| 562 | |
| 563 def testDoubleUnset(self): | |
| 564 nid = self.db.user.create(username='foo', longnumber=1.2345) | |
| 565 self.db.user.set(nid, longnumber=None) | |
| 566 self.assertEqual(self.db.user.get(nid, "longnumber"), None) | |
| 567 | |
| 540 | 568 |
| 541 # Integer | 569 # Integer |
| 542 def testIntegerChange(self): | 570 def testIntegerChange(self): |
| 543 nid = self.db.user.create(username='foo', rating=100) | 571 nid = self.db.user.create(username='foo', rating=100) |
| 544 self.assertEqual(100, self.db.user.get(nid, 'rating')) | 572 self.assertEqual(100, self.db.user.get(nid, 'rating')) |
