~unifield-team/unifield-wm/us-826

« back to all changes in this revision

Viewing changes to msf_budget/test/budget_test.yml

  • Committer: jf
  • Date: 2011-03-23 13:23:55 UTC
  • Revision ID: jf@tempo4-20110323132355-agyf1soy7m5ewatr
Initial Import

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
-
2
 
  In order to test the budget import,
3
 
  we need a lot.
4
 
  I create, in order, a account type, ...
5
 
-
6
 
  !record {model: account.account.type, id: account_account_type_expense0}:
7
 
    close_method: none
8
 
    code: expense
9
 
    name: Expense
10
 
    sign: 1
11
 
-
12
 
  ...a destination, ...
13
 
-
14
 
  !record {model: account.analytic.account, id: test_destination}:
15
 
    name: "Test Destination"
16
 
    code: "DESTINATION"
17
 
    category: DEST
18
 
-
19
 
  ...an "chart of accounts" account, ...
20
 
-
21
 
  !record {model: account.account, id: test_chart_of_accounts}:
22
 
    name: "MSF Chart of Accounts"
23
 
    code: "MSF"
24
 
    user_type: account_account_type_expense0
25
 
    type: view
26
 
-
27
 
  ...an account, ...
28
 
-
29
 
  !record {model: account.account, id: test_expense}:
30
 
    name: "Test Expense"
31
 
    code: "TEST"
32
 
    user_type: account_account_type_expense0
33
 
    type: payable
34
 
    parent_id: test_chart_of_accounts
35
 
-
36
 
  ...a destination link, ...
37
 
-
38
 
  !record {model: account.destination.link, id: test_destination_link}:
39
 
    account_id: test_expense
40
 
    destination_id: test_destination
41
 
-
42
 
 ...a cost center...
43
 
-
44
 
  !record {model: account.analytic.account, id: analytic_account_OC1}:
45
 
    name: "OC1"
46
 
    code: "OC1"
47
 
    category: OC
48
 
-
49
 
 ...a cost center...
50
 
-
51
 
  !record {model: account.analytic.account, id: analytic_account_OC2}:
52
 
    name: "OC2"
53
 
    code: "OC2"
54
 
    category: OC
55
 
-
56
 
 ...a funding pool...
57
 
-
58
 
  !record {model: account.analytic.account, id: analytic_account_FP1}:
59
 
    name: "FP1"
60
 
    code: "FP1"
61
 
    category: FUNDING
62
 
    cost_center_ids:
63
 
      - analytic_account_OC2
64
 
    tuple_destination_account_ids:
65
 
      - test_destination_link
66
 
-
67
 
 ...a funding pool...
68
 
-
69
 
  !record {model: account.analytic.account, id: analytic_account_FP2}:
70
 
    name: "FP2"
71
 
    code: "FP2"
72
 
    category: FUNDING
73
 
    cost_center_ids:
74
 
      - analytic_account_OC1
75
 
      - analytic_account_OC2
76
 
    tuple_destination_account_ids:
77
 
      - test_destination_link
78
 
-
79
 
  I set the company currency's rate to 1 for the move
80
 
-
81
 
  !record {model: res.currency.rate, id: currency_rate_test_3}:
82
 
    name: !eval "'%s-01-01' %(datetime.now().year+1)"
83
 
    rate: 1.00
84
 
    currency_id: base.CHF
85
 
-
86
 
  I set another currency's rate to 100 for the move
87
 
-
88
 
  !record {model: res.currency.rate, id: currency_rate_test_4}:
89
 
    name: !eval "'%s-01-01' %(datetime.now().year+1)"
90
 
    rate: 100.00
91
 
    currency_id: base.EUR
92
 
-
93
 
  ...an analytical journal, ...
94
 
-
95
 
  !record {model: account.analytic.journal, id: analytic_journal_1}:
96
 
    code: CANJ
97
 
    name: Cash Analytic Journal
98
 
    type: general
99
 
-
100
 
  I create a cash account type
101
 
-
102
 
  !record {model: account.account.type, id: account_account_type_cash_0}:
103
 
    close_method: balance
104
 
    code: cash
105
 
    name: Cash
106
 
    sign: 1
