Skip to content

Commit

Permalink
[FIX] l10n_be_cooperator_national_number: Fix the tests
Browse files Browse the repository at this point in the history
  • Loading branch information
carmenbianca committed Jul 17, 2023
1 parent 10afd2e commit 69057a4
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 53 deletions.
3 changes: 2 additions & 1 deletion l10n_be_cooperator_national_number/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
from . import subscription_request
from . import company
from . import subscription_request
from . import res_partner
36 changes: 36 additions & 0 deletions l10n_be_cooperator_national_number/models/res_partner.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# SPDX-FileCopyrightText: 2023 Coop IT Easy SC
#
# SPDX-License-Identifier: AGPL-3.0-or-later

from odoo import models


class ResPartner(models.Model):
_inherit = "res.partner"

def update_belgian_national_number(self, national_number):
self.ensure_one()
result = None
if national_number:
belgian_cat = self.env.ref(
"l10n_be_national_number.l10n_be_national_number_category"
)
existing = self.env["res.partner.id_number"].search(
[
("partner_id", "=", self.id),
("category_id", "=", belgian_cat.id),
]
)
# Update
if existing:
existing.name = national_number
result = existing

Check warning on line 27 in l10n_be_cooperator_national_number/models/res_partner.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_national_number/models/res_partner.py#L26-L27

Added lines #L26 - L27 were not covered by tests
# Create new
else:
values = {
"name": national_number,
"category_id": belgian_cat.id,
"partner_id": self.id,
}
result = self.env["res.partner.id_number"].create(values)
return result
44 changes: 4 additions & 40 deletions l10n_be_cooperator_national_number/models/subscription_request.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,48 +38,12 @@ def validate_subscription_request(self):
self.ensure_one()
if self.require_national_number and not self.national_number:
raise UserError(_("National Number is required."))
super().validate_subscription_request()

def create_national_number(self, partner):
self.ensure_one()
invoice = super().validate_subscription_request()
if not self.is_company:
if not self.national_number and self.require_national_number:
raise ValueError(_("National Number is required."))
elif not self.national_number:
# Do nothing if no national number is provided, but none is
# required.
pass
else:
values = {
"name": self.national_number,
"category_id": self.env.ref(
"l10n_be_national_number.l10n_be_national_number_category" # noqa
).id,
"partner_id": partner.id,
}
self.env["res.partner.id_number"].create(values)
return partner

def create_coop_partner(self):
self.ensure_one()
partner = super().create_coop_partner()
if self.display_national_number:
self.create_national_number(partner)
return partner

def get_representative_vals(self):
contact_vals = super().get_representative_vals()
contact_vals["national_number"] = self.national_number
return contact_vals

def get_partner_vals(self):
contact_vals = super().get_partner_vals()
return contact_vals
partner = invoice.partner_id
partner.update_belgian_national_number(self.national_number)
return invoice

def get_person_info(self, partner):
super().get_person_info(partner)
self.national_number = self.get_national_number_from_partner(partner)

Check warning on line 49 in l10n_be_cooperator_national_number/models/subscription_request.py

View check run for this annotation

Codecov / codecov/patch

l10n_be_cooperator_national_number/models/subscription_request.py#L48-L49

Added lines #L48 - L49 were not covered by tests

def update_partner_info(self):
self.create_national_number(self.partner_id)
super().update_partner_info()
Original file line number Diff line number Diff line change
Expand Up @@ -19,24 +19,22 @@ def create_subscription_request(self):
return self.env["subscription.request"].create(vals)

def set_national_number_required(self):
company = self.env.company
company.display_national_number = True
company.require_national_number = True
self.company.display_national_number = True
self.company.require_national_number = True

def test_require_without_display(self):
"""You cannot require a national number without also displaying it."""
company = self.env.company
company.write(
self.company.write(
{
"display_national_number": False,
"require_national_number": False,
}
)
with self.assertRaises(ValidationError):
company.require_national_number = True
self.company.require_national_number = True
self.set_national_number_required()
with self.assertRaises(ValidationError):
company.display_national_number = False
self.company.display_national_number = False

def test_company_not_required(self):
"""Subscription requests for companies do not require a national number."""
Expand Down Expand Up @@ -69,22 +67,20 @@ def test_error_if_missing_and_required(self):
def test_no_national_number_provided(self):
"""Expect an error if no national number is given, but one is required."""
self.set_national_number_required()
vals = self.get_dummy_company_subscription_requests_vals()
vals = self.get_dummy_subscription_requests_vals()
subscription_request = self.env["subscription.request"].create(vals)
with self.assertRaises(UserError):
subscription_request.validate_subscription_request()
with self.assertRaises(UserError):
subscription_request.create_coop_partner()

def test_national_number_provided_not_required(self):
"""Expect no error when a number is given but not required."""
vals = self.get_dummy_company_subscription_requests_vals()
vals = self.get_dummy_subscription_requests_vals()
subscription_request = self.env["subscription.request"].create(vals)
subscription_request.national_number = 12345
subscription_request.validate_subscription_request()

def test_no_national_number_provided_not_required(self):
"""Expect no error when no number is given nor required."""
vals = self.get_dummy_company_subscription_requests_vals()
vals = self.get_dummy_subscription_requests_vals()
subscription_request = self.env["subscription.request"].create(vals)
subscription_request.validate_subscription_request()

0 comments on commit 69057a4

Please sign in to comment.