Commit ea7b82f9 authored by Jérome Perrin's avatar Jérome Perrin

Test for new CRM reports originally made by daniel with the help of thierry.



git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@19411 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 1e1be5c2
#############################################################################
#
# Copyright 2007 Nexedi SA Contributors. All Rights Reserved.
# Thierry Brettnacher <tb@nexedi.com>
# Daniel Feliubadalo <daniel@sip2000.com>
# Jerome Perrin <jerome@nexedi.com>
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsability of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# garantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
"""Tests Standards ERP5 Crm Reports
"""
import unittest
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from Products.ERP5Type.tests.utils import reindex
from AccessControl.SecurityManagement import newSecurityManager
from DateTime import DateTime
class CrmTestCase(ERP5TypeTestCase):
"""Tests starts with a preference activated for self.my_organisation, logged in
as a user with Assignee, Assignor and Author role.
All documents created appart from this configuration will be deleted in
teardown. So users of this test case are encouraged to create new documents
rather than modifying default documents.
"""
username = 'username'
def _doWorkflowAction(self, ob, action,**kw):
self.portal.portal_workflow.doActionFor(ob, action,
comment = 'for unit test',**kw)
@reindex
def _makeOneTicket(self, portal_type='Campaign',
start_date=None,
stop_date=None,
simulation_state='draft', **kw):
"""Creates an ticket, and edit it with kw.
The default settings is for self.section.
You can pass a list of mapping as lines, then lines will be created
using this information.
"""
kw.setdefault('start_date', start_date)
kw.setdefault('stop_date', stop_date)
kw.setdefault('resource', 'service_module/1')
tk=None
if portal_type == ('Campaign'):
tk = self.campaign_module.newContent(portal_type=portal_type,**kw)
elif portal_type == ('Meeting'):
tk = self.meeting_module.newContent(portal_type=portal_type,**kw)
elif portal_type == ('Sale Opportunity'):
tk = self.sale_opportunity_module.newContent(portal_type=portal_type,**kw)
elif portal_type == ('Support Request'):
tk = self.support_request_module.newContent(portal_type=portal_type,**kw)
if simulation_state == 'validated':
tk.validate()
elif simulation_state == 'offered': #for Sale Opportunity workflow
tk.offer()
return tk
def _makeOneEvent(self, portal_type='Fax Message',
start_date=DateTime(),
simulation_state='draft',
follow_up_ticket_title = "",
follow_up_ticket_type = "Campaign",
**kw):
"""Creates an event, and edit it with kw.
The default settings is for self.section.
You can pass a list of mapping as lines, then lines will be created
using this information.
"""
kw.setdefault('start_date', start_date)
kw.setdefault('resource', 'service_module/2')
ev = self.event_module.newContent(portal_type=portal_type,**kw)
if simulation_state == 'assigned':
ticket=self.portal.restrictedTraverse(ev.getFollowUp())
self._doWorkflowAction(ev,'assign_action',
follow_up_ticket_type = ticket.getPortalType(),
follow_up_ticket_title = ticket.getTitle())
elif simulation_state == 'planned':
ev.plan()
elif simulation_state == 'posted':
ev.start()
elif simulation_state == 'delivered':
ev.start()
ev.deliver()
elif simulation_state == 'new':
ev.receive()
elif simulation_state == 'acknowledged':
ticket=self.portal.restrictedTraverse(ev.getFollowUp())
self._doWorkflowAction(ev,'assign_action',
follow_up_ticket_type = ticket.getPortalType(),
follow_up_ticket_title = ticket.getTitle())
ev.acknowledge()
elif simulation_state == 'cancelled':
ev.receive()
ev.cancel()
elif simulation_state == 'deleted':
ev.delete()
elif simulation_state == 'expired':
ev.receive()
ev.expire()
elif simulation_state == 'responded':
ev.receive()
ev.respond()
elif simulation_state == 'started':
ev.start()
elif simulation_state == 'ordered':
ev.plan()
ev.order()
return ev
def login(self):
"""login with Manager roles."""
uf = self.getPortal().acl_users
uf._doAddUser('manager', 'manager', ['Manager', 'Assignee', 'Assignor',
'Associate', 'Auditor', 'Author'], [])
user = uf.getUserById('manager').__of__(uf)
newSecurityManager(None, user)
def setUp(self):
"""Setup the fixture.
"""
ERP5TypeTestCase.setUp(self)
self.portal = self.getPortal()
self.event_module = self.portal.event_module
self.campaign_module = self.portal.campaign_module
self.meeting_module = self.portal.meeting_module
self.sale_opportunity_module = self.portal.sale_opportunity_module
self.support_request_module = self.portal.support_request_module
self.organisation_module = self.portal.organisation_module
self.person_module = self.portal.person_module
self.portal_categories = self.portal.portal_categories
# create group category
if not self.portal_categories['group'].has_key('demo_group'):
group=self.portal_categories.group
subgroup = group.newContent(portal_type='Category',
title='demo_group',
reference='demo_group',
id='demo_group')
# create users and organisations
if not self.person_module.has_key('Person_1'):
user = self.portal.person_module.newContent(
portal_type='Person',
reference='Person_1',
title='Person_1',
id='Person_1')
user.validate()
if not self.person_module.has_key('Person_2'):
user = self.portal.person_module.newContent(
portal_type='Person',
reference='Person_2',
title='Person_2',
id='Person_2')
user.validate()
if not self.person_module.has_key('Person_3'):
user = self.portal.person_module.newContent(
portal_type='Person',
reference='Person_3',
title='Person_3',
id='Person_3')
user.validate()
if not self.organisation_module.has_key('Organisation_1'):
org = self.portal.organisation_module.newContent(
portal_type='Organisation',
reference='Organisation_1',
title='Organisation_1',
id='Organisation_1')
org.validate()
if not self.organisation_module.has_key('Organisation_2'):
org = self.portal.organisation_module.newContent(
portal_type='Organisation',
reference='Organisation_2',
title='Organisation_2',
id='Organisation_2')
org.validate()
if not self.organisation_module.has_key('My_organisation'):
org = self.portal.organisation_module.newContent(
portal_type='Organisation',
reference='My_organisation',
title='My_organisation',
group_value=self.portal_categories['group'].demo_group,
id='My_organisation')
org.validate()
# make sure documents are validated
for module in (self.organisation_module,
self.person_module):
for doc in module.objectValues():
doc.validate()
# and all this available to catalog
get_transaction().commit()
self.tic()
def tearDown(self):
"""Remove all documents.
"""
get_transaction().abort()
self.campaign_module.manage_delObjects(
list(self.campaign_module.objectIds()))
self.meeting_module.manage_delObjects(
list(self.meeting_module.objectIds()))
self.sale_opportunity_module.manage_delObjects(
list(self.sale_opportunity_module.objectIds()))
self.support_request_module.manage_delObjects(
list(self.support_request_module.objectIds()))
self.organisation_module.manage_delObjects(
list(self.campaign_module.objectIds()))
self.person_module.manage_delObjects(
list(self.person_module.objectIds()))
self.portal_categories['group'].manage_delObjects((['demo_group',]))
self.event_module.manage_delObjects(
list(self.event_module.objectIds()))
get_transaction().commit()
self.tic()
ERP5TypeTestCase.tearDown(self)
def getBusinessTemplateList(self):
"""Returns list of BT to be installed."""
return ('erp5_base', 'erp5_crm', )
class TestCrmReports(CrmTestCase):
"""Test Crm reports
Test basic cases of gathering data to render reports, the purpose of those
tests is to exercise basic reporting features to make sure no regression
happen. Input data used for tests usually contain edge cases, for example:
* movements at the boundaries of the period.
* movements with other simulation states.
* movements with node in the section_category we want to exclude (Persons).
* movements with source & destination for other sections.
"""
def getTitle(self):
return "Crm Reports"
# utility methods for ERP5 Report -> TODO move in framework !
def getReportSectionList(self, report_name):
"""Get the list of report sections in a report."""
report = getattr(self.portal, report_name)
report_method = getattr(self.portal, report.report_method)
return report_method()
def getListBoxLineList(self, report_section):
"""Render the listbox in a report section, return None if no listbox exists
in the report_section.
"""
result = None
here = report_section.getObject(self.portal)
report_section.pushReport(self.portal)
form = getattr(here, report_section.getFormId())
if form.has_field('listbox'):
result = form.listbox.get_value('default',
render_format='list',
REQUEST=self.portal.REQUEST)
report_section.popReport(self.portal)
return result
def checkLineProperties(self, line, **kw):
"""Check properties of a report line.
"""
for k, v in kw.items():
self.assertEquals(v, line.getColumnProperty(k),
'`%s`: expected: %r actual: %r' % (k, v, line.getColumnProperty(k)))
# /utility methods for ERP5 Report
def testCampaignStatus(self):
# Campaign Status report.
# First campaign
first = self._makeOneTicket(
portal_type='Campaign',
title='First One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second campaign
second = self._makeOneTicket(
portal_type='Campaign',
title='Second One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first campaign
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
eventOut2=self._makeOneEvent(
portal_type='Letter',
title='Out 2 of First',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
eventOut3=self._makeOneEvent(
portal_type='Phone Call',
title='Out 3 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
eventIn1=self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=eventOut1.getRelativeUrl())
# creating one free event for test
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second campaign
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
eventOut2=self._makeOneEvent(
portal_type='Fax Message',
title='Out 2 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
eventInt1=self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=eventOut1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['validation_state'] = ['validated',]
report_section_list = self.getReportSectionList(
'CampaignModule_viewCampaignStatusReport')
self.assertEquals(1, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[0])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 2 campaigns
self.assertEquals(2, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['title', 'ticket_type', 'destination_section', 'destination_decision',
'source', 'start_date', 'stop_date','validation_state','outgoing',
'incoming','progression','efficiency'])
# First campaign
self.checkLineProperties(data_line_list[0],
title='First One',
ticket_type = first.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 11, 30),
start_date = DateTime(2007, 2, 2),
destination_section = first.getDestinationSectionTitle(),
destination_decision = self.person_module.Person_1.getTitle(),
source = self.person_module.Person_2.getTitle(),
validation_state = 'Open',
outgoing = 3,
incoming = 1,
progression = 66.00/100,
efficiency = 33.00/100)
# Second campaign
self.checkLineProperties(data_line_list[1],
title='Second One',
ticket_type = second.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 12, 31),
start_date = DateTime(2007, 1, 2),
destination_section = second.getDestinationSectionTitle(),
destination_decision = second.getDestinationDecisionTitle(),
source = second.getSourceTitle(),
validation_state = 'Open',
outgoing = 2,
incoming = 1,
progression = 100.00/100,
efficiency = 50.00/100)
def testCampaignDetailedReport(self):
# Campaign Detailed report.
# First campaign
first = self._makeOneTicket(
portal_type='Campaign',
title='First One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second campaign
second = self._makeOneTicket(
portal_type='Campaign',
title='Second One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first campaign
first_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out2 = self._makeOneEvent(
portal_type='Letter',
title='Out 2 of First',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out3 = self._makeOneEvent(
portal_type='Phone Call',
title='Out 3 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=first_event_out1.getRelativeUrl())
# creating one free event for test
free_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second campaign
second_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
second_event_out2 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 2 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
second_event_inc1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=second_event_out1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['validation_state'] = ['validated',]
report_section_list = self.getReportSectionList(
'CampaignModule_viewCampaignDetailedReport')
self.assertEquals(2, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[1])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 7 events
self.assertEquals(7, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['campaign', 'direction', 'title', 'type','destination_title_list',
'source', 'start_date','stop_date','validation_state'])
for i in range(len(data_line_list)):
if i==0:
ticket=first
event=first_event_out1
direction='Outgoing'
campaign=ticket.getTitle()
elif i==1:
ticket=first
event=first_event_inc1
direction='Incoming'
campaign=''
elif i==2:
ticket=first
event=first_event_out2
direction='Outgoing'
campaign=ticket.getTitle()
elif i==3:
ticket=first
event=first_event_out3
direction='Outgoing'
campaign=ticket.getTitle()
elif i==4:
ticket=second
event=second_event_out1
direction='Outgoing'
campaign=ticket.getTitle()
elif i==5:
ticket=second
event=second_event_out2
direction='Outgoing'
campaign=ticket.getTitle()
elif i==6:
ticket=second
event=second_event_inc1
direction='Incoming'
campaign=ticket.getTitle()
self.checkLineProperties(data_line_list[i],
campaign = campaign,
direction = direction,
type = event.getTranslatedPortalType(),
destination_title_list = event.getDestinationTitleList(),
title = event.getTitle(),
stop_date = event.getStopDate(),
start_date = event.getStartDate(),
source = event.getSourceTitle(),
validation_state = event.getTranslatedSimulationStateTitle())
def testMeetingStatus(self):
# Meeting Status report.
# First Meeting
first = self._makeOneTicket(
portal_type='Meeting',
title='First One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second Meeting
second = self._makeOneTicket(
portal_type='Meeting',
title='Second One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first meeting
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
eventOut2=self._makeOneEvent(
portal_type='Letter',
title='Out 2 of First',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
eventOut3=self._makeOneEvent(
portal_type='Phone Call',
title='Out 3 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
eventIn1=self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=eventOut1.getRelativeUrl())
# creating one free event for test
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second meeting
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
eventOut2=self._makeOneEvent(
portal_type='Fax Message',
title='Out 2 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
eventInt1=self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=eventOut1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['validation_state'] = ['validated',]
report_section_list = self.getReportSectionList(
'MeetingModule_viewMeetingStatusReport')
self.assertEquals(1, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[0])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 2 meetings
self.assertEquals(2, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['title', 'ticket_type', 'destination_section', 'destination_decision',
'destination_title','source', 'start_date', 'stop_date',
'validation_state','outgoing','incoming'])
# First meeting
self.checkLineProperties(data_line_list[0],
title='First One',
ticket_type = first.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 11, 30),
start_date = DateTime(2007, 2, 2),
destination_section = first.getDestinationSectionTitle(),
destination_decision = self.person_module.Person_1.getTitle(),
destination_title = first.getDestinationTitle(),
source = self.person_module.Person_2.getTitle(),
validation_state = 'Open',
outgoing = 3,
incoming = 1)
# Second meeting
self.checkLineProperties(data_line_list[1],
title='Second One',
ticket_type = second.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 12, 31),
start_date = DateTime(2007, 1, 2),
destination_section = second.getDestinationSectionTitle(),
destination_decision = second.getDestinationDecisionTitle(),
destination_title = second.getDestinationTitle(),
source = second.getSourceTitle(),
validation_state = 'Open',
outgoing = 2,
incoming = 1)
def testMeetingDetailedReport(self):
# Meeting Detailed report.
# First Meeting
first = self._makeOneTicket(
portal_type='Meeting',
title='First One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second Meeting
second = self._makeOneTicket(
portal_type='Meeting',
title='Second One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first Meeting
first_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out2 = self._makeOneEvent(
portal_type='Letter',
title='Out 2 of First',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out3 = self._makeOneEvent(
portal_type='Phone Call',
title='Out 3 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=first_event_out1.getRelativeUrl())
# creating one free event for test
free_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second Meeting
second_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
second_event_out2 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 2 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
second_event_inc1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=second_event_out1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['validation_state'] = ['validated',]
report_section_list = self.getReportSectionList(
'MeetingModule_viewMeetingDetailedReport')
self.assertEquals(2, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[1])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 7 events
self.assertEquals(7, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['meeting', 'direction', 'title', 'type','destination_title_list',
'source', 'start_date','stop_date','validation_state'])
for i in range(len(data_line_list)):
if i==0:
ticket=first
event=first_event_out1
direction='Outgoing'
meeting=ticket.getTitle()
elif i==1:
ticket=first
event=first_event_inc1
direction='Incoming'
meeting=''
elif i==2:
ticket=first
event=first_event_out2
direction='Outgoing'
meeting=ticket.getTitle()
elif i==3:
ticket=first
event=first_event_out3
direction='Outgoing'
meeting=ticket.getTitle()
elif i==4:
ticket=second
event=second_event_out1
direction='Outgoing'
meeting=ticket.getTitle()
elif i==5:
ticket=second
event=second_event_out2
direction='Outgoing'
meeting=ticket.getTitle()
elif i==6:
ticket=second
event=second_event_inc1
direction='Incoming'
meeting=ticket.getTitle()
self.checkLineProperties(data_line_list[i],
meeting = meeting,
direction = direction,
type = event.getTranslatedPortalType(),
destination_title_list = event.getDestinationTitleList(),
title = event.getTitle(),
stop_date = event.getStopDate(),
start_date = event.getStartDate(),
source = event.getSourceTitle(),
validation_state = event.getTranslatedSimulationStateTitle())
def testSupportRequestStatus(self):
# Support Request Status report.
# First Support Request
first = self._makeOneTicket(
portal_type='Support Request',
title='First One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second Support Request
second = self._makeOneTicket(
portal_type='Support Request',
title='Second One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first Support Request
first_event_inc1 = self._makeOneEvent(
portal_type='Fax Message',
title='Inc 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc2 = self._makeOneEvent(
portal_type='Letter',
title='Inc 2 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc3=self._makeOneEvent(
portal_type='Phone Call',
title='Inc 3 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Inc 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=first_event_inc1.getRelativeUrl())
# creating one free event for test
feEvInc1=self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second Support Request
second_event_inc1 = self._makeOneEvent(
portal_type='Fax Message',
title='Inc 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
second_event_inc2 = self._makeOneEvent(
portal_type='Fax Message',
title='Inc 2 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
second_event_out1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Inc 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=second_event_inc1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['validation_state'] = ['validated',]
report_section_list = self.getReportSectionList(
'SupportRequestModule_viewSupportRequestStatusReport')
self.assertEquals(1, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[0])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 2 Support Request
self.assertEquals(2, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['title', 'ticket_type', 'destination_section', 'destination_decision',
'source', 'source_decision', 'start_date', 'stop_date',
'validation_state','incoming','outgoing'])
# First Support Request
self.checkLineProperties(data_line_list[0],
title='First One',
ticket_type = first.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 11, 30),
start_date = DateTime(2007, 2, 2),
destination_section = first.getDestinationSectionTitle(),
destination_decision = self.person_module.Person_1.getTitle(),
source_decision = first.getSourceDecisionTitle(),
source = self.person_module.Person_2.getTitle(),
validation_state = 'Open',
outgoing = 1,
incoming = 3)
# Second Support Request
self.checkLineProperties(data_line_list[1],
title='Second One',
ticket_type = second.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 12, 31),
start_date = DateTime(2007, 1, 2),
destination_section = second.getDestinationSectionTitle(),
destination_decision = second.getDestinationDecisionTitle(),
source_decision = second.getSourceDecisionTitle(),
source = second.getSourceTitle(),
validation_state = 'Open',
outgoing = 1,
incoming = 2)
def testSupportRequestDetailedReport(self):
# Support Request Detailed report.
# First Support Request
first = self._makeOneTicket(
portal_type='Support Request',
title='First One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second Support Request
second = self._makeOneTicket(
portal_type='Support Request',
title='Second One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first Support Request
first_event_inc1 = self._makeOneEvent(
portal_type='Fax Message',
title='Inc 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc2 = self._makeOneEvent(
portal_type='Letter',
title='Inc 2 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc3=self._makeOneEvent(
portal_type='Phone Call',
title='Inc 3 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Inc 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=first_event_inc1.getRelativeUrl())
# creating one free event for test
feEvInc1=self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second Support Request
second_event_inc1 = self._makeOneEvent(
portal_type='Fax Message',
title='Inc 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
second_event_inc2 = self._makeOneEvent(
portal_type='Fax Message',
title='Inc 2 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
second_event_out1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Inc 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=second_event_inc1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['validation_state'] = ['validated',]
report_section_list = self.getReportSectionList(
'SupportRequestModule_viewSupportRequestDetailedReport')
self.assertEquals(2, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[1])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 7 events
self.assertEquals(7, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['support_request', 'direction', 'title', 'type','destination_title_list',
'source', 'start_date','stop_date','validation_state'])
for i in range(len(data_line_list)):
if i==0:
ticket=first
event=first_event_inc1
direction='Incoming'
support_request=ticket.getTitle()
elif i==1:
ticket=first
event=first_event_out1
direction='Outgoing'
support_request=''
elif i==2:
ticket=first
event=first_event_inc2
direction='Incoming'
support_request=ticket.getTitle()
elif i==3:
ticket=first
event=first_event_inc3
direction='Incoming'
support_request=ticket.getTitle()
elif i==4:
ticket=second
event=second_event_inc1
direction='Incoming'
support_request=ticket.getTitle()
elif i==5:
ticket=second
event=second_event_inc2
direction='Incoming'
support_request=ticket.getTitle()
elif i==6:
ticket=second
event=second_event_out1
direction='Outgoing'
support_request=ticket.getTitle()
self.checkLineProperties(data_line_list[i],
support_request = support_request,
direction = direction,
type = event.getTranslatedPortalType(),
destination_title_list = event.getDestinationTitleList(),
title = event.getTitle(),
stop_date = event.getStopDate(),
start_date = event.getStartDate(),
source = event.getSourceTitle(),
validation_state = event.getTranslatedSimulationStateTitle())
def testSaleOpportunityStatus(self):
# Sale Opportunity Status report.
# First Sale Opportunity
first = self._makeOneTicket(
portal_type='Sale Opportunity',
title='First One',
simulation_state='contacted',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second Sale Opportunity
second = self._makeOneTicket(
portal_type='Sale Opportunity',
title='Second One',
simulation_state='offered',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of first Sale Opportunity
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
eventOut2=self._makeOneEvent(
portal_type='Letter',
title='Out 2 of First',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
eventOut3=self._makeOneEvent(
portal_type='Phone Call',
title='Out 3 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
eventIn1=self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=eventOut1.getRelativeUrl())
# creating one free event for test
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second Sale Opportunity
eventOut1=self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
eventOut2=self._makeOneEvent(
portal_type='Fax Message',
title='Out 2 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
eventInt1=self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=eventOut1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['sale_opportunity_state'] = ['contacted','offered']
report_section_list = self.getReportSectionList(
'SaleOpportunityModule_viewSaleOpportunityStatusReport')
self.assertEquals(1, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[0])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 2 Sale Opportunity
self.assertEquals(2, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['title', 'ticket_type', 'destination_section', 'destination_decision',
'source','source_decision','start_date', 'stop_date',
'validation_state','outgoing','incoming'])
# First Sale Opportunity
self.checkLineProperties(data_line_list[0],
title='First One',
ticket_type = first.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 11, 30),
start_date = DateTime(2007, 2, 2),
destination_section = first.getDestinationSectionTitle(),
destination_decision = self.person_module.Person_1.getTitle(),
source_decision = first.getSourceDecisionTitle(),
source = self.person_module.Person_2.getTitle(),
validation_state = 'Contacted',
outgoing = 3,
incoming = 1)
# Second Sale Opportunity
self.checkLineProperties(data_line_list[1],
title='Second One',
ticket_type = second.getResourceTranslatedTitle(),
stop_date = DateTime(2007, 12, 31),
start_date = DateTime(2007, 1, 2),
destination_section = second.getDestinationSectionTitle(),
destination_decision = second.getDestinationDecisionTitle(),
source_decision = second.getSourceDecisionTitle(),
source = second.getSourceTitle(),
validation_state = 'Offered',
outgoing = 2,
incoming = 1)
def testSaleOpportunityDetailedReport(self):
# Sale Opportunity Detailed report.
# First Sale Opportunity
first = self._makeOneTicket(
portal_type='Sale Opportunity',
title='First One',
simulation_state='contacted',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
destination_decision_value = self.person_module.Person_1,
source_value = self.person_module.Person_2,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
# Second Sale Opportunity
second = self._makeOneTicket(
portal_type='Sale Opportunity',
title='Second One',
simulation_state='offered',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events of Sale Opportunity
first_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out2 = self._makeOneEvent(
portal_type='Letter',
title='Out 2 of First',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=first.getRelativeUrl())
first_event_out3 = self._makeOneEvent(
portal_type='Phone Call',
title='Out 3 of First',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=first.getRelativeUrl())
first_event_inc1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of First',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
causality=first_event_out1.getRelativeUrl())
# creating one free event for test
free_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events of second Sale Opportunity
second_event_out1 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 1 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=second.getRelativeUrl())
second_event_out2 = self._makeOneEvent(
portal_type='Fax Message',
title='Out 2 of Second',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 2, 2, 1),
follow_up=second.getRelativeUrl())
second_event_inc1 = self._makeOneEvent(
portal_type='Mail Message',
title='Response to Out 1 of Second',
simulation_state='new',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
#create a follow-up and causality ralationship to test that
#only count one time by follow-up
causality=second_event_out1.getRelativeUrl(),
follow_up=second.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
request_form['section_category'] = 'group/demo_group'
request_form['sale_opportunity_state'] = ['contacted','offered']
report_section_list = self.getReportSectionList(
'SaleOpportunityModule_viewSaleOpportunityDetailedReport')
self.assertEquals(2, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[1])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 7 events
self.assertEquals(7, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['sale_opportunity', 'direction', 'title', 'type','destination_title_list',
'source', 'start_date','stop_date','validation_state'])
for i in range(len(data_line_list)):
if i==0:
ticket=first
event=first_event_out1
direction='Outgoing'
sale_opportunity=ticket.getTitle()
elif i==1:
ticket=first
event=first_event_inc1
direction='Incoming'
sale_opportunity=''
elif i==2:
ticket=first
event=first_event_out2
direction='Outgoing'
sale_opportunity=ticket.getTitle()
elif i==3:
ticket=first
event=first_event_out3
direction='Outgoing'
sale_opportunity=ticket.getTitle()
elif i==4:
ticket=second
event=second_event_out1
direction='Outgoing'
sale_opportunity=ticket.getTitle()
elif i==5:
ticket=second
event=second_event_out2
direction='Outgoing'
sale_opportunity=ticket.getTitle()
elif i==6:
ticket=second
event=second_event_inc1
direction='Incoming'
sale_opportunity=ticket.getTitle()
self.checkLineProperties(data_line_list[i],
sale_opportunity = sale_opportunity,
direction = direction,
type = event.getTranslatedPortalType(),
destination_title_list = event.getDestinationTitleList(),
title = event.getTitle(),
stop_date = event.getStopDate(),
start_date = event.getStartDate(),
source = event.getSourceTitle(),
validation_state = event.getTranslatedSimulationStateTitle())
def testEventActivity(self):
# Event Activity report.
# creating one ticket of every type
sale_opportunity = self._makeOneTicket(
portal_type='Sale Opportunity',
title='Sale Opportunity One',
simulation_state='contacted',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
campaign = self._makeOneTicket(
portal_type='Campaign',
title='Campaign One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
meeting = self._makeOneTicket(
portal_type='Meeting',
title='Meeting One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
support_request = self._makeOneTicket(
portal_type='Support Request',
title='Support Request One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events in every incoming-outgoing state related with tickets
event1 = self._makeOneEvent(
portal_type='Fax Message',
title='Event 1',
simulation_state='acknowledged',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event2 = self._makeOneEvent(
portal_type='Letter',
title='Event 2',
simulation_state='assigned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=campaign.getRelativeUrl())
event3 = self._makeOneEvent(
portal_type='Phone Call',
title='Event 3',
simulation_state='cancelled',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=meeting.getRelativeUrl())
event4 = self._makeOneEvent(
portal_type='Mail Message',
title='Event 4',
simulation_state='expired',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
follow_up=support_request.getRelativeUrl())
event5 = self._makeOneEvent(
portal_type='Fax Message',
title='Event 5',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event6 = self._makeOneEvent(
portal_type='Letter',
title='Event 6',
simulation_state='responded',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=campaign.getRelativeUrl())
event7 = self._makeOneEvent(
portal_type='Mail Message',
title='Event 7',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=meeting.getRelativeUrl())
event8 = self._makeOneEvent(
portal_type='Phone Call',
title='Event 8',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=support_request.getRelativeUrl())
event9 = self._makeOneEvent(
portal_type='Fax Message',
title='Event 9',
simulation_state='ordered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event10 = self._makeOneEvent(
portal_type='Letter',
title='Event 10',
simulation_state='started',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=campaign.getRelativeUrl())
# creating free event for unassigned
free_event = self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
free_event = self._makeOneEvent(
portal_type='Fax Message',
title='Free 2',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events in every non incoming-outgoing state related with tickets
event = self._makeOneEvent(
portal_type='Fax Message',
title='Event deleted 1',
simulation_state='draft',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event = self._makeOneEvent(
portal_type='Letter',
title='Event deleted 2',
simulation_state='deleted',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=campaign.getRelativeUrl())
# creating events in incoming-outgoing state related with tickets
# by causality with one related event
event = self._makeOneEvent(
portal_type='Fax Message',
title='Event causality 1',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
causality=event9.getRelativeUrl())
event = self._makeOneEvent(
portal_type='Letter',
title='Event causality 2',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
causality=event10.getRelativeUrl())
# creating events related with same ticket by follow-up and causality
# Only must count one time (follow-up)
event = self._makeOneEvent(
portal_type='Fax Message',
title='Event both 1',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
causality=event5.getRelativeUrl(),
follow_up=sale_opportunity.getRelativeUrl())
event = self._makeOneEvent(
portal_type='Letter',
title='Event both 2',
simulation_state='responded',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
causality=event6.getRelativeUrl(),
follow_up=campaign.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
report_section_list = self.getReportSectionList(
'EventModule_viewEventActivityReport')
#Obtain 2 listbox with outgoing and incoming events
self.assertEquals(2, len(report_section_list))
#Outgoing
line_list = self.getListBoxLineList(report_section_list[0])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 6 states
self.assertEquals(6, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['validation_state','Campaign', 'Meeting',
'SaleOpportunity','SupportRequest', 'unassigned','total'])
for i in range(len(data_line_list)):
if i==0:
pvalidation_state = 'Acknowledged'
pCampaign = 0
pMeeting = 0
pSaleOpportunity = 1
pSupportRequest = 0
punassigned = 0
ptotal = 1
elif i==1:
pvalidation_state = 'Assigned'
pCampaign = 1
pMeeting = 0
pSaleOpportunity = 0
pSupportRequest = 0
punassigned = 0
ptotal = 1
elif i==2:
pvalidation_state = 'Cancelled'
pCampaign = 0
pMeeting = 1
pSaleOpportunity = 0
pSupportRequest = 0
punassigned = 0
ptotal = 1
elif i==3:
pvalidation_state = 'Expired'
pCampaign = 0
pMeeting = 0
pSaleOpportunity = 0
pSupportRequest = 1
punassigned = 0
ptotal = 1
elif i==4:
pvalidation_state = 'New'
pCampaign = 1
pMeeting = 0
pSaleOpportunity = 3
pSupportRequest = 0
punassigned = 1
ptotal = 5
elif i==5:
pvalidation_state = 'Responded'
pCampaign = 2
pMeeting = 0
pSaleOpportunity = 0
pSupportRequest = 0
punassigned = 0
ptotal = 2
self.checkLineProperties(data_line_list[i],
validation_state = pvalidation_state,
Campaign = pCampaign,
Meeting = pMeeting,
SaleOpportunity = pSaleOpportunity,
SupportRequest = pSupportRequest,
unassigned = punassigned,
total = ptotal)
# Stat Line
stat_line = line_list[-1]
self.failUnless(stat_line.isStatLine())
self.assertEquals('Total', stat_line.getColumnProperty('validation_state'))
self.assertEquals(4, stat_line.getColumnProperty('Campaign'))
self.assertEquals(1, stat_line.getColumnProperty('Meeting'))
self.assertEquals(4, stat_line.getColumnProperty('SaleOpportunity'))
self.assertEquals(1, stat_line.getColumnProperty('SupportRequest'))
self.assertEquals(1, stat_line.getColumnProperty('unassigned'))
self.assertEquals(11, stat_line.getColumnProperty('total'))
#Incoming
line_list = self.getListBoxLineList(report_section_list[1])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 4 states
self.assertEquals(4, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['validation_state','Campaign', 'Meeting',
'SaleOpportunity','SupportRequest', 'unassigned','total'])
for i in range(len(data_line_list)):
if i==0:
pvalidation_state = 'Delivered'
pCampaign = 0
pMeeting = 1
pSaleOpportunity = 0
pSupportRequest = 0
punassigned = 1
ptotal = 2
elif i==1:
pvalidation_state = 'Outgoing'
pCampaign = 0
pMeeting = 0
pSaleOpportunity = 0
pSupportRequest = 1
punassigned = 0
ptotal = 1
elif i==2:
pvalidation_state = 'Pending'
pCampaign = 0
pMeeting = 0
pSaleOpportunity = 1
pSupportRequest = 0
punassigned = 0
ptotal = 1
elif i==3:
pvalidation_state = 'Posted'
pCampaign = 1
pMeeting = 0
pSaleOpportunity = 0
pSupportRequest = 0
punassigned = 0
ptotal = 1
self.checkLineProperties(data_line_list[i],
validation_state = pvalidation_state,
Campaign = pCampaign,
Meeting = pMeeting,
SaleOpportunity = pSaleOpportunity,
SupportRequest = pSupportRequest,
unassigned = punassigned,
total = ptotal)
# Stat Line
stat_line = line_list[-1]
self.failUnless(stat_line.isStatLine())
self.assertEquals('Total', stat_line.getColumnProperty('validation_state'))
self.assertEquals(1, stat_line.getColumnProperty('Campaign'))
self.assertEquals(1, stat_line.getColumnProperty('Meeting'))
self.assertEquals(1, stat_line.getColumnProperty('SaleOpportunity'))
self.assertEquals(1, stat_line.getColumnProperty('SupportRequest'))
self.assertEquals(1, stat_line.getColumnProperty('unassigned'))
self.assertEquals(5, stat_line.getColumnProperty('total'))
def testEventDetailedReport(self):
# Event Detailed Report report.
# creating one ticket of every type
sale_opportunity = self._makeOneTicket(
portal_type='Sale Opportunity',
title='Sale Opportunity One',
simulation_state='contacted',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
start_date=DateTime(2007, 2, 2),
stop_date=DateTime(2007, 11, 30))
campaign = self._makeOneTicket(
portal_type='Campaign',
title='Campaign One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
meeting = self._makeOneTicket(
portal_type='Meeting',
title='Meeting One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_1,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
support_request = self._makeOneTicket(
portal_type='Support Request',
title='Support Request One',
simulation_state='validated',
source_section_value=self.organisation_module.My_organisation,
destination_section_value=self.organisation_module.Organisation_2,
start_date=DateTime(2007, 1, 2),
stop_date=DateTime(2007, 12, 31))
# creating events in every incoming-outgoing state related with tickets
event1 = self._makeOneEvent(
portal_type='Fax Message',
title='Event 1',
simulation_state='acknowledged',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event2 = self._makeOneEvent(
portal_type='Letter',
title='Event 2',
simulation_state='assigned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=campaign.getRelativeUrl())
event3 = self._makeOneEvent(
portal_type='Phone Call',
title='Event 3',
simulation_state='cancelled',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=meeting.getRelativeUrl())
event4 = self._makeOneEvent(
portal_type='Mail Message',
title='Event 4',
simulation_state='expired',
destination_value=self.organisation_module.My_organisation,
source_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 7, 1, 1),
follow_up=support_request.getRelativeUrl())
event5 = self._makeOneEvent(
portal_type='Fax Message',
title='Event 5',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event6 = self._makeOneEvent(
portal_type='Letter',
title='Event 6',
simulation_state='responded',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=campaign.getRelativeUrl())
event7 = self._makeOneEvent(
portal_type='Mail Message',
title='Event 7',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=meeting.getRelativeUrl())
event8 = self._makeOneEvent(
portal_type='Phone Call',
title='Event 8',
simulation_state='planned',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=support_request.getRelativeUrl())
event9 = self._makeOneEvent(
portal_type='Fax Message',
title='Event 9',
simulation_state='ordered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event10 = self._makeOneEvent(
portal_type='Letter',
title='Event 10',
simulation_state='started',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
follow_up=campaign.getRelativeUrl())
# creating free event for unassigned
free_event = self._makeOneEvent(
portal_type='Fax Message',
title='Free 1',
simulation_state='delivered',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
free_event = self._makeOneEvent(
portal_type='Fax Message',
title='Free 2',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 2, 1, 1))
# creating events in every non incoming-outgoing state related with tickets
event = self._makeOneEvent(
portal_type='Fax Message',
title='Event deleted 1',
simulation_state='draft',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
follow_up=sale_opportunity.getRelativeUrl())
event = self._makeOneEvent(
portal_type='Letter',
title='Event deleted 2',
simulation_state='deleted',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
follow_up=campaign.getRelativeUrl())
# creating events in incoming-outgoing state related with tickets
# by causality with one related event
event = self._makeOneEvent(
portal_type='Fax Message',
title='Event causality 1',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_1,
start_date=DateTime(2007, 2, 2, 1, 1),
causality=event9.getRelativeUrl())
event = self._makeOneEvent(
portal_type='Letter',
title='Event causality 2',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_2,
start_date=DateTime(2007, 2, 1, 1, 1),
causality=event10.getRelativeUrl())
# creating events related with same ticket by follow-up and causality
# Only must count one time (follow-up)
event = self._makeOneEvent(
portal_type='Fax Message',
title='Event both 1',
simulation_state='new',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
causality=event5.getRelativeUrl(),
follow_up=sale_opportunity.getRelativeUrl())
event = self._makeOneEvent(
portal_type='Letter',
title='Event both 2',
simulation_state='responded',
source_value=self.organisation_module.My_organisation,
destination_value=self.person_module.Person_3,
start_date=DateTime(2007, 2, 3, 1, 1),
causality=event6.getRelativeUrl(),
follow_up=campaign.getRelativeUrl())
get_transaction().commit()
self.tic()
# set request variables and render
request_form = self.portal.REQUEST.other
request_form['from_date'] = DateTime(2007, 1, 1)
report_section_list = self.getReportSectionList(
'EventModule_viewEventDetailedReport')
#Obtain 1 listbox with outgoing and incoming events
self.assertEquals(1, len(report_section_list))
line_list = self.getListBoxLineList(report_section_list[0])
data_line_list = [l for l in line_list if l.isDataLine()]
# we have 5 lines
self.assertEquals(5, len(data_line_list))
# test columns values
line = data_line_list[0]
self.assertEquals(line.column_id_list,
['ticket_title','ticket_type', 'resource',
'delivered', 'ordered', 'acknowledged', 'assigned',
'started', 'draft', 'planned', 'cancelled', 'new',
'expired', 'responded','total'])
for i in range(len(data_line_list)):
if i==0:
pticket_title = 'Campaign One'
pticket_type = 'Campaign'
pdelivered = 0
pordered = 0
packnowledged = 0
passigned = 1
pstarted = 1
pdraft = 0
pplanned = 0
pcancelled = 0
pnew = 1
pexpired = 0
presponded = 2
ptotal = 5
elif i==1:
pticket_title = 'Meeting One'
pticket_type = 'Meeting'
pdelivered = 1
pordered = 0
packnowledged = 0
passigned = 0
pstarted = 0
pdraft = 0
pplanned = 0
pcancelled = 1
pnew = 0
pexpired = 0
presponded = 0
ptotal = 2
elif i==2:
pticket_title = 'Sale Opportunity One'
pticket_type = 'Sale Opportunity'
pdelivered = 0
pordered = 1
packnowledged = 1
passigned = 0
pstarted = 0
pdraft = 1
pplanned = 0
pcancelled = 0
pnew = 3
pexpired = 0
presponded = 0
ptotal = 6
elif i==3:
pticket_title = 'Support Request One'
pticket_type = 'Support Request'
pdelivered = 0
pordered = 0
packnowledged = 0
passigned = 0
pstarted = 0
pdraft = 0
pplanned = 1
pcancelled = 0
pnew = 0
pexpired = 1
presponded = 0
ptotal = 2
elif i==4:
pticket_title = ''
pticket_type = 'Unassigned'
pdelivered = 1
pordered = 0
packnowledged = 0
passigned = 0
pstarted = 0
pdraft = 0
pplanned = 0
pcancelled = 0
pnew = 1
pexpired = 0
presponded = 0
ptotal = 2
self.checkLineProperties(data_line_list[i],
ticket_title = pticket_title,
ticket_type = pticket_type,
delivered = pdelivered,
ordered = pordered,
acknowledged = packnowledged,
assigned = passigned,
started = pstarted,
draft = pdraft,
planned = pplanned,
cancelled = pcancelled,
new = pnew,
expired = pexpired,
responded = presponded,
total = ptotal)
# Stat Line
stat_line = line_list[-1]
self.failUnless(stat_line.isStatLine())
self.assertEquals('Total', stat_line.getColumnProperty('ticket_title'))
self.assertEquals(2, stat_line.getColumnProperty('delivered'))
self.assertEquals(1, stat_line.getColumnProperty('ordered'))
self.assertEquals(1, stat_line.getColumnProperty('acknowledged'))
self.assertEquals(1, stat_line.getColumnProperty('assigned'))
self.assertEquals(1, stat_line.getColumnProperty('started'))
self.assertEquals(1, stat_line.getColumnProperty('draft'))
self.assertEquals(1, stat_line.getColumnProperty('planned'))
self.assertEquals(1, stat_line.getColumnProperty('cancelled'))
self.assertEquals(5, stat_line.getColumnProperty('new'))
self.assertEquals(1, stat_line.getColumnProperty('expired'))
self.assertEquals(2, stat_line.getColumnProperty('responded'))
self.assertEquals(17, stat_line.getColumnProperty('total'))
def test_suite():
suite = unittest.TestSuite()
suite.addTest(unittest.makeSuite(TestCrmReports))
return suite
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment