# -*- coding: utf-8 -*- from __future__ import unicode_literals, absolute_import from unittest import TestCase import six from mock import Mock from rattail.db import model from rattail.db.model import people from ... import DataTestCase class TestPerson(DataTestCase): def test_unicode(self): person = model.Person() self.assertEqual(six.text_type(person), "") person = model.Person(display_name="Fred Flintstone") self.assertEqual(six.text_type(person), "Fred Flintstone") # TODO: this is duplicated in TestPerson def test_add_email_address(self): person = model.Person() self.assertEqual(len(person.emails), 0) person.add_email_address('fred@mailinator.com') self.assertEqual(len(person.emails), 1) email = person.emails[0] self.assertEqual(email.type, 'Home') person = model.Person() self.assertEqual(len(person.emails), 0) person.add_email_address('fred@mailinator.com', type='Work') self.assertEqual(len(person.emails), 1) email = person.emails[0] self.assertEqual(email.type, 'Work') # TODO: this is duplicated in TestPerson def test_add_phone_number(self): person = model.Person() self.assertEqual(len(person.phones), 0) person.add_phone_number('417-555-1234') self.assertEqual(len(person.phones), 1) phone = person.phones[0] self.assertEqual(phone.type, 'Home') person = model.Person() self.assertEqual(len(person.phones), 0) person.add_phone_number('417-555-1234', type='Work') self.assertEqual(len(person.phones), 1) phone = person.phones[0] self.assertEqual(phone.type, 'Work') # TODO: deprecate/remove this? class TestFunctions(TestCase): def test_get_person_display_name(self): name = people.get_person_display_name("Fred", "Flintstone") self.assertEqual(name, "Fred Flintstone") def test_get_person_display_name_from_context(self): context = Mock(current_parameters={'first_name': "Fred", 'last_name': "Flintstone"}) name = people.get_person_display_name_from_context(context) self.assertEqual(name, "Fred Flintstone")