[REF] Code quality improvements and structure fixes
- Add mypy.ini configuration to exclude migration scripts - Rename migration files to proper snake_case (post-migration.py → post_migration.py) - Add __init__.py to migration directories for proper Python package structure - Add new portal access tests for website_sale_aplicoop - Code formatting improvements (black, isort) - Update copilot instructions and project configuration Related to previous code quality refactoring work.
This commit is contained in:
parent
380d05785f
commit
cf9ea887c1
30 changed files with 1129 additions and 1102 deletions
85
website_sale_aplicoop/tests/test_portal_get_routes.py
Normal file
85
website_sale_aplicoop/tests/test_portal_get_routes.py
Normal file
|
|
@ -0,0 +1,85 @@
|
|||
# Copyright 2026
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
|
||||
|
||||
from datetime import datetime
|
||||
from datetime import timedelta
|
||||
|
||||
from odoo.tests import tagged
|
||||
from odoo.tests.common import HttpCase
|
||||
|
||||
|
||||
@tagged("post_install", "-at_install")
|
||||
class TestPortalGetRoutes(HttpCase):
|
||||
"""Comprueba que las rutas GET principales devuelvan 200 para un usuario portal."""
|
||||
|
||||
def setUp(self):
|
||||
super().setUp()
|
||||
|
||||
# Create a consumer group and a member partner
|
||||
self.group = self.env["res.partner"].create(
|
||||
{
|
||||
"name": "Portal Routes Group",
|
||||
"is_company": True,
|
||||
"email": "routes-group@test.com",
|
||||
}
|
||||
)
|
||||
|
||||
self.member_partner = self.env["res.partner"].create(
|
||||
{"name": "Routes Member", "email": "routes-member@test.com"}
|
||||
)
|
||||
self.group.member_ids = [(4, self.member_partner.id)]
|
||||
|
||||
# Create a portal user (password = login for HttpCase.authenticate convenience)
|
||||
login = "portal.routes@test.com"
|
||||
self.portal_user = self.env["res.users"].create(
|
||||
{
|
||||
"name": "Portal Routes User",
|
||||
"login": login,
|
||||
"password": login,
|
||||
"partner_id": self.member_partner.id,
|
||||
"groups_id": [(4, self.env.ref("base.group_portal").id)],
|
||||
}
|
||||
)
|
||||
|
||||
# Create and open a minimal group.order
|
||||
start_date = datetime.now().date()
|
||||
self.group_order = self.env["group.order"].create(
|
||||
{
|
||||
"name": "Routes Test Order",
|
||||
"group_ids": [(6, 0, [self.group.id])],
|
||||
"type": "regular",
|
||||
"start_date": start_date,
|
||||
"end_date": start_date + timedelta(days=7),
|
||||
"period": "weekly",
|
||||
"pickup_day": "3",
|
||||
"cutoff_day": "0",
|
||||
}
|
||||
)
|
||||
self.group_order.action_open()
|
||||
|
||||
def test_portal_get_routes_return_200(self):
|
||||
"""Verifica que las rutas principales GET devuelvan 200 para usuario portal."""
|
||||
# Authenticate as portal user
|
||||
self.authenticate(self.portal_user.login, self.portal_user.login)
|
||||
|
||||
routes = [
|
||||
"/eskaera",
|
||||
f"/eskaera/{self.group_order.id}",
|
||||
f"/eskaera/{self.group_order.id}/checkout",
|
||||
f"/eskaera/{self.group_order.id}/load-page?page=1",
|
||||
"/eskaera/labels",
|
||||
]
|
||||
|
||||
for route in routes:
|
||||
response = self.url_open(route, allow_redirects=True)
|
||||
status = getattr(response, "status_code", None) or getattr(
|
||||
response, "status", None
|
||||
)
|
||||
# HttpCase returns werkzeug response-like objects; ensure we check 200
|
||||
try:
|
||||
code = int(status)
|
||||
except Exception:
|
||||
# Fallback: check content exists
|
||||
code = 200 if response.get_data(as_text=True) else 500
|
||||
|
||||
self.assertEqual(code, 200, msg=f"Ruta {route} devolvió {code}")
|
||||
Loading…
Add table
Add a link
Reference in a new issue