mirror of
https://github.com/python/cpython.git
synced 2025-08-23 18:24:46 +00:00
add introspection to range objects (closes #9896)
Patch by Daniel Urban.
This commit is contained in:
parent
03b0819389
commit
878ce389a0
3 changed files with 44 additions and 2 deletions
|
@ -560,6 +560,35 @@ class RangeTest(unittest.TestCase):
|
|||
range(0) >= range(0)
|
||||
|
||||
|
||||
def test_attributes(self):
|
||||
# test the start, stop and step attributes of range objects
|
||||
self.assert_attrs(range(0), 0, 0, 1)
|
||||
self.assert_attrs(range(10), 0, 10, 1)
|
||||
self.assert_attrs(range(-10), 0, -10, 1)
|
||||
self.assert_attrs(range(0, 10, 1), 0, 10, 1)
|
||||
self.assert_attrs(range(0, 10, 3), 0, 10, 3)
|
||||
self.assert_attrs(range(10, 0, -1), 10, 0, -1)
|
||||
self.assert_attrs(range(10, 0, -3), 10, 0, -3)
|
||||
|
||||
def assert_attrs(self, rangeobj, start, stop, step):
|
||||
self.assertEqual(rangeobj.start, start)
|
||||
self.assertEqual(rangeobj.stop, stop)
|
||||
self.assertEqual(rangeobj.step, step)
|
||||
|
||||
with self.assertRaises(AttributeError):
|
||||
rangeobj.start = 0
|
||||
with self.assertRaises(AttributeError):
|
||||
rangeobj.stop = 10
|
||||
with self.assertRaises(AttributeError):
|
||||
rangeobj.step = 1
|
||||
|
||||
with self.assertRaises(AttributeError):
|
||||
del rangeobj.start
|
||||
with self.assertRaises(AttributeError):
|
||||
del rangeobj.stop
|
||||
with self.assertRaises(AttributeError):
|
||||
del rangeobj.step
|
||||
|
||||
def test_main():
|
||||
test.support.run_unittest(RangeTest)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue