Mercurial > cpython-lru_cache-weakref
diff Lib/test/test_range.py @ 73378:4643be424293
add introspection to range objects (closes #9896)
Patch by Daniel Urban.
| author | Benjamin Peterson <benjamin@python.org> |
|---|---|
| date | Sat, 05 Nov 2011 15:17:52 -0400 |
| parents | 479a7dd1ea6a |
| children | 4ff234337e24 |
line wrap: on
line diff
--- a/Lib/test/test_range.py Sat Nov 05 17:51:52 2011 +0100 +++ b/Lib/test/test_range.py Sat Nov 05 15:17:52 2011 -0400 @@ -560,6 +560,35 @@ 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)
