Migrated properties doctests. Thanks to George Sakkis for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@14165 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
cdfbe79674
commit
c830dbe39f
|
@ -19,22 +19,3 @@ class Person(models.Model):
|
||||||
full_name = property(_get_full_name)
|
full_name = property(_get_full_name)
|
||||||
|
|
||||||
full_name_2 = property(_get_full_name, _set_full_name)
|
full_name_2 = property(_get_full_name, _set_full_name)
|
||||||
|
|
||||||
__test__ = {'API_TESTS':"""
|
|
||||||
>>> a = Person(first_name='John', last_name='Lennon')
|
|
||||||
>>> a.save()
|
|
||||||
>>> a.full_name
|
|
||||||
'John Lennon'
|
|
||||||
|
|
||||||
# The "full_name" property hasn't provided a "set" method.
|
|
||||||
>>> a.full_name = 'Paul McCartney'
|
|
||||||
Traceback (most recent call last):
|
|
||||||
...
|
|
||||||
AttributeError: can't set attribute
|
|
||||||
|
|
||||||
# But "full_name_2" has, and it can be used to initialise the class.
|
|
||||||
>>> a2 = Person(full_name_2 = 'Paul McCartney')
|
|
||||||
>>> a2.save()
|
|
||||||
>>> a2.first_name
|
|
||||||
'Paul'
|
|
||||||
"""}
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
from django.test import TestCase
|
||||||
|
from models import Person
|
||||||
|
|
||||||
|
class PropertyTests(TestCase):
|
||||||
|
|
||||||
|
def setUp(self):
|
||||||
|
self.a = Person(first_name='John', last_name='Lennon')
|
||||||
|
self.a.save()
|
||||||
|
|
||||||
|
def test_getter(self):
|
||||||
|
self.assertEqual(self.a.full_name, 'John Lennon')
|
||||||
|
|
||||||
|
def test_setter(self):
|
||||||
|
# The "full_name" property hasn't provided a "set" method.
|
||||||
|
self.assertRaises(AttributeError, setattr, self.a, 'full_name', 'Paul McCartney')
|
||||||
|
|
||||||
|
# But "full_name_2" has, and it can be used to initialise the class.
|
||||||
|
a2 = Person(full_name_2 = 'Paul McCartney')
|
||||||
|
a2.save()
|
||||||
|
self.assertEqual(a2.first_name, 'Paul')
|
Loading…
Reference in New Issue