From b040beafd607b59fae4dbf293f45a6186dffaa79 Mon Sep 17 00:00:00 2001 From: Yannick Tivisse Date: Mon, 4 Nov 2019 16:55:55 +0100 Subject: [PATCH] [IMP] website_sale_delivery: Adapt tests to work with/without demo data --- .../tests/tours/website_free_delivery.js | 2 +- addons/website_sale_delivery/tests/test_ui.py | 55 ++++++++++++++++++- 2 files changed, 53 insertions(+), 4 deletions(-) diff --git a/addons/website_sale_delivery/static/tests/tours/website_free_delivery.js b/addons/website_sale_delivery/static/tests/tours/website_free_delivery.js index d99af8e56e1..cad090af62b 100644 --- a/addons/website_sale_delivery/static/tests/tours/website_free_delivery.js +++ b/addons/website_sale_delivery/static/tests/tours/website_free_delivery.js @@ -11,7 +11,7 @@ tour.register('check_free_delivery', { // Part 1: Check free delivery { content: "select office chair black", - trigger: '.oe_product_cart:first a:contains("Office Chair Black")', + trigger: '.oe_product_cart a:contains("Office Chair Black TEST")', }, { content: "click on add to cart", diff --git a/addons/website_sale_delivery/tests/test_ui.py b/addons/website_sale_delivery/tests/test_ui.py index 6b1a2232f4a..e686eca2fa0 100644 --- a/addons/website_sale_delivery/tests/test_ui.py +++ b/addons/website_sale_delivery/tests/test_ui.py @@ -1,21 +1,70 @@ -import odoo.tests # Part of Odoo. See LICENSE file for full copyright and licensing details. +import odoo.tests + @odoo.tests.tagged('post_install', '-at_install') class TestUi(odoo.tests.HttpCase): def test_01_free_delivery_when_exceed_threshold(self): + + # Avoid Shipping/Billing address page + self.env.ref('base.partner_admin').write({ + 'street': '215 Vine St', + 'city': 'Scranton', + 'zip': '18503', + 'country_id': self.env.ref('base.us').id, + 'state_id': self.env.ref('base.state_us_39').id, + 'phone': '+1 555-555-5555', + 'email': 'admin@yourcompany.example.com', + }) + + office_chair = self.env['product.product'].create({ + 'name': 'Office Chair Black TEST', + 'list_price': 12.50, + }) self.env.ref("delivery.free_delivery_carrier").write({ 'name': 'Delivery Now Free Over 10', 'fixed_price': 2, 'free_over': True, 'amount': 10, }) - self.env.ref("delivery.delivery_carrier").write({ - 'sequence': 9999, # ensure last to load price async + self.product_delivery_poste = self.env['product.product'].create({ + 'name': 'The Poste', + 'type': 'service', + 'categ_id': self.env.ref('delivery.product_category_deliveries').id, + 'sale_ok': False, + 'purchase_ok': False, + 'list_price': 20.0, + }) + self.carrier = self.env['delivery.carrier'].create({ + 'name': 'The Poste', + 'sequence': 9999, # ensure last to load price async + 'fixed_price': 20.0, + 'delivery_type': 'base_on_rule', + 'product_id': self.product_delivery_poste.id, 'website_published': True, }) + self.env['delivery.price.rule'].create([{ + 'carrier_id': self.carrier.id, + 'max_value': 5, + 'list_base_price': 20, + }, { + 'carrier_id': self.carrier.id, + 'operator': '>=', + 'max_value': 5, + 'list_base_price': 50, + }, { + 'carrier_id': self.carrier.id, + 'operator': '>=', + 'max_value': 300, + 'variable': 'price', + 'list_base_price': 0, + }]) + + cash_journal = self.env['account.journal'].create({'name': 'Cash - Test', 'type': 'cash', 'code': 'CASH - Test'}) + self.env.ref('payment.payment_acquirer_transfer').journal_id = cash_journal + # Ensure "Wire Transfer" is the default acquirer. # Acquirers are sorted by state, showing `test` acquirers first (don't ask why). self.env.ref("payment.payment_acquirer_transfer").write({"state": "test"})