[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:
co-authored by
Julien Castiaux
parent
550c97bab1
commit
f6c7ead359
@@ -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')
|
||||
|
||||
@@ -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
|
||||
|
||||
# ------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user