107
 
    report_type: asset
108
 
 
109
 
-
110
 
  I create a X11003 Cash Account.
111
 
-
112
 
  !record {model: account.account, id: account_account_cash0}:
113
 
    code: 'X11003-test'
114
 
    company_id: base.main_company
115
 
    currency_mode: current
116
 
    name: Cash (test)
117
 
    type: liquidity
118
 
    reconcile: False
119
 
    user_type : account_account_type_cash_0
120
 
    activation_date: !eval time.strftime('%Y-01-01')
121
 
-
122
 
  ...a journal, ...
123
 
-
124
 
  !record {model: account.journal, id: account_journal_1}:
125
 
    name: Cash Journal
126
 
    code: CTST
127
 
    currency: base.EUR
128
 
    type: cash
129
 
    analytic_journal_id: analytic_journal_1
130
 
    default_debit_account_id: account_account_cash0
131
 
    default_credit_account_id: account_account_cash0
132
 
-
133
 
  ...a fiscal year, ...
134
 
-
135
 
  !record {model: account.fiscalyear, id: account_fiscalyear_fiscalyear0}:
136
 
    code: !eval "'FY%s'% (datetime.now().year+1)"
137
 
    company_id: base.main_company
138
 
    date_start: !eval "'%s-01-01' %(datetime.now().year+1)"
139
 
    date_stop: !eval "'%s-12-31' %(datetime.now().year+1)"
140
 
    name: !eval "'Fiscal Year %s' %(datetime.now().year+1)"
141
 
-
142
 
  ... and a period.
143
 
-
144
 
  !record {model: account.period, id: account_period_mar0}:
145
 
    company_id: base.main_company
146
 
    date_start: !eval "'%s-03-01' %(datetime.now().year+1)"
147
 
    date_stop: !eval "'%s-03-31' %(datetime.now().year+1)"
148
 
    fiscalyear_id: account_fiscalyear_fiscalyear0
149
 
    name: !eval "'Mar %s' %(datetime.now().year+1)"
150
 
    special: 1
151
 
    state: draft
152
 
-
153
 
  ... and a distribution.
154
 
-
155
 
  !record {model: analytic.distribution, id: distribution_test}:
156
 
    funding_pool_lines:
157
 
    - analytic_id: analytic_distribution.analytic_account_msf_private_funds
158
 
      cost_center_id: analytic_account_OC1
159
 
      destination_id: test_destination
160
 
      percentage: 50
161
 
      currency_id: base.CHF
162
 
      date: !eval "'%s-03-12' %(datetime.now().year+1)"
163
 
    - analytic_id: analytic_account_FP1
164
 
      cost_center_id: analytic_account_OC2
165
 
      destination_id: test_destination
166
 
      percentage: 50
167
 
      currency_id: base.CHF
168
 
      date: !eval "'%s-03-12' %(datetime.now().year+1)"
169
 
-
170
 
  ... and another distribution.
171
 
-
172
 
  !record {model: analytic.distribution, id: distribution_test_2}:
173
 
    funding_pool_lines:
174
 
    - analytic_id: analytic_account_FP1
175
 
      cost_center_id: analytic_account_OC2
176
 
      destination_id: test_destination
177
 
      percentage: 40
178
 
      currency_id: base.CHF
179
 
      date: !eval "'%s-03-12' %(datetime.now().year+1)"
180
 
    - analytic_id: analytic_account_FP2
181
 
      cost_center_id: analytic_account_OC2
182
 
      destination_id: test_destination
183
 
      percentage: 40
184
 
      currency_id: base.CHF
185
 
      date: !eval "'%s-03-12' %(datetime.now().year+1)"
186
 
    - analytic_id: analytic_account_FP2
187
 
      cost_center_id: analytic_account_OC1
188
 
      destination_id: test_destination
189
 
      percentage: 20
190
 
      currency_id: base.CHF
191
 
      date: !eval "'%s-03-12' %(datetime.now().year+1)"
192
 
-
193
 
  I overwrite periods to have the right number and open them
194
 
-
195
 
  !python {model: account.period}: |
196
 
    import datetime
197
 
    period_ids = [ref('account_period_mar0')]
