Mercurial > p > roundup > code
diff test/test_cgi.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 | 47ab150b7325 |
| children | 92d33d3125a0 |
line wrap: on
line diff
--- a/test/test_cgi.py Tue May 31 09:16:09 2016 +0200 +++ b/test/test_cgi.py Sun Jun 05 00:17:26 2016 -0400 @@ -107,9 +107,10 @@ test = self.instance.backend.Class(self.db, "test", string=hyperdb.String(), number=hyperdb.Number(), - boolean=hyperdb.Boolean(), link=hyperdb.Link('test'), - multilink=hyperdb.Multilink('test'), date=hyperdb.Date(), - messages=hyperdb.Multilink('msg'), interval=hyperdb.Interval()) + intval=hyperdb.Integer(), boolean=hyperdb.Boolean(), + link=hyperdb.Link('test'), multilink=hyperdb.Multilink('test'), + date=hyperdb.Date(), messages=hyperdb.Multilink('msg'), + interval=hyperdb.Interval()) # compile the labels re classes = '|'.join(self.db.classes.keys()) @@ -623,6 +624,62 @@ self.fail('number "no" raised "required missing"') # + # Integer + # + def testEmptyInteger(self): + self.assertEqual(self.parseForm({'intval': ''}), + ({('test', None): {}}, [])) + self.assertEqual(self.parseForm({'intval': ' '}), + ({('test', None): {}}, [])) + self.assertRaises(FormError, self.parseForm, {'intval': ['', '']}) + + def testInvalidInteger(self): + self.assertRaises(FormError, self.parseForm, {'intval': 'hi, mum!'}) + + def testSetInteger(self): + self.assertEqual(self.parseForm({'intval': '1'}), + ({('test', None): {'intval': 1}}, [])) + self.assertEqual(self.parseForm({'intval': '0'}), + ({('test', None): {'intval': 0}}, [])) + self.assertEqual(self.parseForm({'intval': '\n0\n'}), + ({('test', None): {'intval': 0}}, [])) + + def testSetIntegerReplaceOne(self): + nodeid = self.db.test.create(intval=1) + self.assertEqual(self.parseForm({'intval': '1'}, 'test', nodeid), + ({('test', nodeid): {}}, [])) + self.assertEqual(self.parseForm({'intval': '0'}, 'test', nodeid), + ({('test', nodeid): {'intval': 0}}, [])) + + def testSetIntegerReplaceZero(self): + nodeid = self.db.test.create(intval=0) + self.assertEqual(self.parseForm({'intval': '0'}, 'test', nodeid), + ({('test', nodeid): {}}, [])) + + def testSetIntegerReplaceNone(self): + nodeid = self.db.test.create() + self.assertEqual(self.parseForm({'intval': '0'}, 'test', nodeid), + ({('test', nodeid): {'intval': 0}}, [])) + self.assertEqual(self.parseForm({'intval': '1'}, 'test', nodeid), + ({('test', nodeid): {'intval': 1}}, [])) + + def testEmptyIntegerSet(self): + nodeid = self.db.test.create(intval=0) + self.assertEqual(self.parseForm({'intval': ''}, 'test', nodeid), + ({('test', nodeid): {'intval': None}}, [])) + nodeid = self.db.test.create(intval=1) + self.assertEqual(self.parseForm({'intval': ' '}, 'test', nodeid), + ({('test', nodeid): {'intval': None}}, [])) + + def testRequiredInteger(self): + self.assertRaises(FormError, self.parseForm, {'intval': '', + ':required': 'intval'}) + try: + self.parseForm({'intval': '0', ':required': 'intval'}) + except FormError: + self.fail('intval "no" raised "required missing"') + + # # Date # def testEmptyDate(self):
