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):

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