253 lines
10 KiB
Python
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)
|