diff options
author | Benjamin Peterson <benjamin@python.org> | 2011-11-05 19:17:52 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2011-11-05 19:17:52 (GMT) |
commit | 878ce389a08594a805cf382a73414be02143396c (patch) | |
tree | c1c9a9b02e23dd3461d2c3bc894a2d99dc5c8771 /Lib/test | |
parent | 03b081938954a333fb5473977ee8d22e9699bc5b (diff) | |
download | cpython-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.py | 29 |
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) |