This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
collective.contact.core/src/collective/contact/core/tests/test_views.py

253 lines
10 KiB
Python

# -*- coding: utf8 -*-
import unittest2 as unittest
from plone.app.testing.interfaces import TEST_USER_NAME
from ecreall.helpers.testing.base import BaseTest
from collective.contact.core.testing import INTEGRATION
ADDRESS_FIELDS = ['country', 'region', 'zip_code',
'city', 'street', 'number',
'additional_address_details']
class TestView(unittest.TestCase, BaseTest):
layer = INTEGRATION
def setUp(self):
super(TestView, self).setUp()
self.login(TEST_USER_NAME)
self.app = self.layer['app']
self.portal = self.layer['portal']
mydirectory = self.portal['mydirectory']
self.degaulle = mydirectory['degaulle']
self.adt = self.degaulle['adt']
self.gadt = self.degaulle['gadt']
self.pepper = mydirectory['pepper']
self.sergent_pepper = self.pepper['sergent_pepper']
self.rambo = mydirectory['rambo']
self.armeedeterre = mydirectory['armeedeterre']
self.corpsa = self.armeedeterre['corpsa']
self.divisionalpha = self.corpsa['divisionalpha']
self.regimenth = self.divisionalpha['regimenth']
self.brigadelh = self.regimenth['brigadelh']
self.general_adt = self.armeedeterre['general_adt']
self.sergent_lh = self.brigadelh['sergent_lh']
self.draper = mydirectory['draper']
self.captain_crunch = self.draper['captain_crunch']
self.mydirectory = mydirectory
class TestAddressView(TestView):
def test_degaulle_address_view(self):
address_view = self.degaulle.restrictedTraverse("@@address")
data = address_view.namespace()
for field in ADDRESS_FIELDS:
self.assertIn(field, data)
self.assertEqual(data['country'], u'France')
self.assertEqual(data['number'], u'6bis')
self.assertEqual(data['street'], u'rue Jean Moulin')
self.assertEqual(data['city'], u"Colombey les deux églises")
self.assertEqual(data['zip_code'], u'52330')
self.assertEqual(data['region'], u'')
self.assertEqual(data['additional_address_details'], u'bâtiment D')
def test_pepper_address_view(self):
address_view = self.pepper.restrictedTraverse("@@address")
data = address_view.namespace()
for field in ADDRESS_FIELDS:
self.assertIn(field, data)
self.assertEqual(data['country'], u'England')
self.assertEqual(data['city'], u"Liverpool")
def test_rambo_address_view(self):
# no address information
address_view = self.rambo.restrictedTraverse("@@address")
data = address_view.namespace()
self.assertEqual(data, {})
def test_regimenth_address_view(self):
# an organization have an address view
address_view = self.regimenth.restrictedTraverse("@@address")
data = address_view.namespace()
for field in ADDRESS_FIELDS:
self.assertIn(field, data)
self.assertEqual(data['number'], u'11')
self.assertEqual(data['street'], u"rue de l'harmonie")
self.assertEqual(data['city'], u"Villeneuve d'Ascq")
self.assertEqual(data['zip_code'], u'59650')
self.assertEqual(data['region'], u'')
self.assertEqual(data['additional_address_details'], u'')
class TestContactView(TestView):
def xtest_contact_view(self):
contact_view = self.gadt.restrictedTraverse("@@contact")
contact_view.update()
self.assertEqual(contact_view.fullname,
"Général Charles De Gaulle")
self.assertEqual([self.armeedeterre], contact_view.organizations)
self.assertEqual(contact_view.birthday, 'Nov 22, 1901')
# address is acquired from degaulle
address = contact_view.address
self.assertEqual(address['number'], u'6bis')
self.assertEqual(address['street'], u"rue Jean Moulin")
self.assertEqual(address['city'], u"Colombey les deux églises")
self.assertEqual(address['zip_code'], u'52330')
self.assertEqual(address['region'], u'')
self.assertEqual(address['additional_address_details'], u'bâtiment D')
def xtest_empty_fields(self):
contact_view = self.captain_crunch.restrictedTraverse("@@contact")
contact_view.update()
self.assertEqual(contact_view.start_date, u'')
self.assertEqual(contact_view.end_date, u'')
self.assertEqual(contact_view.birthday, u'')
self.assertEqual(contact_view.gender, u'')
self.assertEqual(contact_view.photo, u'')
def xtest_contact_details_acquisition(self):
contact_view = self.sergent_pepper.restrictedTraverse("@@contact")
contact_view.update()
self.assertEqual(contact_view.fullname, "Sergent Pepper")
self.assertEqual(self.sergent_lh,
contact_view.position)
organizations = contact_view.organizations
self.assertEqual([self.armeedeterre,
self.corpsa,
self.divisionalpha,
self.regimenth,
self.brigadelh], organizations)
# Person email comes before Position email
self.assertEqual(contact_view.email,
"sgt.pepper@armees.fr")
self.assertNotEqual(contact_view.email,
"brigade_lh@armees.fr")
self.assertEqual(contact_view.phone,
"0288552211")
self.assertEqual(contact_view.cell_phone,
'0654875233')
self.assertEqual(contact_view.im_handle,
"brigade_lh@jabber.org")
# Everything in Sgt Pepper's address is acquired from Régiment H
address = contact_view.address
self.assertEqual(address['number'], u'11')
self.assertEqual(address['street'], u"rue de l'harmonie")
self.assertEqual(address['city'], u"Villeneuve d'Ascq")
self.assertEqual(address['zip_code'], u'59650')
self.assertEqual(address['region'], u'')
self.assertEqual(address['additional_address_details'], u'')
class TestPositionView(TestView):
def test_position_view(self):
position_view = self.sergent_lh.restrictedTraverse("@@position")
position_view.update()
self.assertEqual(position_view.name, u"Sergent de la brigade LH, Brigade LH (Armée de terre)")
self.assertEqual(position_view.type, "Sergeant")
organizations = position_view.organizations
self.assertEqual([self.armeedeterre,
self.corpsa,
self.divisionalpha,
self.regimenth,
self.brigadelh], organizations)
self.assertEqual(position_view.email,
"brigade_lh@armees.fr")
address = position_view.address
self.assertEqual(address['number'], u'11')
self.assertEqual(address['street'], u"rue de l'harmonie")
self.assertEqual(address['city'], u"Villeneuve d'Ascq")
self.assertEqual(address['zip_code'], u'59650')
self.assertEqual(address['region'], u'')
self.assertEqual(address['additional_address_details'], u'')
class TestOrganizationView(TestView):
def test_organization_view(self):
org_view = self.corpsa.restrictedTraverse("@@organization")
org_view.update()
self.assertEqual(org_view.name, "Corps A")
self.assertEqual(org_view.type, "Corps")
organizations = org_view.organizations
parent_organizations = org_view.parent_organizations
self.assertEqual([self.armeedeterre], parent_organizations)
self.assertEqual([self.armeedeterre, self.corpsa], organizations)
self.assertEqual(org_view.email, '')
address = org_view.address
self.assertEqual(address['number'], u'')
self.assertEqual(address['street'], u"rue Philibert Lucot")
self.assertEqual(address['city'], u'Orléans')
self.assertEqual(address['zip_code'], u'')
self.assertEqual(address['region'], u'')
self.assertEqual(address['country'], u'France')
self.assertEqual(address['additional_address_details'], u'')
def test_sub_organizations(self):
org_view = self.armeedeterre.restrictedTraverse("@@organization")
org_view.update()
sub_organizations_names = [e.Title for e in org_view.sub_organizations]
self.assertEqual(set(['Corps A', 'Corps B']),
set(sub_organizations_names))
# no sub-organizations
org_view = self.brigadelh.restrictedTraverse("@@organization")
org_view.update()
self.assertEqual(0, len(org_view.sub_organizations))
def test_positions(self):
org_view = self.armeedeterre.restrictedTraverse("@@organization")
org_view.update()
positions_names = [e.Title() for e in org_view.positions]
self.assertEqual(set(["Général de l'armée de terre"]),
set(positions_names))
# no_positions
org_view = self.corpsa.restrictedTraverse("@@organization")
org_view.update()
self.assertEqual(0, len(org_view.positions))
class TestPersonView(TestView):
def test_person_view(self):
person_view = self.degaulle.restrictedTraverse("@@person")
person_view.update()
self.assertEqual(person_view.name, "Général Charles De Gaulle")
self.assertEqual(person_view.gender, 'M')
self.assertIn(person_view.birthday, ('Nov 22, 1901', '1901-11-22'))
self.assertEqual(person_view.email, 'charles.de.gaulle@armees.fr')
self.assertEqual(person_view.phone, '')
self.assertEqual(person_view.cell_phone, '')
self.assertEqual(person_view.im_handle, '')
address = person_view.address
self.assertEqual(address['number'], u'6bis')
self.assertEqual(address['street'], u"rue Jean Moulin")
self.assertEqual(address['city'], u'Colombey les deux églises')
self.assertEqual(address['zip_code'], u'52330')
self.assertEqual(address['region'], u'')
self.assertEqual(address['country'], u'France')
self.assertEqual(address['additional_address_details'], u'bâtiment D')
held_positions = [b.getObject() for b in person_view.held_positions]
self.assertIn(self.adt, held_positions)
self.assertIn(self.gadt, held_positions)