summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2011-11-05 19:17:52 (GMT)
committerBenjamin Peterson <benjamin@python.org>2011-11-05 19:17:52 (GMT)
commit878ce389a08594a805cf382a73414be02143396c (patch)
treec1c9a9b02e23dd3461d2c3bc894a2d99dc5c8771 /Lib/test
parent03b081938954a333fb5473977ee8d22e9699bc5b (diff)
downloadcpython-878ce389a08594a805cf382a73414be02143396c.zip
cpython-878ce389a08594a805cf382a73414be02143396c.tar.gz
cpython-878ce389a08594a805cf382a73414be02143396c.tar.bz2
add introspection to range objects (closes #9896)
Patch by Daniel Urban.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_range.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/test_range.py b/Lib/test/test_range.py
index 6035e76..2e335cc 100644
--- a/Lib/test/test_range.py
+++ b/Lib/test/test_range.py
@@ -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)