Skip to content

Commit

Permalink
Merge pull request osbzr#1837 from floraXiao/master
Browse files Browse the repository at this point in the history
[ADD]增加覆盖率:sell_order,money模块相关文件
  • Loading branch information
GoodERPJeff authored Jun 21, 2018
2 parents 7e750ec + 4b21f0b commit 5758f4f
Show file tree
Hide file tree
Showing 8 changed files with 143 additions and 10 deletions.
2 changes: 1 addition & 1 deletion buy/tests/test_buy_receipt.py
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ def test_buy_receipt_draft_quantity_in(self):
return_dict = self.receipt.buy_to_return()
return_order = self.env['buy.receipt'].search(
[('id', '=', return_dict['res_id'])])
return_order.line_out_ids[0].quantity = 3
return_order.line_out_ids[0].goods_qty = 3
return_order.buy_receipt_done()
return_order.buy_receipt_draft()
self.assertEqual(return_order.line_out_ids[0].buy_line_id.quantity_in, 10.0)
Expand Down
15 changes: 15 additions & 0 deletions goods/tests/test_goods.py
Original file line number Diff line number Diff line change
Expand Up @@ -133,3 +133,18 @@ def test_ean_search(self):

# return super
self.env['attribute'].name_search('123')

def test_check_value_ids(self):
'''属性值的类别不能相同'''
# if 语句
iphone_white = self.env.ref('goods.iphone_white')
iphone_white.check_value_ids()

# else 语句
new_att = self.env['attribute.value'].create({
'attribute_id': self.env.ref('goods.iphone_white').id,
'category_id': self.env.ref('goods.attribute_color').id,
'value_id': self.env.ref('goods.white').id, })

with self.assertRaises(ValidationError):
self.env.ref('goods.iphone').attribute_ids.write({'value_ids': [(4, 0, new_att.id)]})
34 changes: 34 additions & 0 deletions money/tests/test_invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ def test_money_invoice_voucher_line_currency(self):

