Public release from ruodoo-project: 19.0 - 2026-11-01 22:52:25 UTC
This commit is contained in:
1
rsbu_demo_templates/tests/__init__.py
Normal file
1
rsbu_demo_templates/tests/__init__.py
Normal file
@@ -0,0 +1 @@
|
||||
from . import test_demo_templates
|
||||
77
rsbu_demo_templates/tests/test_demo_templates.py
Normal file
77
rsbu_demo_templates/tests/test_demo_templates.py
Normal file
@@ -0,0 +1,77 @@
|
||||
from odoo.tests import TransactionCase, tagged
|
||||
|
||||
|
||||
@tagged('post_install', '-at_install')
|
||||
class TestDemoTemplates(TransactionCase):
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.company = cls.env.company
|
||||
cls.partner = cls.env['res.partner'].create({'name': 'Demo Клиент'})
|
||||
cls.journal_bank = cls.env['account.journal'].search(
|
||||
[('type', '=', 'bank'), ('company_id', '=', cls.company.id)],
|
||||
limit=1)
|
||||
|
||||
def _tmpl(self, code):
|
||||
return self.env['rsbu.operation.template'].search([
|
||||
('code', '=', code),
|
||||
('company_id', '=', self.company.id)], limit=1)
|
||||
|
||||
def test_all_templates_loaded(self):
|
||||
codes = ['DEMO_SALE', 'DEMO_SALE_REFUND', 'DEMO_PURCHASE',
|
||||
'DEMO_PURCHASE_REFUND', 'DEMO_PAY_CUSTOMER',
|
||||
'DEMO_REFUND_CUSTOMER', 'DEMO_PAY_SUPPLIER',
|
||||
'DEMO_REFUND_SUPPLIER']
|
||||
for code in codes:
|
||||
self.assertTrue(self._tmpl(code), 'Нет шаблона %s' % code)
|
||||
|
||||
def test_customer_payment_detects_template(self):
|
||||
pay = self.env['account.payment'].create({
|
||||
'payment_type': 'inbound',
|
||||
'partner_type': 'customer',
|
||||
'partner_id': self.partner.id,
|
||||
'amount': 1000.0,
|
||||
'journal_id': self.journal_bank.id,
|
||||
})
|
||||
self.assertEqual(pay._rsbu_detect_template().code, 'DEMO_PAY_CUSTOMER')
|
||||
|
||||
def test_supplier_payment_detects_template(self):
|
||||
pay = self.env['account.payment'].create({
|
||||
'payment_type': 'outbound',
|
||||
'partner_type': 'supplier',
|
||||
'partner_id': self.partner.id,
|
||||
'amount': 500.0,
|
||||
'journal_id': self.journal_bank.id,
|
||||
})
|
||||
self.assertEqual(pay._rsbu_detect_template().code, 'DEMO_PAY_SUPPLIER')
|
||||
|
||||
def test_supplier_refund_detects_template(self):
|
||||
# Входящий платёж от поставщика -> возврат от поставщика.
|
||||
pay = self.env['account.payment'].create({
|
||||
'payment_type': 'inbound',
|
||||
'partner_type': 'supplier',
|
||||
'partner_id': self.partner.id,
|
||||
'amount': 200.0,
|
||||
'journal_id': self.journal_bank.id,
|
||||
})
|
||||
self.assertEqual(pay._rsbu_detect_template().code,
|
||||
'DEMO_REFUND_SUPPLIER')
|
||||
|
||||
def test_supplier_payment_full_flow(self):
|
||||
pay = self.env['account.payment'].create({
|
||||
'payment_type': 'outbound',
|
||||
'partner_type': 'supplier',
|
||||
'partner_id': self.partner.id,
|
||||
'amount': 500.0,
|
||||
'journal_id': self.journal_bank.id,
|
||||
})
|
||||
pay.action_post()
|
||||
move = pay.rsbu_move_id
|
||||
self.assertTrue(move)
|
||||
self.assertEqual(move.state, 'posted')
|
||||
# Дт 60 — Кт 51 на 500
|
||||
acc60 = self.env['rsbu.account'].search([
|
||||
('code', '=', '60'), ('company_id', '=', self.company.id)])
|
||||
bal = acc60.get_balance(company_id=self.company.id)
|
||||
self.assertEqual(bal['debit'], 500.0)
|
||||
Reference in New Issue
Block a user