diff test/db_test_base.py @ 5067:e424987d294a

Add support for an integer type to join the existing number type. Commit patch supplied for issue2550886. This can be used for properties used for ordering, counts etc. where a decimal point isn't needed. Developed by Anthony (antmail). Doc updates written by John Rouillard.
author John Rouillard <rouilj@ieee.org>
date Sun, 05 Jun 2016 00:17:26 -0400
parents 5251e97b1de0
children 87b0358790ed
line wrap: on
line diff
--- a/test/db_test_base.py	Tue May 31 09:16:09 2016 +0200
+++ b/test/db_test_base.py	Sun Jun 05 00:17:26 2016 -0400
@@ -22,7 +22,7 @@
 
 import pytest
 from roundup.hyperdb import String, Password, Link, Multilink, Date, \
-    Interval, DatabaseError, Boolean, Number, Node
+    Interval, DatabaseError, Boolean, Number, Node, Integer
 from roundup.mailer import Mailer
 from roundup import date, password, init, instance, configuration, \
     roundupdb, i18n
@@ -82,7 +82,7 @@
     priority.setkey("name")
     user = module.Class(db, "user", username=String(), password=Password(),
         assignable=Boolean(), age=Number(), roles=String(), address=String(),
-        supervisor=Link('user'),realname=String())
+        rating=Integer(), supervisor=Link('user'),realname=String())
     user.setkey("username")
     file = module.FileClass(db, "file", name=String(), type=String(),
         comment=String(indexme="yes"), fooz=Password())
@@ -534,6 +534,25 @@
         self.db.user.set(nid, age=None)
         self.assertEqual(self.db.user.get(nid, "age"), None)
 
+    # Integer
+    def testIntegerChange(self):
+        nid = self.db.user.create(username='foo', rating=100)
+        self.assertEqual(100, self.db.user.get(nid, 'rating'))
+        self.db.user.set(nid, rating=300)
+        self.assertNotEqual(self.db.user.get(nid, 'rating'), 100)
+        self.db.user.set(nid, rating=-1)
+        self.assertEqual(self.db.user.get(nid, 'rating'), -1)
+        self.db.user.set(nid, rating=0)
+        self.assertEqual(self.db.user.get(nid, 'rating'), 0)
+
+        nid = self.db.user.create(username='bar', rating=0)
+        self.assertEqual(self.db.user.get(nid, 'rating'), 0)
+
+    def testIntegerUnset(self):
+        nid = self.db.user.create(username='foo', rating=1)
+        self.db.user.set(nid, rating=None)
+        self.assertEqual(self.db.user.get(nid, "rating"), None)
+
     # Password
     def testPasswordChange(self):
         x = password.Password('x')

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