MCPcopy Index your code
hub / github.com/python/cpython / test_property_name

Method test_property_name

Lib/test/test_property.py:204–255  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

202 self.assertAlmostEqual(gettotalrefcount() - refs_before, 0, delta=10)
203
204 def test_property_name(self):
205 def getter(self):
206 return 42
207
208 def setter(self, value):
209 pass
210
211 class A:
212 @property
213 def foo(self):
214 return 1
215
216 @foo.setter
217 def oof(self, value):
218 pass
219
220 bar = property(getter)
221 baz = property(None, setter)
222
223 self.assertEqual(A.foo.__name__, 'foo')
224 self.assertEqual(A.oof.__name__, 'oof')
225 self.assertEqual(A.bar.__name__, 'bar')
226 self.assertEqual(A.baz.__name__, 'baz')
227
228 A.quux = property(getter)
229 self.assertEqual(A.quux.__name__, 'getter')
230 A.quux.__name__ = 'myquux'
231 self.assertEqual(A.quux.__name__, 'myquux')
232 self.assertEqual(A.bar.__name__, 'bar') # not affected
233 A.quux.__name__ = None
234 self.assertIsNone(A.quux.__name__)
235
236 with self.assertRaisesRegex(
237 AttributeError, "'property' object has no attribute '__name__'"
238 ):
239 property(None, setter).__name__
240
241 with self.assertRaisesRegex(
242 AttributeError, "'property' object has no attribute '__name__'"
243 ):
244 property(1).__name__
245
246 class Err:
247 def __getattr__(self, attr):
248 raise RuntimeError('fail')
249
250 p = property(Err())
251 with self.assertRaisesRegex(RuntimeError, 'fail'):
252 p.__name__
253
254 p.__name__ = 'not_fail'
255 self.assertEqual(p.__name__, 'not_fail')
256
257 def test_property_set_name_incorrect_args(self):
258 p = property()

Callers

nothing calls this directly

Calls 5

propertyClass · 0.85
assertIsNoneMethod · 0.80
assertRaisesRegexMethod · 0.80
ErrClass · 0.70
assertEqualMethod · 0.45

Tested by

no test coverage detected