Commit 5ecb496d authored by Russell Keith-Magee's avatar Russell Keith-Magee
Browse files

[1.2.X] Migrated properties doctests. Thanks to George Sakkis for the patch.

Backport of r14165 from trunk.

git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.2.X@14171 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent d83af03c
Loading
Loading
Loading
Loading
+0 −19
Original line number Diff line number Diff line
@@ -19,22 +19,3 @@ class Person(models.Model):
    full_name = property(_get_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'
"""}
+20 −0
Original line number Diff line number Diff line
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')