[REF] all: pass pre-commit on the whole repo
Needed for the lint job of the CI to go green. Mostly automatic hook fixes (black, isort, prettier, pyupgrade, autoflake, whitespace). By hand: - flake8: two unused imports, an ambiguous variable name `l`. - pylint-odoo mandatory: manifest keys equal to their default value (installable, application, data, external_dependencies). - end-of-file-fixer skips *.patch too, like trailing-whitespace: the upstream patches stay as git format-patch wrote them. No behaviour change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
d9d9e8be2d
commit
fbd43bb459
45 changed files with 330 additions and 295 deletions
|
|
@ -4,15 +4,16 @@ import werkzeug.datastructures
|
|||
|
||||
from odoo.exceptions import UserError
|
||||
from odoo.fields import Date
|
||||
from odoo.tests import TransactionCase
|
||||
from odoo.tests import tagged
|
||||
|
||||
from odoo.addons.website.tools import MockRequest
|
||||
from odoo.addons.website_membership_signup_required.controllers.main import (
|
||||
AuthSignupHomeMembership as AuthSignupHome,
|
||||
)
|
||||
from odoo.addons.website_membership_signup_required.controllers.website_sale import (
|
||||
WebsiteSaleMembershipSignup,
|
||||
)
|
||||
from odoo.addons.website.tools import MockRequest
|
||||
from odoo.tests import TransactionCase, tagged
|
||||
|
||||
|
||||
@tagged("post_install", "-at_install")
|
||||
|
|
@ -24,22 +25,28 @@ class TestMembershipSignup(TransactionCase):
|
|||
cls.website = cls.env.ref("website.default_website")
|
||||
cls.website.auth_signup_uninvited = "b2b"
|
||||
today = Date.to_date(Date.today())
|
||||
cls.membership_product = cls.env["product.product"].create({
|
||||
"name": "Membership Card",
|
||||
"membership": True,
|
||||
"list_price": 50.0,
|
||||
"membership_date_from": today.replace(month=1, day=1),
|
||||
"membership_date_to": today.replace(month=12, day=31),
|
||||
})
|
||||
cls.regular_product = cls.env["product.product"].create({
|
||||
"name": "Regular Mug",
|
||||
"membership": False,
|
||||
"list_price": 10.0,
|
||||
})
|
||||
cls.no_user_partner = cls.env["res.partner"].create({
|
||||
"firstname": "Backend",
|
||||
"lastname": "Partner",
|
||||
})
|
||||
cls.membership_product = cls.env["product.product"].create(
|
||||
{
|
||||
"name": "Membership Card",
|
||||
"membership": True,
|
||||
"list_price": 50.0,
|
||||
"membership_date_from": today.replace(month=1, day=1),
|
||||
"membership_date_to": today.replace(month=12, day=31),
|
||||
}
|
||||
)
|
||||
cls.regular_product = cls.env["product.product"].create(
|
||||
{
|
||||
"name": "Regular Mug",
|
||||
"membership": False,
|
||||
"list_price": 10.0,
|
||||
}
|
||||
)
|
||||
cls.no_user_partner = cls.env["res.partner"].create(
|
||||
{
|
||||
"firstname": "Backend",
|
||||
"lastname": "Partner",
|
||||
}
|
||||
)
|
||||
|
||||
# -- RF-07 / RF-default ------------------------------------------------
|
||||
|
||||
|
|
@ -198,13 +205,21 @@ class TestMembershipSignup(TransactionCase):
|
|||
# -- RF-08 -------------------------------------------------------------
|
||||
|
||||
def test_08_backend_sale_order_with_membership_product_without_user(self):
|
||||
order = self.env["sale.order"].create({
|
||||
"partner_id": self.no_user_partner.id,
|
||||
"order_line": [(0, 0, {
|
||||
"product_id": self.membership_product.id,
|
||||
"product_uom_qty": 1.0,
|
||||
})],
|
||||
})
|
||||
order = self.env["sale.order"].create(
|
||||
{
|
||||
"partner_id": self.no_user_partner.id,
|
||||
"order_line": [
|
||||
(
|
||||
0,
|
||||
0,
|
||||
{
|
||||
"product_id": self.membership_product.id,
|
||||
"product_uom_qty": 1.0,
|
||||
},
|
||||
)
|
||||
],
|
||||
}
|
||||
)
|
||||
self.assertTrue(order)
|
||||
self.assertEqual(order.order_line.product_id, self.membership_product)
|
||||
# Confirming the SO drives membership creation (core `membership`).
|
||||
|
|
@ -276,12 +291,14 @@ class TestMembershipSignup(TransactionCase):
|
|||
The invited partner must NOT have a user yet, otherwise the token
|
||||
payload check (`user_ids`) won't match.
|
||||
"""
|
||||
partner = self.env["res.partner"].create({
|
||||
"firstname": "Invited",
|
||||
"lastname": "Researcher",
|
||||
"email": "invited.researcher@example.com",
|
||||
"signup_type": "signup",
|
||||
})
|
||||
partner = self.env["res.partner"].create(
|
||||
{
|
||||
"firstname": "Invited",
|
||||
"lastname": "Researcher",
|
||||
"email": "invited.researcher@example.com",
|
||||
"signup_type": "signup",
|
||||
}
|
||||
)
|
||||
self.assertFalse(partner.user_ids, "test precondition: no user yet")
|
||||
token = partner._generate_signup_token()
|
||||
info = self.env["res.partner"]._signup_retrieve_info(token)
|
||||
|
|
@ -297,11 +314,13 @@ class TestMembershipSignup(TransactionCase):
|
|||
still works — the form will show empty readonly inputs for the split
|
||||
fields, which is the best we can do without re-splitting.
|
||||
"""
|
||||
partner = self.env["res.partner"].create({
|
||||
"name": "Legacy Researcher",
|
||||
"email": "legacy@example.com",
|
||||
"signup_type": "signup",
|
||||
})
|
||||
partner = self.env["res.partner"].create(
|
||||
{
|
||||
"name": "Legacy Researcher",
|
||||
"email": "legacy@example.com",
|
||||
"signup_type": "signup",
|
||||
}
|
||||
)
|
||||
# partner_firstname's post_create hook may or may not have split
|
||||
# `name` automatically; we just check the override does not crash
|
||||
# and returns the contract keys.
|
||||
|
|
@ -309,4 +328,4 @@ class TestMembershipSignup(TransactionCase):
|
|||
info = self.env["res.partner"]._signup_retrieve_info(token)
|
||||
self.assertIn("firstname", info)
|
||||
self.assertIn("lastname", info)
|
||||
self.assertEqual(info.get("name"), partner.name)
|
||||
self.assertEqual(info.get("name"), partner.name)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue