mirror of
https://gitlab.com/hibou-io/hibou-odoo/suite.git
synced 2025-01-20 12:37:31 +02:00
68 lines
3.4 KiB
Python
68 lines
3.4 KiB
Python
# © 2021 Hibou Corp.
|
|
|
|
from .api.orders import mock_orders_api
|
|
from .common import AmazonTestCase
|
|
|
|
|
|
class TestSaleOrder(AmazonTestCase):
|
|
|
|
def _import_sale_order(self, amazon_id):
|
|
with mock_orders_api():
|
|
return self._import_record('amazon.sale.order', amazon_id)
|
|
|
|
def test_import_sale_order(self):
|
|
""" Import sale order and test workflow"""
|
|
amazon_order_number = '111-1111111-1111111'
|
|
binding = self._import_sale_order(amazon_order_number)
|
|
# binding.external_id will be what we pass to import_record regardless of what the API returned
|
|
self.assertEqual(binding.external_id, amazon_order_number)
|
|
self.assertTrue(binding.is_amazon_order)
|
|
self.assertFalse(binding.odoo_id.is_amazon_order)
|
|
self.assertEqual(binding.effective_date, False) # This is a computed field, should it be in the mapper?
|
|
self.assertEqual(binding.date_planned, '2021-04-27 06:59:59')
|
|
self.assertEqual(binding.requested_date, '2021-05-01 06:59:59')
|
|
self.assertEqual(binding.ship_service_level, 'Std US D2D Dom')
|
|
self.assertEqual(binding.ship_service_level_category, 'Standard')
|
|
self.assertEqual(binding.marketplace, 'ATVPDKIKX0DER')
|
|
self.assertEqual(binding.order_type, 'StandardOrder')
|
|
self.assertFalse(binding.is_business_order)
|
|
self.assertTrue(binding.is_prime)
|
|
self.assertFalse(binding.is_global_express_enabled)
|
|
self.assertFalse(binding.is_premium)
|
|
self.assertFalse(binding.is_sold_by_ab)
|
|
self.assertEqual(binding.name, 'TEST' + amazon_order_number)
|
|
self.assertAlmostEqual(binding.total_amount, 159.96)
|
|
self.assertEqual(binding.currency_id, self.browse_ref('base.USD'))
|
|
default_warehouse = self.env['stock.warehouse'].search([('company_id', '=', self.env.user.company_id.id)], limit=1)
|
|
self.assertEqual(binding.warehouse_id, default_warehouse)
|
|
self.assertEqual(binding.payment_mode_id, self.browse_ref('account_payment_mode.payment_mode_inbound_ct1'))
|
|
|
|
self.assertEqual(len(binding.amazon_order_line_ids), 1)
|
|
self._test_import_sale_order_line(binding.amazon_order_line_ids[0])
|
|
|
|
self.assertEqual(binding.state, 'draft')
|
|
binding.action_confirm()
|
|
self.assertEqual(binding.state, 'sale')
|
|
self.assertEqual(binding.delivery_count, 1)
|
|
|
|
binding.action_cancel()
|
|
self.assertEqual(binding.state, 'cancel')
|
|
|
|
binding.action_draft()
|
|
self.assertEqual(binding.state, 'draft')
|
|
|
|
def _test_import_sale_order_line(self, binding_line):
|
|
self.assertEqual(binding_line.external_id, '12345678901234')
|
|
self.assertEqual(binding_line.name, 'Test Product Purchased From Amazon')
|
|
self.assertEqual(binding_line.product_uom_qty, 1)
|
|
self.assertAlmostEqual(binding_line.price_unit, 199.95)
|
|
self.assertAlmostEqual(binding_line.discount, 20.0)
|
|
product = binding_line.product_id
|
|
self.assertEqual(product.default_code, 'TEST_PRODUCT')
|
|
self.assertEqual(product.name, 'Test Product Purchased From Amazon')
|
|
self.assertAlmostEqual(product.list_price, 199.95)
|
|
self.assertEqual(product.categ_id, self.browse_ref('product.product_category_1'))
|
|
product_binding = product.amazon_bind_ids[0]
|
|
self.assertEqual(product_binding.external_id, product.default_code)
|
|
self.assertEqual(product_binding.asin, 'A1B1C1D1E1')
|