File: tests.py

package info (click to toggle)
python-django 3%3A3.2.19-1%2Bdeb12u2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm-proposed-updates
  • size: 56,696 kB
  • sloc: python: 264,418; javascript: 18,362; xml: 193; makefile: 178; sh: 43
file content (27 lines) | stat: -rw-r--r-- 910 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from django.test import TestCase

from .models import Person


class PropertyTests(TestCase):

    @classmethod
    def setUpTestData(cls):
        cls.a = Person.objects.create(first_name='John', last_name='Lennon')

    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.
        with self.assertRaises(AttributeError):
            setattr(self.a, 'full_name', 'Paul McCartney')

        # And cannot be used to initialize the class.
        with self.assertRaisesMessage(TypeError, "Person() got an unexpected keyword argument 'full_name'"):
            Person(full_name='Paul McCartney')

        # But "full_name_2" has, and it can be used to initialize the class.
        a2 = Person(full_name_2='Paul McCartney')
        a2.save()
        self.assertEqual(a2.first_name, 'Paul')