Mercurial > p > roundup > code
diff 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 |
line wrap: on
line diff
--- a/test/db_test_base.py Fri Dec 09 10:52:59 2016 +0100 +++ b/test/db_test_base.py Mon Dec 12 13:53:47 2016 +0100 @@ -80,9 +80,11 @@ status.setkey("name") priority = module.Class(db, "priority", name=String(), order=String()) priority.setkey("name") - user = module.Class(db, "user", username=String(), password=Password(quiet=True), - assignable=Boolean(quiet=True), age=Number(quiet=True), roles=String(), address=String(), - rating=Integer(quiet=True), supervisor=Link('user'),realname=String(quiet=True)) + user = module.Class(db, "user", username=String(), + password=Password(quiet=True), assignable=Boolean(quiet=True), + age=Number(quiet=True), roles=String(), address=String(), + rating=Integer(quiet=True), supervisor=Link('user'), + realname=String(quiet=True), longnumber=Number(use_double=True)) user.setkey("username") file = module.FileClass(db, "file", name=String(), type=String(), comment=String(indexme="yes"), fooz=Password()) @@ -92,18 +94,16 @@ mynosy = Multilink("user") mynosy.quiet = True issue = module.IssueClass(db, "issue", title=String(indexme="yes"), - status=Link("status"), nosy=mynosy, deadline=Date(quiet=True), - foo=Interval(quiet=True, default_value=date.Interval('-1w')), files=Multilink("file"), assignedto=Link('user', quiet=True), - priority=Link('priority'), spam=Multilink('msg'), - feedback=Link('msg')) + status=Link("status"), nosy=mynosy, deadline=Date(quiet=True), + foo=Interval(quiet=True, default_value=date.Interval('-1w')), + files=Multilink("file"), assignedto=Link('user', quiet=True), + priority=Link('priority'), spam=Multilink('msg'), feedback=Link('msg')) stuff = module.Class(db, "stuff", stuff=String()) session = module.Class(db, 'session', title=String()) msg = module.FileClass(db, "msg", date=Date(), - author=Link("user", do_journal='no'), - files=Multilink('file'), inreplyto=String(), - messageid=String(), - recipients=Multilink("user", do_journal='no') - ) + author=Link("user", do_journal='no'), files=Multilink('file'), + inreplyto=String(), messageid=String(), + recipients=Multilink("user", do_journal='no')) session.disableJournalling() db.post_init() if create: @@ -538,6 +538,34 @@ self.db.user.set(nid, age=None) self.assertEqual(self.db.user.get(nid, "age"), None) + # Long number + def testDoubleChange(self): + lnl = 100.12345678 + ln = 100.123456789 + lng = 100.12345679 + nid = self.db.user.create(username='foo', longnumber=ln) + self.assertEqual(self.db.user.get(nid, 'longnumber') < lng, True) + self.assertEqual(self.db.user.get(nid, 'longnumber') > lnl, True) + lnl = 1.0012345678e55 + ln = 1.00123456789e55 + lng = 1.0012345679e55 + self.db.user.set(nid, longnumber=ln) + self.assertEqual(self.db.user.get(nid, 'longnumber') < lng, True) + self.assertEqual(self.db.user.get(nid, 'longnumber') > lnl, True) + self.db.user.set(nid, longnumber=-1) + self.assertEqual(self.db.user.get(nid, 'longnumber'), -1) + self.db.user.set(nid, longnumber=0) + self.assertEqual(self.db.user.get(nid, 'longnumber'), 0) + + nid = self.db.user.create(username='bar', longnumber=0) + self.assertEqual(self.db.user.get(nid, 'longnumber'), 0) + + def testDoubleUnset(self): + nid = self.db.user.create(username='foo', longnumber=1.2345) + self.db.user.set(nid, longnumber=None) + self.assertEqual(self.db.user.get(nid, "longnumber"), None) + + # Integer def testIntegerChange(self): nid = self.db.user.create(username='foo', rating=100)
