Mercurial > p > roundup > code
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 5066:d2256fcfd81f | 5067:e424987d294a |
|---|---|
| 105 execfile(os.path.join(thisdir, "tx_Source_detector.py"), vars) | 105 execfile(os.path.join(thisdir, "tx_Source_detector.py"), vars) |
| 106 vars['init'](self.db) | 106 vars['init'](self.db) |
| 107 | 107 |
| 108 test = self.instance.backend.Class(self.db, "test", | 108 test = self.instance.backend.Class(self.db, "test", |
| 109 string=hyperdb.String(), number=hyperdb.Number(), | 109 string=hyperdb.String(), number=hyperdb.Number(), |
| 110 boolean=hyperdb.Boolean(), link=hyperdb.Link('test'), | 110 intval=hyperdb.Integer(), boolean=hyperdb.Boolean(), |
| 111 multilink=hyperdb.Multilink('test'), date=hyperdb.Date(), | 111 link=hyperdb.Link('test'), multilink=hyperdb.Multilink('test'), |
| 112 messages=hyperdb.Multilink('msg'), interval=hyperdb.Interval()) | 112 date=hyperdb.Date(), messages=hyperdb.Multilink('msg'), |
| 113 interval=hyperdb.Interval()) | |
| 113 | 114 |
| 114 # compile the labels re | 115 # compile the labels re |
| 115 classes = '|'.join(self.db.classes.keys()) | 116 classes = '|'.join(self.db.classes.keys()) |
| 116 self.FV_SPECIAL = re.compile(FormParser.FV_LABELS%classes, | 117 self.FV_SPECIAL = re.compile(FormParser.FV_LABELS%classes, |
| 117 re.VERBOSE) | 118 re.VERBOSE) |
| 619 ':required': 'number'}) | 620 ':required': 'number'}) |
| 620 try: | 621 try: |
| 621 self.parseForm({'number': '0', ':required': 'number'}) | 622 self.parseForm({'number': '0', ':required': 'number'}) |
| 622 except FormError: | 623 except FormError: |
| 623 self.fail('number "no" raised "required missing"') | 624 self.fail('number "no" raised "required missing"') |
| 625 | |
| 626 # | |
| 627 # Integer | |
| 628 # | |
| 629 def testEmptyInteger(self): | |
| 630 self.assertEqual(self.parseForm({'intval': ''}), | |
| 631 ({('test', None): {}}, [])) | |
| 632 self.assertEqual(self.parseForm({'intval': ' '}), | |
| 633 ({('test', None): {}}, [])) | |
| 634 self.assertRaises(FormError, self.parseForm, {'intval': ['', '']}) | |
| 635 | |
| 636 def testInvalidInteger(self): | |
| 637 self.assertRaises(FormError, self.parseForm, {'intval': 'hi, mum!'}) | |
| 638 | |
| 639 def testSetInteger(self): | |
| 640 self.assertEqual(self.parseForm({'intval': '1'}), | |
| 641 ({('test', None): {'intval': 1}}, [])) | |
| 642 self.assertEqual(self.parseForm({'intval': '0'}), | |
| 643 ({('test', None): {'intval': 0}}, [])) | |
| 644 self.assertEqual(self.parseForm({'intval': '\n0\n'}), | |
| 645 ({('test', None): {'intval': 0}}, [])) | |
| 646 | |
| 647 def testSetIntegerReplaceOne(self): | |
| 648 nodeid = self.db.test.create(intval=1) | |
| 649 self.assertEqual(self.parseForm({'intval': '1'}, 'test', nodeid), | |
| 650 ({('test', nodeid): {}}, [])) | |
| 651 self.assertEqual(self.parseForm({'intval': '0'}, 'test', nodeid), | |
| 652 ({('test', nodeid): {'intval': 0}}, [])) | |
| 653 | |
| 654 def testSetIntegerReplaceZero(self): | |
| 655 nodeid = self.db.test.create(intval=0) | |
| 656 self.assertEqual(self.parseForm({'intval': '0'}, 'test', nodeid), | |
| 657 ({('test', nodeid): {}}, [])) | |
| 658 | |
| 659 def testSetIntegerReplaceNone(self): | |
| 660 nodeid = self.db.test.create() | |
| 661 self.assertEqual(self.parseForm({'intval': '0'}, 'test', nodeid), | |
| 662 ({('test', nodeid): {'intval': 0}}, [])) | |
| 663 self.assertEqual(self.parseForm({'intval': '1'}, 'test', nodeid), | |
| 664 ({('test', nodeid): {'intval': 1}}, [])) | |
| 665 | |
| 666 def testEmptyIntegerSet(self): | |
| 667 nodeid = self.db.test.create(intval=0) | |
| 668 self.assertEqual(self.parseForm({'intval': ''}, 'test', nodeid), | |
| 669 ({('test', nodeid): {'intval': None}}, [])) | |
| 670 nodeid = self.db.test.create(intval=1) | |
| 671 self.assertEqual(self.parseForm({'intval': ' '}, 'test', nodeid), | |
| 672 ({('test', nodeid): {'intval': None}}, [])) | |
| 673 | |
| 674 def testRequiredInteger(self): | |
| 675 self.assertRaises(FormError, self.parseForm, {'intval': '', | |
| 676 ':required': 'intval'}) | |
| 677 try: | |
| 678 self.parseForm({'intval': '0', ':required': 'intval'}) | |
| 679 except FormError: | |
| 680 self.fail('intval "no" raised "required missing"') | |
| 624 | 681 |
| 625 # | 682 # |
| 626 # Date | 683 # Date |
| 627 # | 684 # |
| 628 def testEmptyDate(self): | 685 def testEmptyDate(self): |
