diff --git a/addons/stock_dropshipping/tests/test_crossdock.py b/addons/stock_dropshipping/tests/test_crossdock.py index dad75786bca..671d3098c6a 100644 --- a/addons/stock_dropshipping/tests/test_crossdock.py +++ b/addons/stock_dropshipping/tests/test_crossdock.py @@ -40,7 +40,7 @@ class TestCrossdock(common.TransactionCase): # Create a sales order with a line of 100 PCE incoming shipment with route_id crossdock shipping so_form = Form(self.env['sale.order']) - so_form.partner_id = self.env.ref('base.res_partner_4') + so_form.partner_id = self.env['res.partner'].create({'name': 'My Test Partner'}) so_form.warehouse_id = wh_pps with mute_logger('odoo.tests.common.onchange'): diff --git a/addons/stock_dropshipping/tests/test_dropship.py b/addons/stock_dropshipping/tests/test_dropship.py index 93c56163af2..a3c49b1c07f 100644 --- a/addons/stock_dropshipping/tests/test_dropship.py +++ b/addons/stock_dropshipping/tests/test_dropship.py @@ -8,7 +8,7 @@ from odoo.tools import mute_logger class TestDropship(common.TransactionCase): def test_change_qty(self): # enable the dropship and MTO route on the product - prod = self.env.ref('product.product_product_8') + prod = self.env['product.product'].create({'name': 'Large Desk'}) dropshipping_route = self.env.ref('stock_dropshipping.route_drop_shipping') mto_route = self.env.ref('stock.route_warehouse0_mto') prod.write({'route_ids': [(6, 0, [dropshipping_route.id, mto_route.id])]}) @@ -87,7 +87,7 @@ class TestDropship(common.TransactionCase): # Create a sales order with a line of 200 PCE incoming shipment, with route_id drop shipping so_form = Form(self.env['sale.order']) - so_form.partner_id = self.env.ref('base.res_partner_2') + so_form.partner_id = self.env['res.partner'].create({'name': 'My Test Partner'}) so_form.payment_term_id = self.env.ref('account.account_payment_term_end_following_month') with mute_logger('odoo.tests.common.onchange'): # otherwise complains that there's not enough inventory and diff --git a/addons/stock_dropshipping/tests/test_lifo_price.py b/addons/stock_dropshipping/tests/test_lifo_price.py index 8459cc4ea1b..5edf4059bb8 100644 --- a/addons/stock_dropshipping/tests/test_lifo_price.py +++ b/addons/stock_dropshipping/tests/test_lifo_price.py @@ -2,21 +2,15 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import fields, tools +from odoo.addons.stock_account.tests.stock_account_minimal_test import StockAccountMinimalTest from odoo.modules.module import get_module_resource from odoo.tests import common, Form -class TestLifoPrice(common.TransactionCase): - - def _load(self, module, *args): - tools.convert_file( - self.cr, 'stock_dropshipping', get_module_resource(module, *args), {}, 'init', False, 'test', self.registry._assertion_report) +class TestLifoPrice(StockAccountMinimalTest): def test_lifoprice(self): - self._load('account', 'test', 'account_minimal_test.xml') - self._load('stock_account', 'test', 'stock_valuation_account.xml') - # Set product category removal strategy as LIFO product_category_001 = self.env['product.category'].create({ 'name': 'Lifo Category', @@ -24,6 +18,7 @@ class TestLifoPrice(common.TransactionCase): 'property_valuation': 'real_time', 'property_cost_method': 'fifo', }) + res_partner_3 = self.env['res.partner'].create({'name': 'My Test Partner'}) # Set a product as using lifo price product_form = Form(self.env['product.product']) @@ -39,8 +34,8 @@ class TestLifoPrice(common.TransactionCase): # category (or hand-assign the property_* version which seems...) # product_form.categ_id.valuation = 'real_time' # product_form.categ_id.property_cost_method = 'fifo' - product_form.categ_id.property_stock_account_input_categ_id = self.env.ref('stock_dropshipping.o_expense') - product_form.categ_id.property_stock_account_output_categ_id = self.env.ref('stock_dropshipping.o_income') + product_form.categ_id.property_stock_account_input_categ_id = self.o_expense + product_form.categ_id.property_stock_account_output_categ_id = self.o_income product_lifo_icecream = product_form.save() std_price_wiz = Form(self.env['stock.change.standard.price'].with_context(active_id=product_lifo_icecream.id, active_model='product.product')) @@ -49,7 +44,7 @@ class TestLifoPrice(common.TransactionCase): # I create a draft Purchase Order for first in move for 10 pieces at 60 euro order_form = Form(self.env['purchase.order']) - order_form.partner_id = self.env.ref('base.res_partner_3') + order_form.partner_id = res_partner_3 with order_form.order_line.new() as line: line.product_id = product_lifo_icecream line.product_qty = 10.0 @@ -58,7 +53,7 @@ class TestLifoPrice(common.TransactionCase): # I create a draft Purchase Order for second shipment for 30 pieces at 80 euro order2_form = Form(self.env['purchase.order']) - order2_form.partner_id = self.env.ref('base.res_partner_3') + order2_form.partner_id = res_partner_3 with order2_form.order_line.new() as line: line.product_id = product_lifo_icecream line.product_qty = 30.0 diff --git a/addons/stock_dropshipping/tests/test_procurement_exception.py b/addons/stock_dropshipping/tests/test_procurement_exception.py index b7e2c01b580..8d1a234d4c2 100644 --- a/addons/stock_dropshipping/tests/test_procurement_exception.py +++ b/addons/stock_dropshipping/tests/test_procurement_exception.py @@ -8,6 +8,12 @@ class TestProcurementException(common.TransactionCase): def test_00_procurement_exception(self): + res_partner_2 = self.env['res.partner'].create({'name': 'My Test Partner'}) + res_partner_address = self.env['res.partner'].create({ + 'name': 'My Test Partner Address', + 'parent_id': res_partner_2.id, + }) + # I create a product with no supplier define for it. product_form = Form(self.env['product.product']) product_form.name = 'product with no seller' @@ -18,12 +24,11 @@ class TestProcurementException(common.TransactionCase): std_price_wiz = Form(self.env['stock.change.standard.price'].with_context(active_id=product_with_no_seller.id, active_model='product.product')) std_price_wiz.new_price = 70.0 std_price_wiz.save() - # I create a sales order with this product with route dropship. so_form = Form(self.env['sale.order']) - so_form.partner_id = self.env.ref('base.res_partner_2') - so_form.partner_invoice_id = self.env.ref('base.res_partner_address_3') - so_form.partner_shipping_id = self.env.ref('base.res_partner_address_3') + so_form.partner_id = res_partner_2 + so_form.partner_invoice_id = res_partner_address + so_form.partner_shipping_id = res_partner_address so_form.payment_term_id = self.env.ref('account.account_payment_term_end_following_month') with so_form.order_line.new() as line: line.product_id = product_with_no_seller @@ -39,7 +44,7 @@ class TestProcurementException(common.TransactionCase): with Form(product_with_no_seller) as f: with f.seller_ids.new() as seller: seller.delay = 1 - seller.name = self.env.ref('base.res_partner_2') + seller.name = res_partner_2 seller.min_qty = 2.0 # I confirm the sales order, no error this time diff --git a/addons/stock_dropshipping/tests/test_stockvaluation.py b/addons/stock_dropshipping/tests/test_stockvaluation.py index 2f8f9bc65aa..d4805cca50b 100644 --- a/addons/stock_dropshipping/tests/test_stockvaluation.py +++ b/addons/stock_dropshipping/tests/test_stockvaluation.py @@ -1,25 +1,67 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -from odoo.addons.account.tests.account_test_classes import AccountingTestCase +from odoo.addons.stock_account.tests.stock_account_minimal_test import StockAccountMinimalTest from odoo.tests import Form, tagged @tagged('post_install', '-at_install') -class TestStockValuation(AccountingTestCase): - def setUp(self): - super(TestStockValuation, self).setUp() - self.supplier_location = self.env.ref('stock.stock_location_suppliers') - self.stock_location = self.env.ref('stock.stock_location_stock') - self.partner_id = self.env.ref('base.res_partner_1') - self.product1 = self.env.ref('product.product_product_8') - self.categ_id = self.product1.categ_id +class TestStockValuation(StockAccountMinimalTest): - self.acc_payable = self.partner_id.property_account_payable_id.id - self.acc_expense = self.categ_id.property_account_expense_categ_id.id - self.acc_receivable = self.partner_id.property_account_receivable_id.id - self.acc_sale = self.categ_id.property_account_income_categ_id.id - self.acc_stock_in = self.categ_id.property_stock_account_input_categ_id.id - self.acc_stock_out = self.categ_id.property_stock_account_output_categ_id.id + @classmethod + def setUpClass(cls): + super(TestStockValuation, cls).setUpClass() + # Setup a new company to avoid any external influence + cls.company = cls.env['res.company'].create({ + 'name': 'My Test Company', + 'currency_id': cls.env.ref('base.USD').id, + }) + cls.env.user.company_id = cls.company + cls.create_accounting_minimal_data() + + cls.supplier_location = cls.env.ref('stock.stock_location_suppliers') + cls.stock_location = cls.env.ref('stock.stock_location_stock') + cls.partner_id = cls.env['res.partner'].create({'name': 'My Test Partner'}) + cls.product1 = cls.env['product.product'].create({ + 'name': 'Large Desk', + 'type': 'product', + 'categ_id': cls.env.ref('product.product_category_all').id, + 'taxes_id': [(6, 0, [])], + }) + cls.categ_id = cls.product1.categ_id + cls.stock_input_account = cls.env['account.account'].create({ + 'name': 'Stock Input', + 'code': 'StockIn', + 'user_type_id': cls.env.ref('account.data_account_type_current_assets').id, + 'reconcile': True, + }) + cls.stock_output_account = cls.env['account.account'].create({ + 'name': 'Stock Output', + 'code': 'StockOut', + 'user_type_id': cls.env.ref('account.data_account_type_current_assets').id, + 'reconcile': True, + }) + cls.stock_valuation_account = cls.env['account.account'].create({ + 'name': 'Stock Valuation', + 'code': 'Stock Valuation', + 'user_type_id': cls.env.ref('account.data_account_type_current_assets').id, + }) + cls.stock_journal = cls.env['account.journal'].create({ + 'name': 'Stock Journal', + 'code': 'STJTEST', + 'type': 'general', + }) + cls.product1.categ_id.write({ + 'property_stock_account_input_categ_id': cls.stock_input_account.id, + 'property_stock_account_output_categ_id': cls.stock_output_account.id, + 'property_stock_valuation_account_id': cls.stock_valuation_account.id, + 'property_stock_journal': cls.stock_journal.id, + }) + cls.acc_payable = cls.partner_id.property_account_payable_id.id + cls.acc_expense = cls.categ_id.property_account_expense_categ_id.id + cls.acc_receivable = cls.partner_id.property_account_receivable_id.id + cls.acc_sale = cls.categ_id.property_account_income_categ_id.id + cls.acc_stock_in = cls.categ_id.property_stock_account_input_categ_id.id + cls.acc_stock_out = cls.categ_id.property_stock_account_output_categ_id.id def _dropship_product1(self): # enable the dropship and MTO route on the product @@ -47,6 +89,7 @@ class TestStockValuation(AccountingTestCase): 'product_uom_qty': 1, 'product_uom': self.product1.uom_id.id, 'price_unit': 12, + 'tax_id': [(6, 0, [])], })], 'pricelist_id': self.env.ref('product.list0').id, 'picking_policy': 'direct', @@ -69,6 +112,7 @@ class TestStockValuation(AccountingTestCase): move_form = Form(self.env['account.move'].with_context(default_type='in_invoice')) move_form.partner_id = vendor1 move_form.purchase_id = self.purchase_order1 + move_form.line_ids.tax_ids = False self.vendor_bill1 = move_form.save() self.vendor_bill1.post() @@ -261,7 +305,6 @@ class TestStockValuation(AccountingTestCase): self.acc_stock_in: (8.0, 8.0), self.acc_stock_out: (8.0, 8.0), } - self._check_results(expected_aml, 10, all_amls) def test_dropship_standard_perpetual_anglosaxon_ordered_return(self):