质量模块和库存扫码
This commit is contained in:
114
stock_barcode/tests/test_barcode_client_action.py
Normal file
114
stock_barcode/tests/test_barcode_client_action.py
Normal file
@@ -0,0 +1,114 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.tests import HttpCase, tagged
|
||||
|
||||
|
||||
@tagged('-at_install', 'post_install')
|
||||
class TestBarcodeClientAction(HttpCase):
|
||||
def setUp(self):
|
||||
super(TestBarcodeClientAction, self).setUp()
|
||||
self.uid = self.env.ref('base.user_admin').id
|
||||
self.supplier_location = self.env.ref('stock.stock_location_suppliers')
|
||||
self.stock_location = self.env.ref('stock.stock_location_stock')
|
||||
self.stock_location.write({
|
||||
'barcode': 'LOC-01-00-00',
|
||||
})
|
||||
self.customer_location = self.env.ref('stock.stock_location_customers')
|
||||
self.pack_location = self.env.ref('stock.location_pack_zone')
|
||||
self.shelf3 = self.env['stock.location'].create({
|
||||
'name': 'Section 3',
|
||||
'location_id': self.stock_location.id,
|
||||
'barcode': 'shelf3',
|
||||
})
|
||||
self.shelf1 = self.env["stock.location"].create({
|
||||
'name': 'Section 1',
|
||||
'location_id': self.env.ref('stock.warehouse0').lot_stock_id.id,
|
||||
'barcode': 'LOC-01-01-00',
|
||||
})
|
||||
self.shelf2 = self.env['stock.location'].create({
|
||||
'name': 'Section 2',
|
||||
'location_id': self.env.ref('stock.warehouse0').lot_stock_id.id,
|
||||
'barcode': 'LOC-01-02-00',
|
||||
})
|
||||
self.shelf4 = self.env['stock.location'].create({
|
||||
'name': 'Section 4',
|
||||
'location_id': self.stock_location.id,
|
||||
'barcode': 'shelf4',
|
||||
})
|
||||
self.picking_type_in = self.env.ref('stock.picking_type_in')
|
||||
self.picking_type_internal = self.env.ref('stock.picking_type_internal')
|
||||
self.picking_type_out = self.env.ref('stock.picking_type_out')
|
||||
|
||||
self.uom_unit = self.env.ref('uom.product_uom_unit')
|
||||
self.uom_dozen = self.env.ref('uom.product_uom_dozen')
|
||||
|
||||
# Two stockable products without tracking
|
||||
self.product1 = self.env['product.product'].create({
|
||||
'name': 'product1',
|
||||
'default_code': 'TEST',
|
||||
'type': 'product',
|
||||
'categ_id': self.env.ref('product.product_category_all').id,
|
||||
'barcode': 'product1',
|
||||
})
|
||||
self.product2 = self.env['product.product'].create({
|
||||
'name': 'product2',
|
||||
'type': 'product',
|
||||
'categ_id': self.env.ref('product.product_category_all').id,
|
||||
'barcode': 'product2',
|
||||
})
|
||||
self.productserial1 = self.env['product.product'].create({
|
||||
'name': 'productserial1',
|
||||
'type': 'product',
|
||||
'categ_id': self.env.ref('product.product_category_all').id,
|
||||
'barcode': 'productserial1',
|
||||
'tracking': 'serial',
|
||||
})
|
||||
self.productlot1 = self.env['product.product'].create({
|
||||
'name': 'productlot1',
|
||||
'type': 'product',
|
||||
'categ_id': self.env.ref('product.product_category_all').id,
|
||||
'barcode': 'productlot1',
|
||||
'tracking': 'lot',
|
||||
})
|
||||
self.package = self.env['stock.quant.package'].create({
|
||||
'name': 'P00001',
|
||||
})
|
||||
self.owner = self.env['res.partner'].create({
|
||||
'name': 'Azure Interior',
|
||||
})
|
||||
|
||||
# Creates records specific to GS1 use cases.
|
||||
self.product_tln_gtn8 = self.env['product.product'].create({
|
||||
'name': 'Battle Droid',
|
||||
'default_code': 'B1',
|
||||
'type': 'product',
|
||||
'tracking': 'lot',
|
||||
'categ_id': self.env.ref('product.product_category_all').id,
|
||||
'barcode': '76543210', # (01)00000076543210 (GTIN-8 format)
|
||||
'uom_id': self.env.ref('uom.product_uom_unit').id
|
||||
})
|
||||
|
||||
self.call_count = 0
|
||||
|
||||
def clean_access_rights(self):
|
||||
""" Removes all access right link to stock application to the users
|
||||
given as parameter"""
|
||||
grp_lot = self.env.ref('stock.group_production_lot')
|
||||
grp_multi_loc = self.env.ref('stock.group_stock_multi_locations')
|
||||
grp_pack = self.env.ref('stock.group_tracking_lot')
|
||||
grp_uom = self.env.ref('uom.group_uom')
|
||||
self.env.user.write({'groups_id': [(3, grp_lot.id)]})
|
||||
self.env.user.write({'groups_id': [(3, grp_multi_loc.id)]})
|
||||
self.env.user.write({'groups_id': [(3, grp_pack.id)]})
|
||||
# Explicitly remove the UoM group.
|
||||
group_user = self.env.ref('base.group_user')
|
||||
group_user.write({'implied_ids': [(3, grp_uom.id)]})
|
||||
self.env.user.write({'groups_id': [(3, grp_uom.id)]})
|
||||
|
||||
def tearDown(self):
|
||||
self.call_count = 0
|
||||
super(TestBarcodeClientAction, self).tearDown()
|
||||
|
||||
def _get_client_action_url(self, picking_id):
|
||||
action = self.env["ir.actions.actions"]._for_xml_id("stock_barcode.stock_barcode_picking_client_action")
|
||||
return '/web#action=%s&active_id=%s' % (action['id'], picking_id)
|
||||
Reference in New Issue
Block a user