def test_money_invoice_company_no_tax_account(self):
''' 创建 进项税行 公司 进项税科目 未设置 '''
self.env.user.company_id.draft_invoice = True
# 进项税行 import_tax_account
buy_invoice = self.env['money.invoice'].create({
'name': 'invoice', 'date': "2016-02-20",
Expand All @@ -135,6 +136,39 @@ def test_money_invoice_company_no_tax_account(self):
with self.assertRaises(UserError):
sell_invoice.money_invoice_done()

def test_money_invoice_done_no_category_account(self):
'''结算单分类上无科目审核报错'''
self.env.user.company_id.draft_invoice = True
cate = self.env['core.category'].create({
'name': '测试客户类别',
'type': 'customer',
})
invoice = self.env['money.invoice'].create({
'name': 'invoice', 'date': "2016-02-20",
'partner_id': self.env.ref('core.lenovo').id,
'category_id': cate.id,
'amount': 10.0,
'tax_amount': 11.7})
with self.assertRaises(UserError):
invoice.money_invoice_done()

def test_money_invoice_done_no_partner_category_account(self):
'''结算单客户分类上无科目审核报错'''
self.env.user.company_id.draft_invoice = True
cate = self.env['core.category'].create({
'name': '测试客户类别',
'type': 'customer',
})
self.env.ref('core.jd').c_category_id = cate
invoice = self.env['money.invoice'].create({
'name': 'invoice', 'date': "2016-02-20",
'partner_id': self.env.ref('core.jd').id,
'category_id': self.env.ref('money.core_category_sale').id,
'amount': 10.0,
'tax_amount': 11.7})
with self.assertRaises(UserError):
invoice.money_invoice_done()

def test_money_invoice_name_get(self):
''' 测试 money invoice name_get 方法 '''
inv = self.env['money.invoice'].create({
Expand Down
29 changes: 26 additions & 3 deletions money/tests/test_money.py
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ def test_money_order_done(self):
self.env.ref('core.supplier_category_1').account_id = False
with self.assertRaises(UserError):
self.env.ref('money.pay_2000').money_order_done()

def test_money_order_done_no_partner_account(self):
''' 测试收款审核选定的客户没有指定科目 '''
# 收款
Expand Down Expand Up @@ -610,10 +610,13 @@ def test_transfer_order_draft_in_bank_no_currency(self):
self.env.ref('money.transfer_300').money_transfer_draft()
# 转入账户余额不足,不能反审核
self.env.ref('money.transfer_line_2').currency_amount = 200
'''
self.env.ref('money.transfer_400').money_transfer_done()
self.env.ref('finance.account_bank').currency_id = False
self.env.ref('core.alipay').balance = \
self.env.ref('core.alipay').balance - 600
with self.assertRaises(UserError):
self.env.ref('money.transfer_400').money_transfer_draft()
'''

def test_money_transfer_order(self):
''' 测试转账单审核 '''
comm_balance = self.env.ref('core.comm').balance
Expand Down Expand Up @@ -702,6 +705,11 @@ def test_outCurrency_inCurrency_notEqual_company_curreny(self):
with self.assertRaises(UserError):
self.env.ref('money.transfer_300').money_transfer_done()

def test_compute_transfer_amount(self):
'''计算转账总金额'''
transfer = self.env.ref('money.transfer_300')
self.assertEqual(transfer.transfer_amount, 300)


class TestPartner(TransactionCase):

Expand All @@ -728,8 +736,23 @@ def test_partner_set_init(self):
def test_bank_set_init(self):
'''测试资金期初'''
bank = self.env.ref('core.comm')
# 资金没有设置期初,else判断
bank._set_init_balance()
self.assertEqual(bank.balance, 0)

balance = bank.balance
bank.init_balance = 1111
self.assertEqual(bank.balance, bank.init_balance + balance)
# 测试 资金如果有前期初值,删掉已前的单据 的 if 判断
bank._set_init_balance()

# 期初由1111改为0,删掉其他收入单
bank.init_balance = 0
self.assertEqual(bank.balance, 0)

# 初始化期间已结账,设置账户期初时报错
start_date = self.env.user.company_id.start_date
start_date_period_id = self.env['finance.period'].search_period(start_date)
start_date_period_id.is_closed = True
with self.assertRaises(UserError):
bank.init_balance = 11
5 changes: 5 additions & 0 deletions sell/tests/test_sell_order.py
Original file line number Diff line number Diff line change
Expand Up @@ -344,6 +344,11 @@ def setUp(self):
def test_fields_view_get(self):
''' Test: fields_view_get '''
sell_obj = self.env['approve.multi.sell.order']
# 不报错的情况
sell_obj.with_context({
'active_model': 'sell.order',
'active_ids': [self.order.id, self.order_2.id]
}).fields_view_get(None, 'form', False, False)
# 报错:存在销售订单已审核的单据
self.order_2.sell_order_done()
with self.assertRaises(UserError):
Expand Down
11 changes: 6 additions & 5 deletions warehouse/models/production.py
Original file line number Diff line number Diff line change
Expand Up @@ -349,12 +349,12 @@ def cancel_approved_order(self):
for order in self:
if order.state == 'feeding':
raise UserError(u'请不要重复撤销')
order.line_in_ids.action_draft()

# 反审核入库到废品仓的移库单
wh_internal = self.env['wh.internal'].search([('ref', '=', order.move_id.name)])
if wh_internal:
wh_internal.cancel_approved_order()
wh_internal.unlink()
order.line_in_ids.action_draft()

# 删除入库凭证
voucher, order.voucher_id = order.voucher_id, False
Expand Down Expand Up @@ -961,11 +961,12 @@ def cancel_approved_order(self):
for order in self:
if order.state == 'feeding':
raise UserError(u'请不要重复撤销')
order.line_in_ids.action_draft()
# 反审核入库到废品仓的移库单
wh_internal = self.env['wh.internal'].search([('ref', '=', order.move_id.name)])
if wh_internal:
wh_internal.cancel_approved_order()
wh_internal.unlink()
order.line_in_ids.action_draft()

# 删除入库凭证
voucher, order.voucher_id = order.voucher_id, False
Expand Down Expand Up @@ -1261,12 +1262,12 @@ def cancel_approved_order(self):
for order in self:
if order.state == 'feeding':
raise UserError(u'请不要重复撤销')
order.line_in_ids.action_draft()
# 反审核入库到废品仓的移库单
wh_internal = self.env['wh.internal'].search([('ref', '=', order.move_id.name)])
if wh_internal:
wh_internal.cancel_approved_order()
wh_internal.unlink()

order.line_in_ids.action_draft()
# 删除入库凭证
voucher, order.voucher_id = order.voucher_id, False
if voucher.state == 'done':
Expand Down
2 changes: 1 addition & 1 deletion warehouse/models/warehouse_move_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -494,7 +494,7 @@ def onchange_discount_amount(self):
self.compute_suggested_cost()

@api.one
@api.constrains('force_batch_one', 'goods_qty')
@api.constrains('goods_qty')
def check_goods_qty(self):
"""序列号管理的商品数量必须为1"""
if self.force_batch_one and self.goods_qty > 1:
Expand Down
55 changes: 55 additions & 0 deletions warehouse/tests/test_production.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,9 @@ def test_assembly_apporve_exist_scape(self):
self.env.user.company_id.wh_scrap_id = self.env.ref('warehouse.bj_stock').id
self.assembly_mutli.approve_order()

# 成品入库到废品仓的反审核
self.assembly_mutli.cancel_approved_order()

def test_disassembly_apporve_exist_scape(self):
# 拆卸单子产品入库存在报废
# 先组装,后拆卸可以正常出入库
Expand All @@ -96,6 +99,9 @@ def test_disassembly_apporve_exist_scape(self):
self.env.user.company_id.wh_scrap_id = self.env.ref('warehouse.bj_stock').id
self.disassembly.approve_order()

# 成品入库到废品仓的反审核
self.disassembly.cancel_approved_order()

def test_outsource_apporve_exist_scape(self):
# 拆卸单子产品入库存在报废
self.outsource_out1.approve_feeding()
Expand All @@ -104,6 +110,9 @@ def test_outsource_apporve_exist_scape(self):
self.env.user.company_id.wh_scrap_id = self.env.ref('warehouse.bj_stock').id
self.outsource_out1.approve_order()

# 成品入库到废品仓的反审核
self.outsource_out1.cancel_approved_order()

def test_check_is_child_enable_assembly(self):
# 组装 子件中不能包含与组合件中相同的 产品+属性
mouse_line = self.env.ref('warehouse.wh_move_line_3')
Expand Down Expand Up @@ -614,3 +623,49 @@ def test_cancel_approve_order_has_voucher(self):
def test_disassembly_unlink(self):
''' 测试 拆卸单 删除 '''
self.disassembly.unlink()

def test_assembly_approve_feeding_twice(self):
'''组装单:重复发料和入库报错'''
self.assembly.approve_feeding()
with self.assertRaises(UserError):
self.assembly.approve_feeding()

self.assembly.approve_order()
with self.assertRaises(UserError):
self.assembly.approve_order()

self.assembly.cancel_approved_order()
with self.assertRaises(UserError):
self.assembly.cancel_approved_order()

def test_disassembly_approve_feeding_twice(self):
'''拆卸单:重复发料和入库报错'''
# 先组装,后拆卸可以正常出入库
self.assembly.approve_feeding()
self.assembly.approve_order()
self.disassembly.approve_feeding()
with self.assertRaises(UserError):
self.disassembly.approve_feeding()

self.disassembly.approve_order()
with self.assertRaises(UserError):
self.disassembly.approve_order()

self.disassembly.cancel_approved_order()
with self.assertRaises(UserError):
self.disassembly.cancel_approved_order()


def test_outsource_approve_feeding_twice(self):
'''委外单:重复发料和入库报错'''
self.outsource_out1.approve_feeding()
with self.assertRaises(UserError):
self.outsource_out1.approve_feeding()

self.outsource_out1.approve_order()
with self.assertRaises(UserError):
self.outsource_out1.approve_order()

self.outsource_out1.cancel_approved_order()
with self.assertRaises(UserError):
self.outsource_out1.cancel_approved_order()

0 comments on commit 5758f4f

Please sign in to comment.