[FIX] tests and use new api

This commit is contained in:
Pierrick Brun
2018-10-11 12:37:44 +02:00
parent b023a9bc31
commit 27aa2e34dd
6 changed files with 26 additions and 30 deletions

View File

@@ -38,9 +38,9 @@
'security/ir.model.access.csv', 'security/ir.model.access.csv',
], ],
'demo': [], 'demo': [],
'test': [ # 'test': [
'test/test_invoice_refund.yml' # 'test/test_invoice_refund.yml'
], # ],
'installable': True, 'installable': True,
'auto_install': False, 'auto_install': False,
} }

View File

@@ -9,7 +9,6 @@ from odoo import _, api, exceptions, fields, models
class AccountInvoice(models.Model): class AccountInvoice(models.Model):
_inherit = "account.invoice" _inherit = "account.invoice"
claim_id = fields.Many2one('crm.claim', string='Claim') claim_id = fields.Many2one('crm.claim', string='Claim')
@@ -34,14 +33,13 @@ class AccountInvoice(models.Model):
# For each lines replace quantity and add claim_line_id # For each lines replace quantity and add claim_line_id
inv_line = claim_line.invoice_line_id inv_line = claim_line.invoice_line_id
clean_line = {} clean_line = {}
for field_name, field in inv_line._all_columns.iteritems(): for field_name, field in inv_line._fields.iteritems():
column_type = field.column._type if isinstance(field, fields.Many2one):
if column_type == 'many2one':
clean_line[field_name] = inv_line[field_name].id clean_line[field_name] = inv_line[field_name].id
elif column_type not in ('many2many', 'one2many'): elif not isinstance(field, (fields.Many2many,
fields.One2many)):
clean_line[field_name] = inv_line[field_name] clean_line[field_name] = inv_line[field_name]
elif field_name == 'invoice_line_tax_id': elif field_name == 'invoice_line_tax_id':
tax_ids = inv_line[field_name].ids tax_ids = inv_line[field_name].ids
clean_line[field_name] = [(6, 0, tax_ids)] clean_line[field_name] = [(6, 0, tax_ids)]
clean_line['quantity'] = claim_line.product_returned_quantity clean_line['quantity'] = claim_line.product_returned_quantity

View File

