OCA/l10n-italy

View on GitHub
l10n_it_ricevute_bancarie/test/issue_riba.yml

Summary

Maintainability
Test Coverage
-
  I call the wizards
-
  !record {model: riba.issue, id: riba_emissione_1, view: riba_issue_view}:
    configuration_id: sbf_riba_config
-
  I run the wizards
-
  !python {model: riba.issue}: |
    invoice = self.pool['account.invoice'].browse(
      cr, uid, ref('account_invoice_riba'), context=context)
    for move_line in invoice.move_id.line_id:
      if move_line.account_id.id == ref('account.a_recv'):
        riba_move_line_id = move_line.id
        break
    action = self.create_list(cr, uid, [ref("riba_emissione_1")], {"lang": 'en_US',
      "tz": False, "active_model": "account.move.line", "active_ids": [riba_move_line_id],
      "active_id": riba_move_line_id, })
    riba_list_id = action and action['res_id'] or False
    list_pool = self.pool['riba.distinta']
    list_pool.confirm(cr, uid, [riba_list_id], context=context)
    riba_list = list_pool.browse(cr, uid, riba_list_id)
    assert (riba_list.state == 'accepted'), ("RiBa list is not accepted, but %s" % riba_list.state)
    assert (invoice.state == 'paid'), ("Invoice state is not paid, but %s" % invoice.state)
    accreditation_pool = self.pool['riba.accreditation']
    accr_context = {
        "lang": 'en_US',
        "tz": False,
        "active_model": "riba.distinta",
        "active_ids": [riba_list_id],
        "active_id": riba_list_id, 
        }
    accr_id = accreditation_pool.create(cr, uid, {
      'bank_amount': 445,
      'expense_amount': 5,
      }, context=accr_context)
    accreditation_pool.create_move(cr, uid, [accr_id], context=accr_context)
    assert (riba_list.state == 'accredited'), ("RiBa list is not accredited, but %s" % riba_list.state)
    # voucher payment
    voucher_pool = self.pool['account.voucher']
    from openerp import workflow
    vals = {}
    journal_id = voucher_pool.default_get(cr, uid, ['journal_id']).get('journal_id',None)
    voucher = voucher_pool.recompute_voucher_lines(cr, uid, [], ref("base.res_partner_12"), journal_id, 450.0, ref('base.EUR'), 'receipt', False)
    assert (voucher['value'].get('writeoff_amount') == 0.0), "Writeoff amount calculated by recompute_voucher_lines() is not 0.0"
    res = voucher_pool.onchange_partner_id(cr, uid, [], ref("base.res_partner_12"), journal_id, 0.0, 1, ttype='receipt', date=False)
    vals = {
        'account_id': ref('account.cash'),
        'amount': 450.0,
        'company_id': ref('base.main_company'),
        'journal_id': ref('account.bank_journal'),
        'partner_id': ref('base.res_partner_12'),
        'period_id': ref('account.period_8'),
        'type': 'receipt',
    }
    if not res['value']['line_cr_ids']:
      res['value']['line_cr_ids'] = [{'type': 'cr', 'account_id': ref('sbf_effects'),}]
    del(res['value']['line_cr_ids'][0]['date_original'])
    del(res['value']['line_cr_ids'][0]['date_due'])
    res['value']['line_cr_ids'][0]['amount'] = 450.0
    vals['line_cr_ids'] = [(0,0,i) for i in res['value']['line_cr_ids']]
    id = voucher_pool.create(cr, uid, vals)
    voucher_id = voucher_pool.browse(cr, uid, id)
    assert (voucher_id.writeoff_amount == 0.0), "Writeoff amount is not 0.0"
    assert (voucher_id.state=='draft'), "Voucher is not in draft state"
    workflow.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
    assert (riba_list.state == 'paid'), ("RiBa list is not paid, but %s" % riba_list.state)
    assert (len(riba_list.line_ids) == 1)
    for riba_line in riba_list.line_ids:
      assert(riba_line.state == 'paid'), ("RiBa line is not paid, but %s" % riba_line.state)
    self.pool['account.journal'].write(cr, uid, [ref('account.bank_journal')], {'update_posted': True})
    voucher_id.cancel_voucher()
    assert (riba_list.state == 'accredited'), ("RiBa list is not accredited, but %s" % riba_list.state)
    for riba_line in riba_list.line_ids:
      assert(riba_line.state == 'accredited'), ("RiBa line is not accredited, but %s" % riba_line.state)
-
  I test the report
-
 !python {model: riba.issue, id: False }: |
    import os
    import openerp.report
    from openerp import tools
    data, format = openerp.report.render_report(self.env.cr, self.env.uid, [ref('riba_emissione_1')], 'l10n_it_ricevute_bancarie.distinta_qweb', {}, {})
    if tools.config['test_report_directory']:
        file(os.path.join(tools.config['test_report_directory'], 'riba-list.'+format), 'wb+').write(data)