[MERGE] base: raise an exception if the format of the bank account is wrong
[odoo/odoo.git] / openerp / addons / base / test / test_ir_rule.yml
1 -
2     Exercise ir_rule.py code (and indirectly expression.py).
3 -
4     Create an ir_rule for the Employee group (called base.group_user)
5     with an blank domain.
6 -
7     !record {model: ir.rule, id: test_rule}:
8         model_id: base.model_res_partner
9         domain_force: False
10         name: test_rule
11         groups:
12             - base.group_user
13         perm_unlink: 1
14         perm_write: 1
15         perm_read: 1
16         perm_create: 1
17 -
18     Read as demo user the partners (one blank domain).
19 -
20     !python {model: res.partner }: |
21         ids = self.search(cr, ref('base.user_demo'), [])
22         assert ids, "Demo user should see some partner."
23 -
24     Domain is not empty.
25 -
26     !record {model: ir.rule, id: test_rule}:
27         model_id: base.model_res_partner
28         domain_force: "[(1,'=',1)]"
29 -
30     Read as demo user the partners (one 1=1 domain).
31 -
32     !python {model: res.partner }: |
33         ids = self.search(cr, ref('base.user_demo'), [])
34         assert ids, "Demo user should see some partner."
35 -
36     Domain is an empty list.
37 -
38     !record {model: ir.rule, id: test_rule}:
39         model_id: base.model_res_partner
40         domain_force: "[]"
41 -
42     Read as demo user the partners (one [] domain).
43 -
44     !python {model: res.partner }: |
45         ids = self.search(cr, ref('base.user_demo'), [])
46         assert ids, "Demo user should see some partner."
47 -
48     Create another ir_rule for the Employee group (to test rules from
49     multiple groups).
50 -
51     !record {model: ir.rule, id: test_rule2}:
52         model_id: base.model_res_partner
53         domain_force: False
54         name: test_rule2
55         groups:
56             - base.group_user
57         perm_unlink: 1
58         perm_write: 1
59         perm_read: 1
60         perm_create: 1
61 -
62     Read as demo user the partners (blank and [] domains).
63 -
64     !python {model: res.partner }: |
65         ids = self.search(cr, ref('base.user_demo'), [])
66         assert ids, "Demo user should see some partner."
67 -
68     Domain is not empty.
69 -
70     !record {model: ir.rule, id: test_rule}:
71         model_id: base.model_res_partner
72         domain_force: "[(1,'=',1)]"
73 -
74     Read as demo user the partners (1=1 and blank domain).
75 -
76     !python {model: res.partner }: |
77         ids = self.search(cr, ref('base.user_demo'), [])
78         assert ids, "Demo user should see some partner."
79 -
80     Domain is not empty.
81 -
82     !record {model: ir.rule, id: test_rule2}:
83         model_id: base.model_res_partner
84         domain_force: "[(1,'=',1)]"
85 -
86     Read as demo user the partners (two 1=1 domains).
87 -
88     !python {model: res.partner }: |
89         ids = self.search(cr, ref('base.user_demo'), [])
90         assert ids, "Demo user should see some partner."
91 -
92     Create another ir_rule for the Employee group (to test rules from
93     multiple groups).
94 -
95     !record {model: ir.rule, id: test_rule3}:
96         model_id: base.model_res_partner
97         domain_force: False
98         name: test_rule3
99         groups:
100             - base.group_user
101         perm_unlink: 1
102         perm_write: 1
103         perm_read: 1
104         perm_create: 1
105 -
106     Read as demo user the partners.
107 -
108     !python {model: res.partner }: |
109         ids = self.search(cr, ref('base.user_demo'), [])
110         assert ids, "Demo user should see some partner."
111 -
112     Domain is not empty.
113 -
114     !record {model: ir.rule, id: test_rule3}:
115         model_id: base.model_res_partner
116         domain_force: "[(1,'=',1)]"
117 -
118     Read as demo user the partners (three 1=1 domains).
119 -
120     !python {model: res.partner }: |
121         ids = self.search(cr, ref('base.user_demo'), [])
122         assert ids, "Demo user should see some partner."
123 -
124     Modify the global rule on res_company which triggers a recursive check
125     of the rules on company.
126 -
127     !record {model: ir.rule, id: base.res_company_rule}:
128         domain_force: "[('id','child_of',[user.company_id.id])]"
129 -
130     Read as demo user the partners (exercising the global company rule).
131 -
132     !python {model: res.partner }: |
133         ids = self.search(cr, ref('base.user_demo'), [])
134         assert ids, "Demo user should see some partner."
135 -
136     Modify the ir_rule for employee to have a rule that fordids
137     seeing any record.
138     We use a domain with implicit AND operator for later tests
139     on normalization.
140 -
141     !record {model: ir.rule, id: test_rule2}:
142         domain_force: "[('id','=',False),('name','=',False)]"
143 -
144     Check that demo user still sees partners, because group-rules are OR'ed.
145 -
146     !python {model: res.partner }: |
147         ids = self.search(cr, ref('base.user_demo'), [])
148         assert ids, "Demo user should see some partner."
149 -
150     Create a new group with demo user in it, and a complex rule.
151     Demo should still see partners.
152 -
153     !record {model: res.groups, id: test_group}:
154         name: Test Group
155         users:
156             - base.user_demo
157 -
158     Add the rule to the new group, with a domain containing an implicit AND operator,
159     which is more tricky because it will have to be normalized before combining it.
160 -
161     !record {model: ir.rule, id: test_rule3}:
162         model_id: base.model_res_partner
163         domain_force: "[('name', '!=', False),('id', '!=', False)]"
164         name: test_rule4
165         groups:
166             - test_group
167         perm_unlink: 1
168         perm_write: 1
169         perm_read: 1
170         perm_create: 1
171 -
172     Read the partners again as demo user, which should give results.
173 -
174     !python {model: res.partner }: |
175         ids = self.search(cr, ref('base.user_demo'), [])
176         assert ids, "Demo user should see partners even with the combined rules."
177 -
178     Delete global domains (to combine only group domains).
179 -
180     !python {model: ir.rule}: |
181         ids = self.search(cr, uid, [('groups','=',False)])
182         assert ids, "Demo user should see some partner."
183         self.unlink(cr, uid, ids)
184 -
185     Read as demo user the partners (several group domains, no global domain).
186 -
187     !python {model: res.partner }: |
188         ids = self.search(cr, ref('base.user_demo'), [])
189         assert ids, "Demo user should see some partner."