Public release from ruodoo-project: 19.0 - 2026-05-10 21:19:01 UTC

This commit is contained in:
CI Publish Bot
2026-05-10 21:19:11 +00:00
commit cbf9e6e6d6
1213 changed files with 183945 additions and 0 deletions

View File

@ -0,0 +1,136 @@
# -*- coding: utf-8 -*-
"""
Tests for l10n_ru_attorney — attorney (base.consent) creation, autonumbering,
and linkage to purchase orders.
Validates: Requirements 17.1, 17.2, 17.3
"""
from odoo.tests.common import TransactionCase
# ---------------------------------------------------------------------------
# Helpers
# ---------------------------------------------------------------------------
def _make_partner(env):
"""Create a company partner (supplier)."""
return env['res.partner'].create({
'name': 'Test Supplier Attorney',
'is_company': True,
})
def _make_employee(env):
"""Create a minimal hr.employee."""
return env['hr.employee'].create({
'name': 'Test Employee Attorney',
})
def _make_purchase_order(env, partner):
"""Create a minimal purchase.order."""
return env['purchase.order'].create({
'partner_id': partner.id,
})
def _make_consent(env, partner, employee, purchase_order, name=None):
"""Create a base.consent record."""
vals = {
'partner_id': partner.id,
'employee_id': employee.id,
'purchaseorder_id': purchase_order.id,
}
if name:
vals['name'] = name
return env['base.consent'].create(vals)
# ---------------------------------------------------------------------------
# TestBaseConsent
# ---------------------------------------------------------------------------
class TestBaseConsent(TransactionCase):
"""
Tests for base.consent creation: autonumbering via ir.sequence,
write-back of consent_id to purchase.order, and fill_order constraint.
Validates: Requirements 17.1, 17.2, 17.3
"""
def setUp(self):
super().setUp()
self.partner = _make_partner(self.env)
self.employee = _make_employee(self.env)
self.purchase_order = _make_purchase_order(self.env, self.partner)
# ------------------------------------------------------------------
# Requirement 17.1 — autonumber via ir.sequence when name is absent
# ------------------------------------------------------------------
def test_create_autonumber(self):
"""
Req 17.1 — creating base.consent without a name assigns a number
via ir.sequence with code 'base.consent'.
"""
consent = _make_consent(
self.env, self.partner, self.employee, self.purchase_order
)
self.assertTrue(
consent.name,
"consent.name should be set automatically via ir.sequence",
)
# A manually-supplied name must be preserved as-is
consent2 = _make_consent(
self.env, self.partner, self.employee, self.purchase_order,
name='MANUAL-001',
)
self.assertEqual(
consent2.name, 'MANUAL-001',
"Explicitly supplied name should not be overwritten",
)
# ------------------------------------------------------------------
# Requirement 17.2 — purchase.order.consent_id set after create
# ------------------------------------------------------------------
def test_create_writes_back_to_purchase_order(self):
"""
Req 17.2 — after creating base.consent linked to a purchase.order,
purchase.order.consent_id equals the created consent.
"""
consent = _make_consent(
self.env, self.partner, self.employee, self.purchase_order
)
self.purchase_order.invalidate_recordset()
self.assertEqual(
self.purchase_order.consent_id.id,
consent.id,
"purchase.order.consent_id should be set to the created consent",
)
# ------------------------------------------------------------------
# Requirement 17.3 — fill_order constraint writes consent_id to order
# ------------------------------------------------------------------
def test_constrains_fill_order(self):
"""
Req 17.3 — the @api.constrains('purchaseorder_id') method fill_order
writes consent_id into the linked purchase.order.
"""
# Create a second purchase order to reassign to
second_order = _make_purchase_order(self.env, self.partner)
consent = _make_consent(
self.env, self.partner, self.employee, self.purchase_order
)
# Reassign to second_order — this triggers fill_order constraint
consent.write({'purchaseorder_id': second_order.id})
second_order.invalidate_recordset()
self.assertEqual(
second_order.consent_id.id,
consent.id,
"fill_order should write consent_id into the newly assigned purchase.order",
)