GoodERP
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

109 行
4.5KB

  1. from odoo.tests.common import TransactionCase
  2. from odoo.exceptions import UserError
  3. class TestWarehouse(TransactionCase):
  4. def setUp(self):
  5. super(TestWarehouse, self).setUp()
  6. self.env.ref('core.goods_category_1').account_id = self.env.ref(
  7. 'finance.account_goods').id
  8. self.env.ref('warehouse.wh_in_whin0').date = '2016-02-06'
  9. self.hd_warehouse = self.browse_ref('warehouse.hd_stock')
  10. self.sh_warehouse = self.browse_ref('warehouse.sh_stock')
  11. self.internal = self.browse_ref('warehouse.wh_internal_whint0')
  12. self.overage_in = self.browse_ref('warehouse.wh_in_whin0')
  13. in_mouse_1 = self.env.ref('warehouse.wh_move_line_12')
  14. in_mouse_1.cost = in_mouse_1.cost_unit * in_mouse_1.goods_qty
  15. in_mouse_2 = self.env.ref('warehouse.wh_move_line_mouse_2')
  16. in_mouse_2.cost = in_mouse_2.cost_unit * in_mouse_2.goods_qty
  17. in_keyboard = self.env.ref('warehouse.wh_move_line_13')
  18. in_keyboard.cost = in_keyboard.cost_unit * in_keyboard.goods_qty
  19. in_cable = self.env.ref('warehouse.wh_move_line_14')
  20. in_cable.cost = in_cable.cost_unit * in_cable.goods_qty
  21. # 商品 仓库 数量 成本
  22. # 鼠标 总仓 2.0 80
  23. # 键盘 总仓 600.0 48000
  24. # 网线 总仓 11880.0 950400.0
  25. # 网线 上海 120.0 9600.0
  26. self.overage_in.approve_order()
  27. self.internal.approve_order()
  28. def test_name_search(self):
  29. # 使用name来搜索总仓
  30. result = self.env['warehouse'].name_search('总仓')
  31. real_result = [(self.hd_warehouse.id, '[%s]%s' % (
  32. self.hd_warehouse.code, self.hd_warehouse.name))]
  33. self.assertEqual(result, real_result)
  34. # 使用code来搜索总仓
  35. result = self.env['warehouse'].name_search('000')
  36. self.assertEqual(result, real_result)
  37. with self.assertRaises(UserError):
  38. self.env['warehouse'].get_warehouse_by_type('error')
  39. # 临时在warehouse的类型中添加一个error类型的错误,让它跳过类型检测的异常
  40. # 此时在数据库中找不到该类型的仓库,应该报错
  41. x = self.env['warehouse'].search([('type', '=', 'inventory')])
  42. x.unlink()
  43. with self.assertRaises(UserError):
  44. self.env['warehouse'].get_warehouse_by_type('inventory')
  45. def test_scan_barcode(self):
  46. '''扫码出入库'''
  47. warehouse = self.env['wh.move']
  48. barcode = '12345678987'
  49. # 其它入库单扫码
  50. model_name = 'wh.in'
  51. order = self.env.ref('warehouse.wh_in_whin3')
  52. warehouse.scan_barcode(model_name, barcode, order.id)
  53. warehouse.scan_barcode(model_name, barcode, order.id)
  54. # 其他出库单扫码
  55. model_name = 'wh.out'
  56. order = self.env.ref('warehouse.wh_out_wh_out_attribute')
  57. warehouse.scan_barcode(model_name, barcode, order.id)
  58. warehouse.scan_barcode(model_name, barcode, order.id)
  59. # 调拔单的扫描条码
  60. model_name = 'wh.internal'
  61. order = self.env.ref('warehouse.wh_internal_whint0')
  62. warehouse.scan_barcode(model_name, barcode, order.id)
  63. # 能找到 barcode 对应的商品
  64. self.env.ref('warehouse.wh_move_line_17').goods_id = self.env.ref(
  65. 'goods.iphone').id
  66. warehouse.scan_barcode(model_name, barcode, order.id)
  67. # 盘点单的扫描条码
  68. model_name = 'wh.inventory'
  69. order = self.env.ref('warehouse.wh_inventory_0')
  70. warehouse.scan_barcode(model_name, barcode, order.id)
  71. warehouse.scan_barcode(model_name, barcode, order.id)
  72. # 商品不存在报错
  73. barcode = '12342312312'
  74. with self.assertRaises(UserError):
  75. warehouse.scan_barcode(model_name, barcode, order.id)
  76. # 商品的条形码扫码出入库
  77. barcode = '123456789'
  78. # 其它入库单扫码
  79. model_name = 'wh.in'
  80. order = self.env.ref('warehouse.wh_in_whin3')
  81. warehouse.scan_barcode(model_name, barcode, order.id)
  82. warehouse.scan_barcode(model_name, barcode, order.id)
  83. # 其他出库单扫码
  84. model_name = 'wh.out'
  85. order = self.env.ref('warehouse.wh_out_wh_out_attribute')
  86. warehouse.scan_barcode(model_name, barcode, order.id)
  87. warehouse.scan_barcode(model_name, barcode, order.id)
  88. def test_check_goods_qty(self):
  89. '''指定商品,属性,仓库,的当前剩余数量'''
  90. res = self.env['wh.move'].check_goods_qty(False, False, self.hd_warehouse)[0]
  91. self.assertTrue(not res)
上海开阖软件有限公司 沪ICP备12045867号-1