Odoo18-Base/addons/purchase_stock/tests/test_routes.py

69 lines
2.2 KiB
Python
Raw Permalink Normal View History

2025-03-10 10:52:11 +07:00
from odoo.tests.common import TransactionCase, Form
class TestRoutes(TransactionCase):
def test_allow_rule_creation_for_route_without_company(self):
self.env['res.config.settings'].write({
'group_stock_adv_location': True,
'group_stock_multi_locations': True,
})
warehouse = self.env['stock.warehouse'].search([('company_id', '=', self.env.company.id)], limit=1)
location_1 = self.env['stock.location'].create({
'name': 'loc1',
'location_id': warehouse.id
})
location_2 = self.env['stock.location'].create({
'name': 'loc2',
'location_id': warehouse.id
})
receipt_1 = self.env['stock.picking.type'].create({
'name': 'Receipts from loc1',
'sequence_code': 'IN1',
'code': 'incoming',
'warehouse_id': warehouse.id,
'default_location_dest_id': location_1.id,
})
receipt_2 = self.env['stock.picking.type'].create({
'name': 'Receipts from loc2',
'sequence_code': 'IN2',
'code': 'incoming',
'warehouse_id': warehouse.id,
'default_location_dest_id': location_2.id,
})
route = self.env['stock.route'].create({
'name': 'Buy',
'company_id': False
})
with Form(route) as r:
with r.rule_ids.new() as line:
line.name = 'first rule'
line.action = 'buy'
line.picking_type_id = receipt_1
with r.rule_ids.new() as line:
line.name = 'second rule'
line.action = 'buy'
line.picking_type_id = receipt_2
def test_delete_buy_route(self):
"""
The user should be able to write on a warehouse even if the buy route
does not exist anymore
"""
wh = self.env['stock.warehouse'].search([], limit=1)
buy_routes = self.env['stock.route'].search([('name', 'ilike', 'buy')])
self.assertTrue(buy_routes)
buy_routes.unlink()
wh.reception_steps = 'two_steps'
self.assertEqual(wh.reception_steps, 'two_steps')