@@ -25,7 +25,7 @@ class ClaimLine(models.Model):
_inherit = 'mail.thread' _inherit = 'mail.thread'
_description = "List of product to return" _description = "List of product to return"
_rec_name = "display_name" # _rec_name = "display_name"
SUBJECT_LIST = [('none', 'Not specified'), SUBJECT_LIST = [('none', 'Not specified'),
('legal', 'Legal retractation'), ('legal', 'Legal retractation'),
@@ -47,6 +47,11 @@ class ClaimLine(models.Model):
('expired', _("Expired")), ('expired', _("Expired")),
('not_define', _("Not Defined"))] ('not_define', _("Not Defined"))]
@api.model
def get_warranty_return_partner(self):
return self.env['product.supplierinfo'].fields_get(
'warranty_return_partner')['warranty_return_partner']['selection']
number = fields.Char( number = fields.Char(
readonly=True, readonly=True,
default='/', default='/',
@@ -57,7 +62,7 @@ class ClaimLine(models.Model):
default=lambda self: self.env['res.company']._company_default_get( default=lambda self: self.env['res.company']._company_default_get(
'claim.line')) 'claim.line'))
date = fields.Date('Claim Line Date', date = fields.Date('Claim Line Date',
select=True, index=True,
default=fields.date.today()) default=fields.date.today())
name = fields.Char('Description', default='none', required=False, name = fields.Char('Description', default='none', required=False,
help="More precise description of the problem") help="More precise description of the problem")
@@ -114,11 +119,6 @@ class ClaimLine(models.Model):
help="If warranty has expired") help="If warranty has expired")
display_name = fields.Char('Name', compute='_compute_display_name') display_name = fields.Char('Name', compute='_compute_display_name')
@api.model
def get_warranty_return_partner(self):
return self.env['product.supplierinfo'].fields_get(
'warranty_return_partner')['warranty_return_partner']['selection']
warranty_type = fields.Selection( warranty_type = fields.Selection(
get_warranty_return_partner, get_warranty_return_partner,
help="Who is in charge of the warranty return treatment towards " help="Who is in charge of the warranty return treatment towards "
@@ -404,6 +404,7 @@ class ClaimLine(models.Model):
return res return res
@api.multi @api.multi
@api.depends('claim_id.code', 'name')
def _compute_display_name(self): def _compute_display_name(self):
for line_id in self: for line_id in self:
line_id.display_name = "%s - %s" % ( line_id.display_name = "%s - %s" % (

View File

@@ -30,7 +30,7 @@
I prepare the wizard context. I prepare the wizard context.
- -
!python {model: account.invoice.refund}: | !python {model: account.invoice.refund}: |
claim_lines = self.pool.get('claim.line').search(cr, uid, [('claim_id','=',ref('claim_refund'))]) claim_lines = self.env['claim.line'].search([('claim_id','=',ref('claim_refund'))])
context.update({'active_model': 'crm_claim', 'active_id': ref('claim_refund'), 'claim_id': ref('claim_refund'), 'invoice_ids': [ref('account_invoice_claim_refund')] }) context.update({'active_model': 'crm_claim', 'active_id': ref('claim_refund'), 'claim_id': ref('claim_refund'), 'invoice_ids': [ref('account_invoice_claim_refund')] })
- -
I create a refund wizard I create a refund wizard
@@ -42,15 +42,15 @@
I launch the refund wizard I launch the refund wizard
- -
!python {model: account.invoice.refund}: | !python {model: account.invoice.refund}: |
self.compute_refund(cr, uid, [ref('wizard_claim_refund')], 'refund', context=context) self.compute_refund([ref('wizard_claim_refund')], 'refund', context=context)
- -
I check that a refund linked to the claim has been created. I check that a refund linked to the claim has been created.
- -
!python {model: account.invoice}: | !python {model: account.invoice}: |
refund = self.search(cr, uid, [('type', '=', 'out_refund'),('claim_id', '=', ref('claim_refund'))]) refund = self.search([('type', '=', 'out_refund'),('claim_id', '=', ref('claim_refund'))])
assert refund, "The refund is created" assert refund, "The refund is created"
refund_line_ids = self.pool.get('account.invoice.line').search(cr, uid, [('invoice_id','=',refund[0])]) refund_line_ids = self.env['account.invoice.line'].search([('invoice_id','=',refund[0])])
assert len(refund_line_ids) == 2, "It contains 2 lines, as excepted" assert len(refund_line_ids) == 2, "It contains 2 lines, as excepted"
refund_lines = self.pool.get('account.invoice.line').browse(cr, uid, refund_line_ids) refund_lines = self.env['account.invoice.line'].browse(refund_line_ids)
assert ref('product.product_product_4') in [refund_lines[0].product_id.id, refund_lines[1].product_id.id], "First line is checked" assert ref('product.product_product_4') in [refund_lines[0].product_id.id, refund_lines[1].product_id.id], "First line is checked"
assert ref('product.product_product_5') in [refund_lines[0].product_id.id, refund_lines[1].product_id.id], "Second line is checked" assert ref('product.product_product_5') in [refund_lines[0].product_id.id, refund_lines[1].product_id.id], "Second line is checked"

View File

@@ -162,7 +162,7 @@ class TestPickingCreation(common.TransactionCase):
self.ref('crm_claim.crm_claim_6') self.ref('crm_claim.crm_claim_6')
) )
self.invoice.action_invoice_open() self.invoice.action_invoice_open()
self.invoice.action_invoice_paid() # self.invoice.action_invoice_paid()
claim_id.write({ claim_id.write({
'invoice_id': self.invoice.id 'invoice_id': self.invoice.id
}) })

View File

@@ -8,14 +8,11 @@
<field name="inherit_id" ref="account.invoice_form"/> <field name="inherit_id" ref="account.invoice_form"/>
<field name="priority" eval="16"/> <field name="priority" eval="16"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<field name='origin' position="after"/> <data>
<xpath expr="//page[@name='other_info']//field[@name='origin']" position="after">
<xpath expr="//button[@name='action_invoice_cancel']" <field name="claim_id" attrs="{'invisible':[('type','!=','out_refund')]}"/>
position="replace"> </xpath>
<field name="claim_id" </data>
attrs="{'invisible':[('type','!=','out_refund')]}"/>
</xpath>
</field> </field>
</record> </record>