Skip to content

Commit

Permalink
Merge PR #773 into 13.0
Browse files Browse the repository at this point in the history
Signed-off-by sebastienbeau
  • Loading branch information
shopinvader-git-bot committed Jan 25, 2021
2 parents b80f770 + c3327e0 commit ace9131
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 3 deletions.
9 changes: 8 additions & 1 deletion shopinvader/services/address.py
Original file line number Diff line number Diff line change
Expand Up @@ -71,15 +71,22 @@ def _store_cache_needed(self, partner):
return partner.address_type == "profile"

# Validator
def _get_allowed_type(self):
return ["contact", "invoice", "delivery", "other", "private"]

def _validator_search(self):
validator = self._default_validator_search()
validator.pop("domain", {})
return validator

def _validator_create(self):
res = {
"type": {"type": "string", "default": "other"},
"name": {"type": "string", "required": True},
"type": {
"type": "string",
"allowed": self._get_allowed_type(),
"default": "contact",
},
"street": {"type": "string", "required": True, "empty": False},
"street2": {"type": "string", "nullable": True},
"zip": {"type": "string", "required": True, "empty": False},
Expand Down
41 changes: 39 additions & 2 deletions shopinvader/tests/test_address.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# @author Sébastien BEAU <[email protected]>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo.exceptions import AccessError
from odoo.exceptions import AccessError, UserError

from .common import CommonCase

Expand Down Expand Up @@ -67,7 +67,7 @@ def test_create_address(self):
# no email, verify defaults
params = dict(self.address_params, parent_id=self.partner.id)
# type defaults to `other`
expected = dict(params, type="other")
expected = dict(params)
self._test_create_address(params, expected)
# pass email and type
params = dict(params, email="[email protected]", type="invoice")
Expand All @@ -79,6 +79,31 @@ def _test_update_address(self, address_id, params, expected):
address = self.env["res.partner"].browse(address_id)
self.check_data(address, expected)

def test_add_address_invoice(self):
# Create an invoice address with wrong type
# Check raise
# Create an invoice address with invoice type
# Check data
self.address_params.update({"type": "wrong"})
address_ids = [
address["id"] for address in self.address_service.search()["data"]
]
with self.assertRaises(UserError):
self.address_service.dispatch(
"create", params=self.address_params
)["data"]
self.address_params.update({"type": "invoice"})
address_list = self.address_service.dispatch(
"create", params=self.address_params
)["data"]
for address in address_list:
if address["id"] not in address_ids:
created_address = address
self.assertIsNotNone(created_address)
address = self.env["res.partner"].browse(created_address["id"])
self.assertEqual(address.parent_id, self.partner)
self.check_data(address, self.address_params)

def test_update_address(self):
params = dict(self.address_params, parent_id=self.partner.id)
expected = dict(params)
Expand All @@ -104,6 +129,18 @@ def test_read_address_address(self):
expected_ids = {self.address.id, self.address_2.id}
self.assertEqual(ids, expected_ids)

def test_read_address_invoice(self):
# Create an invoice address
# Search it
self.address_params.update({"type": "invoice"})
self.address_service.dispatch("create", params=self.address_params)[
"data"
]
res = self.address_service.dispatch(
"search", params={"scope": {"type": "invoice"}}
)["data"]
self.assertEqual(len(res), 1)

def test_read_address_all(self):
res = self.address_service.dispatch("search", params={})["data"]
self.assertEqual(len(res), 3)
Expand Down

0 comments on commit ace9131

Please sign in to comment.