[IMP] tests: RecordCapturer now keep the order of record creation

closes odoo/odoo#104838

Related: odoo/enterprise#33562
Signed-off-by: Rémy Voet <ryv@odoo.com>
Co-authored-by: Julien Castiaux <juc@odoo.com>
This commit is contained in:
Rémy Voet (ryv)
2022-11-07 11:26:33 +01:00
co-authored by Julien Castiaux
parent 550c97bab1
commit f6c7ead359
3 changed files with 21 additions and 23 deletions
+16 -18
View File
@@ -6,7 +6,7 @@ import io
import pprint
import unittest
from odoo.tests.common import TransactionCase, can_import
from odoo.tests.common import TransactionCase, can_import, RecordCapturer
from odoo.modules.module import get_module_resource
from odoo.tools import mute_logger, pycompat
from odoo.addons.base_import.models.base_import import ImportValidationError
@@ -727,28 +727,26 @@ foo3,US,0,persons\n""",
['Joel', 'US', 'Portal', '', 'tag1', 'tag3'],
]
existing_partners = self.env['res.partner'].search_read([], ['id'])
import_wizard = self.env['base_import.import'].create({
'res_model': 'res.partner',
'file': '\n'.join([';'.join(partner_values) for partner_values in file_partner_values]),
'file_type': 'text/csv',
})
with RecordCapturer(self.env['res.partner'], []) as capture:
import_wizard = self.env['base_import.import'].create({
'res_model': 'res.partner',
'file': '\n'.join([';'.join(partner_values) for partner_values in file_partner_values]),
'file_type': 'text/csv',
})
results = import_wizard.execute_import(
['name', 'country_id', 'name', 'name', 'category_id', 'category_id'],
[],
{
'quoting': '"',
'separator': ';',
},
)
results = import_wizard.execute_import(
['name', 'country_id', 'name', 'name', 'category_id', 'category_id'],
[],
{
'quoting': '"',
'separator': ';',
},
)
# if result is empty, no import error
self.assertItemsEqual(results['messages'], [])
partners = self.env['res.partner'].search([
('id', 'not in', [existing_partner['id'] for existing_partner in existing_partners])
], order='id asc')
partners = capture.records
self.assertEqual(3, len(partners))
self.assertEqual('Mitchel Admin The Admin User', partners[0].name)
@@ -24,14 +24,14 @@ class TestWebsiteHrRecruitmentForm(odoo.tests.HttpCase):
# check result
self.assertEqual(len(capt.records), 2)
guru_applicant = capt.records[1]
guru_applicant = capt.records[0]
self.assertEqual(guru_applicant.partner_name, 'John Smith')
self.assertEqual(guru_applicant.email_from, 'john@smith.com')
self.assertEqual(guru_applicant.partner_mobile, '118.218')
self.assertEqual(html2plaintext(guru_applicant.description), '### [GURU] HR RECRUITMENT TEST DATA ###')
self.assertEqual(guru_applicant.job_id, job_guru)
internship_applicant = capt.records[0]
internship_applicant = capt.records[1]
self.assertEqual(internship_applicant.partner_name, 'Jack Doe')
self.assertEqual(internship_applicant.email_from, 'jack@doe.com')
self.assertEqual(internship_applicant.partner_mobile, '118.712')
+3 -3
View File
@@ -173,18 +173,18 @@ class RecordCapturer:
self._domain = domain
def __enter__(self):
self._before = self._model.search(self._domain)
self._before = self._model.search(self._domain, order='id')
self._after = None
return self
def __exit__(self, exc_type, exc_value, exc_traceback):
if exc_type is None:
self._after = self._model.search(self._domain) - self._before
self._after = self._model.search(self._domain, order='id') - self._before
@property
def records(self):
if self._after is None:
return self._model.search(self._domain) - self._before
return self._model.search(self._domain, order='id') - self._before
return self._after
# ------------------------------------------------------------