Skip to content

Commit

Permalink
Merge PR #417 into 10.0
Browse files Browse the repository at this point in the history
Signed-off-by sebastienbeau
  • Loading branch information
shopinvader-git-bot committed Apr 17, 2020
2 parents a47ce05 + f328ce7 commit 51da647
Show file tree
Hide file tree
Showing 5 changed files with 48 additions and 19 deletions.
22 changes: 8 additions & 14 deletions shopinvader_delivery_carrier/services/abstract_sale.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,12 @@ class AbstractSaleService(AbstractComponent):

def _convert_shipping(self, cart):
res = super(AbstractSaleService, self)._convert_shipping(cart)
selected_carrier = {}
if cart.carrier_id:
carrier = cart.carrier_id
selected_carrier = {
"id": carrier.id,
"name": carrier.name,
"description": carrier.description,
}
selected_carrier = self._prepare_carrier(
cart.carrier_id, no_price=True
)
else:
selected_carrier = {}
res.update(
{
"amount": {
Expand Down Expand Up @@ -52,13 +50,9 @@ def _convert_amount(self, sale):
)
return result

def _prepare_carrier(self, carrier):
return {
"id": carrier.id,
"name": carrier.name,
"description": carrier.description,
"price": carrier.price,
}
def _prepare_carrier(self, carrier, no_price=False):
service = self.component(usage="delivery_carrier")
return service._prepare_carrier(carrier, no_price=no_price)

def _get_available_carrier(self, cart):
return [
Expand Down
17 changes: 12 additions & 5 deletions shopinvader_delivery_carrier/services/delivery_carrier.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ def _validator_return_search(self):
"required": False,
"nullable": True,
},
"code": {
"type": "string",
"required": False,
"nullable": True,
},
"description": {
"type": "string",
"required": False,
Expand Down Expand Up @@ -112,8 +117,8 @@ def _search(self, **params):
return cart._get_available_carrier()
return self.shopinvader_backend.carrier_ids

def _prepare_carrier(self, carrier):
res = carrier.jsonify(self._json_parser_carrier)[0]
def _prepare_carrier(self, carrier, no_price=False):
res = carrier.jsonify(self._json_parser_carrier(no_price=no_price))[0]
res["type"] = None
return res

Expand All @@ -138,6 +143,8 @@ def _load_zip_code(self, params):
def allowed_carrier_types(self):
return []

@property
def _json_parser_carrier(self):
return ["id", "name", "description", "price"]
def _json_parser_carrier(self, no_price=False):
res = ["id", "name", "default_code:code", "description"]
if not no_price:
res.append("price")
return res
2 changes: 2 additions & 0 deletions shopinvader_delivery_carrier/tests/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ def setUpClass(cls):
super(CommonCarrierCase, cls).setUpClass()
cls.free_carrier = cls.env.ref("delivery.free_delivery_carrier")
cls.poste_carrier = cls.env.ref("delivery.delivery_carrier")
cls.free_carrier.default_code = "FREE"
cls.poste_carrier.default_code = "POSTE"
cls.product_1 = cls.env.ref("product.product_product_4b")
cls.precision = 2

Expand Down
22 changes: 22 additions & 0 deletions shopinvader_delivery_carrier/tests/test_carrier.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,16 @@ def test_deprecated_apply_delivery_method(self):
def test_setting_free_carrier(self):
cart = self._set_carrier(self.free_carrier)
self.assertEqual(cart["shipping"]["amount"]["total"], 0)
self.assertEqual(
cart["shipping"]["selected_carrier"],
{
"description": self.free_carrier.description or None,
"id": self.free_carrier.id,
"name": self.free_carrier.name,
"code": self.free_carrier.code,
"type": None,
},
)

def test_setting_poste_carrier(self):
cart = self._set_carrier(self.poste_carrier)
Expand Down Expand Up @@ -60,6 +70,18 @@ def test_setting_poste_carrier(self):
cart_amount["tax_without_shipping"], tax_without_shipping
)

# Check Selected carrier
self.assertEqual(
cart["shipping"]["selected_carrier"],
{
"description": self.poste_carrier.description or None,
"id": self.poste_carrier.id,
"name": self.poste_carrier.name,
"code": self.poste_carrier.code,
"type": None,
},
)

def test_reset_carrier_on_add_item(self):
self._apply_carrier_and_assert_set()
cart = self.add_item(self.product_1.id, 2)
Expand Down
4 changes: 4 additions & 0 deletions shopinvader_delivery_carrier/tests/test_delivery_carrier.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,13 +24,15 @@ def test_search_all(self):
"description": self.free_carrier.description or None,
"id": self.free_carrier.id,
"name": self.free_carrier.name,
"code": self.free_carrier.code,
"type": None,
},
{
"price": 0.0,
"description": self.poste_carrier.description or None,
"id": self.poste_carrier.id,
"name": self.poste_carrier.name,
"code": self.poste_carrier.code,
"type": None,
},
],
Expand All @@ -47,13 +49,15 @@ def test_search_current_cart(self):
"description": self.free_carrier.description or None,
"id": self.free_carrier.id,
"name": self.free_carrier.name,
"code": self.free_carrier.code,
"type": None,
},
{
"price": 20.0,
"description": self.poste_carrier.description or None,
"id": self.poste_carrier.id,
"name": self.poste_carrier.name,
"code": self.poste_carrier.code,
"type": None,
},
],
Expand Down

0 comments on commit 51da647

Please sign in to comment.