198
 
    for p in self.browse(cr, uid, period_ids):
199
 
      self.write(cr, uid, [p.id], {'number': int(datetime.datetime.strptime(p.date_start, '%Y-%m-%d').strftime('%m'))})
200
 
    self.action_set_state(cr, uid, period_ids, {'state': 'draft'})
201
 
-
202
 
  I create an account move line with all of this.
203
 
-
204
 
  !record {model: account.move.line, id: move_line_test}:
205
 
    name: testline
206
 
    journal_id: account_journal_1
207
 
    period_id: account_period_mar0
208
 
    account_id: test_expense
209
 
    currency_id: base.CHF
210
 
    date: !eval "'%s-03-12' %(datetime.now().year+1)"
211
 
    debit_currency: 4242.0
212
 
    analytic_distribution_id: distribution_test
213
 
-
214
 
  I create an account move line with all of this.
215
 
-
216
 
  !record {model: account.move.line, id: move_line_test_2}:
217
 
    name: testline2
218
 
    journal_id: account_journal_1
219
 
    period_id: account_period_mar0
220
 
    account_id: test_expense
221
 
    currency_id: base.CHF
222
 
    date: !eval "'%s-03-12' %(datetime.now().year+1)"
223
 
    debit_currency: 12500.0
224
 
    analytic_distribution_id: distribution_test_2
225
 
      
226
 
-
227
 
  Analytic lines are created from it
228
 
-
229
 
  !python {model: account.move.line}: |
230
 
    self.create_analytic_lines(cr, uid, [ref("move_line_test"), ref("move_line_test_2")], context={})
231
 
    
232
 
-
233
 
  I create a decision moment
234
 
-
235
 
  !record {model: msf.budget.decision.moment, id: decision1}:
236
 
    name: Decision moment 1
237
 
    order: 100
238
 
-
239
 
  I create an instance
240
 
-
241
 
  !record {model: msf.instance, id: test_instance}:
242
 
    code: TSTINSTANCE
243
 
    name: Test Instance
244
 
    level: section
245
 
    target_cost_center_ids:
246
 
      - cost_center_id: analytic_account_OC1
247
 
        is_target: True
248
 
        is_top_cost_center: True
249
 
        is_po_fo_cost_center: True
250
 
    move_prefix: TIN
251
 
    reconcile_prefix: T3
252
 
-
253
 
  I add the instance to the default company
254
 
-
255
 
  !python {model: res.company}: |
256
 
    user = self.pool.get('res.users').browse(cr, uid, uid)
257
 
    if not user.company_id.instance_id:
258
 
        self.write(cr, uid, [uid], {'instance_id': ref("test_instance")})
259
 
-
260
 
  Now that lines are here, time for the budget
261
 
-
262
 
  !record {model: msf.budget, id: budget_test}:
263
 
    name: Test Budget
264
 
    code: BUTEST
265
 
    fiscalyear_id: account_fiscalyear_fiscalyear0
266
 
    state: 'draft'
267
 
    cost_center_id: analytic_account_OC1
268
 
    decision_moment_id: decision1
269
 
    version: 1
270
 
    currency_id: base.EUR
271
 
      
272
 
-
273
 
  and its line
274
 
-
275
 
  !record {model: msf.budget.line, id: budget_line_test}:
276
 
    budget_id: budget_test
277
 
    account_id: test_expense
278
 
    destination_id: test_destination
279
 
    budget_values: '[3323232,455,2221,55542,21,555,2113,345,2212,766,33356,222]'
280
 
    line_type: 'destination'
281
 
      
282
 
-
283
 
  Check budget, actual, percentage, balance for the line
284
 
-
285
 
  !python {model: msf.budget.line}: |
286
 
     budget_line = self.browse(cr, uid, ref("budget_line_test"), context={})
287
 
     #assert budget_line.budget_amount == 3421040, ("Not the correct budget amount!")
288
 
     #assert budget_line.actual_amount == 462100.0, ("Not the correct actual amount! %s!=462100.0"%(budget_line.actual_amount,))
289
 
     #assert budget_line.balance == 2958940.0, ("Not the correct balance!")
290
 
     #assert budget_line.percentage == 14.0, ("Not the correct percentage!")