[MERGE] website_sale optional-products
[odoo/odoo.git] / addons / membership / test / test_membership.yml
1 - |
2   In Order to test the Membership in OpenERP, which allows us to manage all operations for managing memberships.
3 - |
4   I'm creating "Gold Membership" which has Membership fee 80 EURO and It's started from 1st June to 31st Dec.
5 -
6   !record {model: product.product, id: product_product_membershipproduct0}:
7     categ_id: product.product_category_1
8     membership: 1
9     membership_date_from: !eval datetime.today().strftime("%Y-%m-%d")
10     membership_date_to: !eval "(datetime.now() + timedelta(6*31)).strftime('%Y-%m-%d')" 
11     name: Gold Membership
12     type: service
13     list_price: 80.00
14
15 - |
16   "Seagate" want to join "Gold Membership", so I'm checking  "Current Membership State" of "Seagate". It is an "Non Member" or not.
17 -
18   !assert {model: res.partner, id: base.res_partner_19}:
19       - membership_state == 'none', 'Member should be has "Current Membership State" in "Non Member".'
20 - |
21   I'm doing to make membership invoice for "Seagate" on joining "Gold Membership".
22 -
23   !python {model: res.partner}: |
24     self.create_membership_invoice(cr, uid, [ref("base.res_partner_19")], product_id=ref("product_product_membershipproduct0"), datas={"amount":80.00})
25 - |
26   I'm checking  "Current Membership State" of "Seagate". It is an "Waiting Member" or not.
27 -
28   !assert {model: res.partner, id: base.res_partner_19}:
29       - membership_state == 'waiting', 'Member should be has "Current Membership State" in "Waiting Member".'
30 - |
31   I'm Opening that Invoice which is created for "Seagate".
32 -
33   !python {model: res.partner}: |
34         invoice_pool = self.pool.get('account.invoice')
35         partner_pool = self.pool.get('res.partner')
36         membership_line_pool = self.pool.get('membership.membership_line')
37         membership_pool = self.pool.get('product.product')
38
39         membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
40         membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
41         assert membership_lines, 'Membership is not registrated.'
42         membership_line = membership_lines[0]
43         invoice_pool.signal_invoice_open(cr, uid, [membership_line.account_invoice_id.id])
44
45 - |
46   I'm checking "Current membership state" of "Seagate". It is an "Invoiced Member" or not.
47 -
48   !assert {model: res.partner, id: base.res_partner_19}:
49      - membership_state == 'invoiced', 'Member should be has "Current Membership State" in "Invoiced Member".'
50
51 - |
52   I'm creating free member "Ms. Johnson" of "Gold Membership".
53 -
54   !record {model: res.partner, id: res_partner_msjohnson0}:
55         name: Ms. Johnson
56         city: paris
57         country_id: base.fr
58         name: Ms. Johnson
59         street: 1 rue Rockfeller
60         type: invoice
61         zip: '75016'
62         free_member: True
63
64 - |
65   I'm checking "Current membership state" of "Ms. Johnson". It is an "Free Member" or not.
66 -
67   !assert {model: res.partner, id: res_partner_msjohnson0}:
68      - membership_state == 'free', 'Member should be has "Current Membership State" in "Free Member".'
69
70 - |
71   I'm set "Seagate" as a associated member of "Ms. Johnson" and also set Non free member.
72 -
73   !python {model: res.partner}: |
74     self.write(cr, uid, [ref("res_partner_msjohnson0")], {'free_member': False, 'associate_member': ref("base.res_partner_19")})
75
76 - |
77   I'm checking "Current membership state" of "Ms. Johnson". It is an "Paid Member" or not.
78 -
79   !assert {model: res.partner, id: res_partner_msjohnson0}:
80      - membership_state == 'paid', 'Member should be has "Current Membership State" in "Paid Member".'
81
82 - |
83   I'm creating new "Regular Membership" which has Membership fee 50 EURO and It's started from 1st June to 31st Dec.
84 -
85   !record {model: product.product, id: product_product_membershipproduct1}:
86     categ_id: product.product_category_1
87     membership: 1
88     membership_date_from: !eval datetime.today().strftime("%Y-%m-%d")
89     membership_date_to: !eval "(datetime.now() + timedelta(6*31)).strftime('%Y-%m-%d')" 
90     name: Regular Membership
91     type: service
92     list_price: 50.00
93 - |
94   I'm making invoice of "Seagate" member on joining new membership "Regular Membership".
95 -
96   !python {model: res.partner}: |
97     self.create_membership_invoice(cr, uid, [ref("base.res_partner_19")], product_id=ref("product_product_membershipproduct1"), datas={"amount":50.00})
98 - |
99   I'm checking "Current membership state" of "Seagate". It is an "Old Member" or not.
100 -
101   !assert {model: res.partner, id: base.res_partner_19}:
102       - membership_state == 'old', 'Member should be has "Current Membership State" in "Old Member".'
103 - |
104   I'm doing to make credit note of invoice which is paid by "Seagate" to cancel membership.
105 -
106   !python {model: account.invoice}: |
107         invoice_pool = self.pool.get('account.invoice')
108         partner_pool = self.pool.get('res.partner')
109         membership_line_pool = self.pool.get('membership.membership_line')
110         membership_pool = self.pool.get('product.product')
111         invoice_refund_pool = self.pool.get('account.invoice.refund')
112
113         membership_line_ids = membership_line_pool.search(cr, uid, [('membership_id','=',ref('product_product_membershipproduct0')),('partner','=',ref('base.res_partner_19'))])
114         membership_lines = membership_line_pool.browse(cr, uid, membership_line_ids)
115         assert membership_lines, 'Membership is not registrated.'
116         membership_line = membership_lines[0]
117         refund_id = invoice_refund_pool.create(cr, uid, {'description': 'Refund of Membership', 'filter_refund': 'refund'}, {'active_id': membership_line.account_invoice_id.id})
118         invoice_refund_pool.invoice_refund(cr, uid, [refund_id], {'active_id': membership_line.account_invoice_id.id, 'active_ids': [membership_line.account_invoice_id.id]})
119 - |
120   I'm checking "Current membership state" of "Seagate". It is an "Cancelled Member" or not.
121 -
122   !assert {model: res.partner, id: base.res_partner_19}:
123       - membership_state == 'canceled', 'Member should be has "Current Membership State" in "Cancelled Member".'
124