Rohan Nayani(Open ERP) has proposed merging
lp:~openerp-dev/openobject-addons/trunk-coverage-event-ron into
lp:openobject-addons.
Requested reviews:
OpenERP Core Team (openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-coverage-event-ron/+merge/82635
Hello,
* Clean test cases of Yml event Module:
=============================
event_confirm2done.yml => Process from event confirm to done.
event_draft2cancel.yml => Process from event draft to confirm and check for
registration below limit of events so cancle of that event.
partner_register2invoice.yml => Process from partner registration, confirmation
then generated invoice and also create group invoice bases of same partner.
duplicate_event.yml => duplicate of event.'
* Improve Demo data
* Fixed Traceback when converting partner to registration of event.
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-coverage-event-ron/+merge/82635
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openobject-addons/trunk-coverage-event-ron.
=== modified file 'event/__openerp__.py'
--- event/__openerp__.py 2011-10-11 20:05:49 +0000
+++ event/__openerp__.py 2011-11-18 05:27:57 +0000
@@ -54,7 +54,11 @@
'res_partner_view.xml',
],
'demo_xml': ['event_demo.xml'],
- 'test': ['test/test_event.yml'],
+ 'test': ['test/process/event_confirm2done.yml',
+ 'test/process/event_draft2cancel.yml',
+ 'test/process/partner_register2invoice.yml',
+ 'test/ui/duplicate_event.yml',
+ 'test/ui/onchange_events.yml'],
'installable': True,
'active': False,
'certificate': '0083059161581',
=== modified file 'event/event_demo.xml'
--- event/event_demo.xml 2011-01-14 00:11:01 +0000
+++ event/event_demo.xml 2011-11-18 05:27:57 +0000
@@ -61,6 +61,8 @@
<field eval="time.strftime('%Y-%m-01 23:05:15')" name="date_end"/>
<field name="product_id" ref="event_product_0"/>
<field name="unit_price">68.00</field>
+ <field name="mail_auto_registr">True</field>
+ <field name="mail_auto_confirm">True</field>
<field name="user_id" ref="base.user_root"/>
<field name="register_max">500</field>
<field name="type" ref="event_type_1"/>
@@ -74,9 +76,9 @@
<field name="unit_price">24.00</field>
<field name="type" ref="event_type_1"/>
<field name="user_id" ref="base.user_root"/>
+ <field name="register_min">50</field>
<field name="register_max">350</field>
</record>
- <function model="event.event" name="button_confirm" eval="[ref('event_1')]"/>
<record id="event_2" model="event.event">
<field name="name">Conference on ERP Buisness</field>
<field eval="time.strftime('%Y-%m-05 14:00:00')" name="date_begin"/>
@@ -126,5 +128,16 @@
<function model="event.registration" name="check_confirm" eval="[ref('reg_0_1')]"/>
+ <record id="reg_0_2" model="event.registration">
+ <field name="event_id" ref="event_2"/>
+ <field name="partner_id" ref="base.res_partner_c2c"/>
+ <field name="partner_invoice_id" ref="base.res_partner_c2c"/>
+ <field name="nb_register">5</field>
+ <field name="event_product">Ticket for Conference</field>
+ <field name="unit_price">20</field>
+ </record>
+
+ <function model="event.registration" name="check_confirm" eval="[ref('reg_0_2')]"/>
+
</data>
</openerp>
=== added directory 'event/test/process'
=== renamed file 'event/test/test_event.yml' => 'event/test/process/event_confirm2done.yml'
--- event/test/test_event.yml 2011-08-16 09:23:40 +0000
+++ event/test/process/event_confirm2done.yml 2011-11-18 05:27:57 +0000
@@ -1,172 +1,22 @@
-- |
- In order to test the "Event Organisation" in Association system.
-- |
- I want to organize one conference event on "OpenERP Business".
-- |
- I'm creating new product "Conference Ticket" to specify registration Cost of conference.
--
- !record {model: product.product, id: product_product_ticketforconcert0}:
- categ_id: product.cat1
- list_price: 68.0
- name: Conference Ticket
-- |
- I'm creating Event type "Conference".
--
- !record {model: event.type, id: event_type_conference0}:
- name: Conferences
-- |
- I'm creating one Event "Conference on OpenERP Business" which will last from 1st of this month to 10th of this month.
--
- !record {model: event.event, id: event_event_conference0}:
- date_begin: !eval time.strftime('%Y-%m-01')
- date_end: !eval time.strftime('%Y-%m-10')
- name: Conference on OpenERP Business.
- product_id: 'product_product_ticketforconcert0'
- type: 'event_type_conference0'
- reply_to: '[email protected]'
-- |
- Check that the new conference event is "Draft" or not.
--
- !assert {model: event.event, id: event_event_conference0}:
- - state == 'draft', "Event should be in draft by default when first time created"
-- |
- Need Minimum 10 Registrations to confirm/start this Conference Event and does not allowed more than 100 Registrations.
-- |
- So I set Minimum and Maximum Registrations limit.
--
- !python {model: event.event}: |
- self.write(cr, uid, [ref('event_event_conference0')], {'register_max': 100, 'register_min': 10})
-- |
- I'm doing to confirm that conference event.
--
- !python {model: event.event}: |
- self.button_confirm(cr, uid, [ref("event_event_conference0")])
-- |
- But this conference event need minimum 10 Confirmed Registrations. so Check that Event is not "confirmed".
--
- !assert {model: event.event, id: event_event_conference0}:
- - state != 'confirm', "Event should not confirmed if minimum registrations does not reached"
-- |
- "Mark Johnson" want to subscribe/join into "Conference on OpenERP Business" with 10 tickets.
-- |
- I'm creating new partner "Mark Johnson" with his email "[email protected]".
--
- !record {model: res.partner, id: res_partner_markjohnson0}:
- address:
- - city: Bruxelles
- country_id: base.be
- job_ids:
- - contact_id: base_contact.res_partner_contact_jacot0
- function: CTO
- name: base.res_partner_maxtor
- sequence_partner: 0.0
- state: current
- street: Rue des Palais 51, bte 33
- type: default
- zip: '1000'
- email: '[email protected]'
- name: Mark Johnson
-
-- |
- I'm creating Registration for "Mark Johnson" on "Conference on OpenERP Business" with 10 tickets.
--
- !record {model: event.registration, id: event_registration_registrationjacot0}:
- contact_id: base_contact.res_partner_contact_jacot0
- event_id: event.event_event_conference0
- partner_id: event.res_partner_markjohnson0
- partner_invoice_id: event.res_partner_markjohnson0
- event_product: Conference Ticket
- unit_price: 68.0
- nb_register: 10
-- |
- I'm going to Open that Registration.
--
- !python {model: event.registration}: |
- self.check_confirm(cr, uid, [ref("event_registration_registrationjacot0")])
-- |
- Check that Registration is in "Open" state or not.
--
- !assert {model: event.registration, id: event_registration_registrationjacot0}:
- - state == 'open', "Registration should be open here."
-
-- |
- I'm again trying to confirm that conference event.
--
- !python {model: event.event}: |
- self.button_confirm(cr, uid, [ref("event_event_conference0")])
-
-- |
- Now Minimum requirement of Registration is fulfil. so Check that Event is "confirmed" or not.
--
- !assert {model: event.event, id: event_event_conference0}:
- - state == 'confirm', "Event should be confirmed here."
-
-- |
- I'm creating invoice of Registration of "Mark Johnson" on "Conference on OpenERP Business".
--
- !python {model: event.registration}: |
- self.action_invoice_create(cr, uid, [ref("event_registration_registrationjacot0")])
-
-- |
- Check Invoice of Registration of "Mark Johnson" is created or not.
--
- !assert {model: event.registration, id: event_registration_registrationjacot0}:
- - invoice_id != False, "Invoice should be generated"
-
-- |
- Check Registration of "Mark Johnson" is closed or not after invoice generated.
--
- !assert {model: event.registration, id: event_registration_registrationjacot0}:
- - state != 'done', "Registration should be closed after invoice generated"
-
-- |
- Now "Mark Johnson" want to another registration on "Conference on OpenERP Business" with 120 tickets.
-- |
- I'm creating new registration for "Mark Johnson" with 100 tickets.
--
- !record {model: event.registration, id: event_registration_registrationzen0}:
- event_id: event.event_event_conference0
- partner_id: event.res_partner_markjohnson0
- partner_invoice_id: event.res_partner_markjohnson0
- event_product: Conference Ticket
- unit_price: 68.0
- nb_register: 100
-
-- |
- I'm going to open "Mark Johnson" registration.
--
- !python {model: event.registration}: |
- self.check_confirm(cr, uid, [ref("event_registration_registrationzen0")])
-
-- |
- But conference event does not allow more than 100 Registrations. so Check that registration is not in "open" state.
--
- !assert {model: event.registration, id: event_registration_registrationzen0}:
- - state == 'draft', "Registration should be in draft by default."
-- |
- Now I'm modifying number of tickets of "Mark Johnson"'s registration with 90 tickets.
--
- !python {model: event.registration}: |
- self.write(cr, uid, [ref("event_registration_registrationzen0")], {'nb_register': 90})
-- |
- I'm again try to open "Mark Johnson" registration.
--
- !python {model: event.registration}: |
- self.check_confirm(cr, uid, [ref("event_registration_registrationzen0")])
-
-- |
- Check that registration "open" or not.
--
- !assert {model: event.registration, id: event_registration_registrationzen0}:
- - state == 'open', "Registration should be open here."
-- |
- I'm closing "Conference on OpenERP Business" Conference event
--
- !python {model: event.event}: |
- self.button_done(cr, uid, [ref("event_event_conference0")])
-- |
- Check that conference is in "close" state or not.
--
- !assert {model: event.event, id: event_event_conference0}:
- - state == 'done', "Registration should be Closed here."
-
+-
+ I want to organize one conference event on "OpenERP Business", Customer subscribe/join
+ into "Conference on OpenERP Business" with 6 tickets, first I confim this event.
+-
+ !python {model: event.event}: |
+ self.button_confirm(cr, uid, [ref("event_0")])
+-
+ I Check that Event is "confirmed", and Its automatically sending mail to registered
+ partner which joined to this event.
+-
+ !assert {model: event.event, id: event_0}:
+ - state == 'confirm', "Event should be confirmed."
+-
+ After completed event, I close this event.
+-
+ !python {model: event.event}: |
+ self.button_done(cr, uid, [ref("event_0")])
+-
+ Check that conference is in "close" state.
+-
+ !assert {model: event.event, id: event_0}:
+ - state == 'done', "Event should be Closed."
=== added file 'event/test/process/event_draft2cancel.yml'
--- event/test/process/event_draft2cancel.yml 1970-01-01 00:00:00 +0000
+++ event/test/process/event_draft2cancel.yml 2011-11-18 05:27:57 +0000
@@ -0,0 +1,22 @@
+-
+ I want to organize event and its need Minimum 50 Registrations to confirm/start
+ this Event, but Only 10 registration confirm for this event, I confirm this event.
+-
+ !python {model: event.event}: |
+ self.button_confirm(cr, uid, [ref("event_1")])
+-
+ Now I cheked for event and It should not be confirm because registrations for
+ this event is below limit.
+-
+ !assert {model: event.event, id: event_1}:
+ - state == 'confirm', "Event should be confirm."
+-
+ So I cancel this Event
+-
+ !python {model: event.event}: |
+ self.button_cancel(cr, uid, [ref("event_1")])
+-
+ I check event should be cancel.
+-
+ !assert {model: event.event, id: event_1}:
+ - state == 'cancel', "Event should be cancel"
=== added file 'event/test/process/partner_register2invoice.yml'
--- event/test/process/partner_register2invoice.yml 1970-01-01 00:00:00 +0000
+++ event/test/process/partner_register2invoice.yml 2011-11-18 05:27:57 +0000
@@ -0,0 +1,62 @@
+-
+ I want to organize one conference event, First I registered partner for event
+ with 5 tickets.
+-
+ !python {model: partner.event.registration}: |
+ context.update({'active_model': 'res.partner', 'active_ids': [ref("base.res_partner_ericdubois0")], 'active_id': ref("base.res_partner_ericdubois0")})
+ register = self.create(cr, uid, {'event_id': ref('event_1'),'nb_register': 5}, context=context)
+ self.open_registration(cr, uid, [register], context=context)
+-
+ Now I check for registration created base on partner.
+-
+ !python {model: event.registration}: |
+ ids = self.search(cr, uid, [('partner_id','=',ref("base.res_partner_ericdubois0")), ('event_id', '=', ref('event_1'))])
+ assert ids, "Registration should be create here."
+-
+ I confirm registration process.
+-
+ !python {model: event.registration}: |
+ self.check_confirm(cr, uid, [ref("reg_1_1")])
+-
+ I Check that Registration is confirm.
+-
+ !assert {model: event.registration, id: reg_1_1}:
+ - state == 'open', "Registration should be open here."
+-
+ After confirmation of partner, I create invoice base on costing of event.
+-
+ !python {model: event.registration}: |
+ self.action_invoice_create(cr, uid, [ref("reg_1_1")])
+-
+ Now I Check for Invoice is created and Registration should be closed after invoice generated.
+-
+ !python {model: event.registration}: |
+ record = self.browse(cr, uid, [ref("reg_1_1")])[0]
+ assert record.invoice_id, "Invoice should be generated"
+ assert record.invoice_id.state == "draft", "Invoice state should be draft"
+ assert record.invoice_id.partner_id == record.partner_id, "Customer is not correspond with registration"
+ assert record.invoice_id.type == 'out_invoice', "Invoice type is not correct"
+ assert record.invoice_id.origin == record.event_product, "Invoice origin is not correct"
+ assert record.invoice_id.amount_total == record.price_subtotal, "Invoice amount is not correct"
+ assert record.state == "done", "Registration should be closed after invoice generated"
+-
+ Now I check for same partner registration for two diffrent event and I create group invoices for same partner.
+-
+ !python {model: event.make.invoice}: |
+ context.update({'active_model': 'event.make.invoice', 'active_ids': [ref("reg_0_1"), ref("reg_0_2")], 'active_id': ref("reg_0_1")})
+ invoice = self.create(cr, uid, {'grouped': True}, context=context)
+ self.make_invoice(cr, uid, [invoice], context=context)
+-
+ Now I Check for group Invoice is created with total amount of both registration
+ and Registration should be closed after invoice generated.
+-
+ !python {model: event.registration}: |
+ reg_data_1 = self.browse(cr, uid, [ref("reg_0_1")])[0]
+ reg_data_2 = self.browse(cr, uid, [ref("reg_0_2")])[0]
+ assert reg_data_1.invoice_id, "Invoice should be generated"
+ assert reg_data_1.invoice_id.state == "draft", "Invoice state should be draft"
+ assert reg_data_1.invoice_id.partner_id == reg_data_1.partner_id, "Customer is not correspond with registration"
+ assert reg_data_1.invoice_id.type == 'out_invoice', "Invoice type is not correct"
+ assert reg_data_1.invoice_id.origin == reg_data_1.event_product, "Invoice origin is not correct"
+ assert reg_data_1.invoice_id.amount_total == (reg_data_1.price_subtotal + reg_data_2.price_subtotal), "Invoice total amount is not correct"
+ assert reg_data_1.state == "done", "Registration should be closed after invoice generated"
=== added directory 'event/test/ui'
=== added file 'event/test/ui/duplicate_event.yml'
--- event/test/ui/duplicate_event.yml 1970-01-01 00:00:00 +0000
+++ event/test/ui/duplicate_event.yml 2011-11-18 05:27:57 +0000
@@ -0,0 +1,8 @@
+-
+ Copy of event.
+-
+ !python {model: event.event}: |
+ try:
+ self.copy(cr, uid, ref("event_2"))
+ except:
+ pass
\ No newline at end of file
=== added file 'event/test/ui/onchange_events.yml'
--- event/test/ui/onchange_events.yml 1970-01-01 00:00:00 +0000
+++ event/test/ui/onchange_events.yml 2011-11-18 05:27:57 +0000
@@ -0,0 +1,26 @@
+-
+ I call onchange event to change costing of registration base on event.
+-
+ !python {model: event.registration}: |
+ self.onchange_event(cr, uid, ref('reg_1_1'), ref("event_1"), [])
+-
+ I call onchange event to change the partner of event registration.
+-
+ !python {model: event.registration}: |
+ self.onchange_partner_id(cr, uid, ref('reg_1_1'), ref("base.res_partner_asus"), ref("event_1"), email=False)
+-
+ I call onchange event to change the product of event.
+-
+ !python {model: event.event}: |
+ self.onchange_product(cr, uid, ref("event_1"), ref("event_product_0"))
+-
+ I call onchange event to change the team of event.
+-
+ !python {model: event.event}: |
+ self.do_team_change(cr, uid, ref("event_1"), ref("crm.section_sales_department"))
+-
+ I call onchange event on partner registration.
+-
+ !python {model: partner.event.registration}: |
+ context.update({'active_id': ref("base.res_partner_ericdubois0")})
+ self.onchange_event_id(cr, uid, 1, ref("event_1"), context=context)
=== modified file 'event/wizard/partner_event_registration.py'
--- event/wizard/partner_event_registration.py 2011-01-14 00:11:01 +0000
+++ event/wizard/partner_event_registration.py 2011-11-18 05:27:57 +0000
@@ -34,8 +34,8 @@
'event_id': fields.many2one('event.event', 'Event'),
'event_type': fields.many2one('event.type', 'Type', readonly=True),
'unit_price': fields.float('Registration Cost', digits_compute=dp.get_precision('Sale Price')),
- 'start_date': fields.datetime('Start date', required=True, help="Beginning Date of Event", readonly=True),
- 'end_date': fields.datetime('Closing date', required=True, help="Closing Date of Event", readonly=True),
+ 'start_date': fields.datetime('Start date', help="Beginning Date of Event", readonly=True),
+ 'end_date': fields.datetime('Closing date', help="Closing Date of Event", readonly=True),
'nb_register': fields.integer('Number of Registration'),
}
_defaults = {
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp