Skip to content

Commit 31d0a6d

Browse files
committed
[FIX] edi_*_oca: New way for FakeModelLoader
1 parent 04c98ea commit 31d0a6d

File tree

17 files changed

+348
-443
lines changed

17 files changed

+348
-443
lines changed

edi_component_oca/tests/test_edi_configuration.py

Lines changed: 34 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -40,66 +40,64 @@ def setUpClass(cls):
4040

4141
def setUp(self):
4242
super().setUp()
43-
FakeOutputGenerator.reset_faked()
44-
FakeOutputSender.reset_faked()
45-
FakeOutputChecker.reset_faked()
46-
self.consumer_record = self.env["edi.exchange.consumer.test"].create(
47-
{
48-
"name": "Test Consumer",
49-
"edi_config_ids": [
50-
(4, self.create_config.id),
51-
(4, self.write_config.id),
52-
],
53-
}
54-
)
55-
56-
@classmethod
57-
def _setup_records(cls): # pylint:disable=missing-return
58-
super()._setup_records()
59-
# Load fake models ->/
60-
cls.loader = FakeModelLoader(cls.env, cls.__module__)
61-
cls.loader.backup_registry()
43+
self.loader = FakeModelLoader(self.env, self.__module__)
44+
self.loader.backup_registry()
6245
from odoo.addons.edi_core_oca.tests.fake_models import EdiExchangeConsumerTest
6346

6447
EdiExchangeConsumerTest._edi_config_field_relation = lambda self: self.env[
6548
"edi.configuration"
6649
]
67-
# We need to override it, as we want to test the usage with components
50+
self.loader.update_registry((EdiExchangeConsumerTest,))
6851

69-
cls.loader.update_registry((EdiExchangeConsumerTest,))
70-
cls.exchange_type_out.exchange_filename_pattern = "{record.id}"
71-
cls.edi_configuration = cls.env["edi.configuration"]
72-
cls.create_config = cls.edi_configuration.create(
52+
FakeOutputGenerator.reset_faked()
53+
FakeOutputSender.reset_faked()
54+
FakeOutputChecker.reset_faked()
55+
56+
self.create_config = self.env["edi.configuration"].create(
7357
{
7458
"name": "Create Config",
7559
"active": True,
76-
"backend_id": cls.backend.id,
77-
"type_id": cls.exchange_type_out.id,
78-
"trigger_id": cls.env.ref(
60+
"backend_id": self.backend.id,
61+
"type_id": self.exchange_type_out.id,
62+
"trigger_id": self.env.ref(
7963
"edi_core_oca.edi_conf_trigger_record_create"
8064
).id,
81-
"model_id": cls.env["ir.model"]._get_id("edi.exchange.consumer.test"),
65+
"model_id": self.env["ir.model"]._get_id("edi.exchange.consumer.test"),
8266
"snippet_do": "record._edi_send_via_edi(conf.type_id)",
8367
}
8468
)
85-
cls.write_config = cls.edi_configuration.create(
69+
self.write_config = self.env["edi.configuration"].create(
8670
{
8771
"name": "Write Config 1",
8872
"active": True,
89-
"backend_id": cls.backend.id,
90-
"type_id": cls.exchange_type_out.id,
91-
"trigger_id": cls.env.ref(
73+
"backend_id": self.backend.id,
74+
"type_id": self.exchange_type_out.id,
75+
"trigger_id": self.env.ref(
9276
"edi_core_oca.edi_conf_trigger_record_write"
9377
).id,
94-
"model_id": cls.env["ir.model"]._get_id("edi.exchange.consumer.test"),
78+
"model_id": self.env["ir.model"]._get_id("edi.exchange.consumer.test"),
9579
"snippet_do": "record._edi_send_via_edi(conf.type_id)",
9680
}
9781
)
9882

83+
self.consumer_record = self.env["edi.exchange.consumer.test"].create(
84+
{
85+
"name": "Test Consumer",
86+
"edi_config_ids": [
87+
(4, self.create_config.id),
88+
(4, self.write_config.id),
89+
],
90+
}
91+
)
92+
9993
@classmethod
100-
def tearDownClass(cls):
101-
cls.loader.restore_registry()
102-
super().tearDownClass()
94+
def _setup_records(cls): # pylint:disable=missing-return
95+
super()._setup_records()
96+
cls.exchange_type_out.exchange_filename_pattern = "{record.id}"
97+
98+
def tearDown(self):
99+
self.loader.restore_registry()
100+
super().tearDown()
103101

104102
def test_edi_send_via_edi_config(self):
105103
# Check configuration on create

edi_core_oca/tests/test_backend_base.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -11,25 +11,22 @@
1111

1212

1313
class EDIBackendTestCaseBase(EDIBackendCommonTestCase):
14-
@classmethod
15-
def _setup_records(cls): # pylint:disable=missing-return
16-
super()._setup_records()
17-
# Load fake models ->/
18-
cls.loader = FakeModelLoader(cls.env, cls.__module__)
19-
cls.loader.backup_registry()
14+
def setUp(self):
15+
super().setUp()
16+
self.loader = FakeModelLoader(self.env, self.__module__)
17+
self.loader.backup_registry()
2018
from .fake_models import EdiTestExecution
2119

22-
cls.loader.update_registry((EdiTestExecution,))
23-
cls.ExecutionAbstractModel = cls.env["edi.framework.test.execution"]
24-
cls.model = cls.env["ir.model"]._get("edi.framework.test.execution")
25-
cls.exchange_type_in.receive_model_id = cls.model
26-
cls.exchange_type_in.process_model_id = cls.model
27-
cls.exchange_type_in.input_validate_model_id = cls.model
20+
self.loader.update_registry((EdiTestExecution,))
21+
self.ExecutionAbstractModel = self.env["edi.framework.test.execution"]
22+
self.model = self.env["ir.model"]._get("edi.framework.test.execution")
23+
self.exchange_type_in.receive_model_id = self.model
24+
self.exchange_type_in.process_model_id = self.model
25+
self.exchange_type_in.input_validate_model_id = self.model
2826

29-
@classmethod
30-
def tearDownClass(cls):
31-
cls.loader.restore_registry()
32-
super().tearDownClass()
27+
def tearDown(self):
28+
self.loader.restore_registry()
29+
super().tearDown()
3330

3431
@freeze_time("2020-10-21 10:00:00")
3532
def test_create_record(self):

edi_core_oca/tests/test_backend_input.py

Lines changed: 21 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -8,37 +8,6 @@
88

99

1010
class EDIBackendTestInputCase(EDIBackendCommonTestCase):
11-
@classmethod
12-
def setUpClass(cls):
13-
super().setUpClass()
14-
vals = {
15-
"model": cls.partner._name,
16-
"res_id": cls.partner.id,
17-
}
18-
cls.record = cls.backend.create_record("test_csv_input", vals)
19-
20-
@classmethod
21-
def _setup_records(cls): # pylint:disable=missing-return
22-
super()._setup_records()
23-
# Load fake models ->/
24-
cls.loader = FakeModelLoader(cls.env, cls.__module__)
25-
cls.loader.backup_registry()
26-
from .fake_models import EdiTestExecution
27-
28-
cls.loader.update_registry((EdiTestExecution,))
29-
cls.ExecutionAbstractModel = cls.env["edi.framework.test.execution"]
30-
cls.model = cls.env["ir.model"].search(
31-
[("model", "=", "edi.framework.test.execution")]
32-
)
33-
cls.exchange_type_in.receive_model_id = cls.model
34-
cls.exchange_type_in.process_model_id = cls.model
35-
cls.exchange_type_in.input_validate_model_id = cls.model
36-
37-
@classmethod
38-
def tearDownClass(cls):
39-
cls.loader.restore_registry()
40-
super().tearDownClass()
41-
4211
@classmethod
4312
def _setup_context(cls):
4413
return dict(
@@ -49,8 +18,29 @@ def _setup_context(cls):
4918

5019
def setUp(self):
5120
super().setUp()
21+
self.loader = FakeModelLoader(self.env, self.__module__)
22+
self.loader.backup_registry()
23+
from .fake_models import EdiTestExecution
24+
25+
self.loader.update_registry((EdiTestExecution,))
26+
self.ExecutionAbstractModel = self.env["edi.framework.test.execution"]
27+
self.model = self.env["ir.model"].search(
28+
[("model", "=", "edi.framework.test.execution")]
29+
)
30+
self.exchange_type_in.receive_model_id = self.model
31+
self.exchange_type_in.process_model_id = self.model
32+
self.exchange_type_in.input_validate_model_id = self.model
33+
vals = {
34+
"model": self.partner._name,
35+
"res_id": self.partner.id,
36+
}
37+
self.record = self.backend.create_record("test_csv_input", vals)
5238
self.ExecutionAbstractModel.reset_faked("receive")
5339

40+
def tearDown(self):
41+
self.loader.restore_registry()
42+
super().tearDown()
43+
5444
def test_receive_record_nothing_todo(self):
5545
self.backend.with_context(fake_output="yeah!").exchange_receive(self.record)
5646
self.assertEqual(self.record._get_file_content(), "")

edi_core_oca/tests/test_backend_output.py

Lines changed: 19 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,44 +15,33 @@
1515

1616

1717
class EDIBackendTestOutputCase(EDIBackendCommonTestCase):
18-
@classmethod
19-
def setUpClass(cls):
20-
super().setUpClass()
21-
22-
vals = {
23-
"model": cls.partner._name,
24-
"res_id": cls.partner.id,
25-
}
26-
cls.record = cls.backend.create_record("test_csv_output", vals)
27-
28-
@classmethod
29-
def _setup_records(cls): # pylint:disable=missing-return
30-
super()._setup_records()
31-
# Load fake models ->/
32-
cls.loader = FakeModelLoader(cls.env, cls.__module__)
33-
cls.loader.backup_registry()
18+
def setUp(self):
19+
super().setUp()
20+
self.loader = FakeModelLoader(self.env, self.__module__)
21+
self.loader.backup_registry()
3422
from .fake_models import EdiTestExecution
3523

36-
cls.loader.update_registry((EdiTestExecution,))
37-
cls.ExecutionAbstractModel = cls.env["edi.framework.test.execution"]
38-
cls.model = cls.env["ir.model"].search(
24+
self.loader.update_registry((EdiTestExecution,))
25+
self.ExecutionAbstractModel = self.env["edi.framework.test.execution"]
26+
self.model = self.env["ir.model"].search(
3927
[("model", "=", "edi.framework.test.execution")]
4028
)
41-
cls.exchange_type_out.generate_model_id = cls.model
42-
cls.exchange_type_out.send_model_id = cls.model
43-
cls.exchange_type_out.output_validate_model_id = cls.model
44-
45-
@classmethod
46-
def tearDownClass(cls):
47-
cls.loader.restore_registry()
48-
super().tearDownClass()
49-
50-
def setUp(self):
51-
super().setUp()
29+
self.exchange_type_out.generate_model_id = self.model
30+
self.exchange_type_out.send_model_id = self.model
31+
self.exchange_type_out.output_validate_model_id = self.model
32+
vals = {
33+
"model": self.partner._name,
34+
"res_id": self.partner.id,
35+
}
36+
self.record = self.backend.create_record("test_csv_output", vals)
5237
self.ExecutionAbstractModel.reset_faked("generate")
5338
self.ExecutionAbstractModel.reset_faked("send")
5439
self.ExecutionAbstractModel.reset_faked("check")
5540

41+
def tearDown(self):
42+
self.loader.restore_registry()
43+
super().tearDown()
44+
5645
def test_generate_record_output(self):
5746
self.record.with_context(fake_output="yeah!").action_exchange_generate()
5847
self.assertEqual(self.record._get_file_content(), "yeah!")

edi_core_oca/tests/test_backend_process.py

Lines changed: 20 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -15,42 +15,32 @@
1515

1616

1717
class EDIBackendTestProcessCase(EDIBackendCommonTestCase):
18-
@classmethod
19-
def setUpClass(cls):
20-
super().setUpClass()
21-
vals = {
22-
"model": cls.partner._name,
23-
"res_id": cls.partner.id,
24-
"exchange_file": base64.b64encode(b"1234"),
25-
}
26-
cls.record = cls.backend.create_record("test_csv_input", vals)
27-
28-
@classmethod
29-
def _setup_records(cls): # pylint:disable=missing-return
30-
super()._setup_records()
31-
# Load fake models ->/
32-
cls.loader = FakeModelLoader(cls.env, cls.__module__)
33-
cls.loader.backup_registry()
18+
def setUp(self):
19+
super().setUp()
20+
self.loader = FakeModelLoader(self.env, self.__module__)
21+
self.loader.backup_registry()
3422
from .fake_models import EdiTestExecution
3523

36-
cls.loader.update_registry((EdiTestExecution,))
37-
cls.ExecutionAbstractModel = cls.env["edi.framework.test.execution"]
38-
cls.model = cls.env["ir.model"].search(
24+
self.loader.update_registry((EdiTestExecution,))
25+
self.ExecutionAbstractModel = self.env["edi.framework.test.execution"]
26+
self.model = self.env["ir.model"].search(
3927
[("model", "=", "edi.framework.test.execution")]
4028
)
41-
cls.exchange_type_in.generate_model_id = cls.model
42-
cls.exchange_type_in.process_model_id = cls.model
43-
cls.exchange_type_in.input_validate_model_id = cls.model
44-
45-
@classmethod
46-
def tearDownClass(cls):
47-
cls.loader.restore_registry()
48-
super().tearDownClass()
49-
50-
def setUp(self):
51-
super().setUp()
29+
self.exchange_type_in.generate_model_id = self.model
30+
self.exchange_type_in.process_model_id = self.model
31+
self.exchange_type_in.input_validate_model_id = self.model
32+
vals = {
33+
"model": self.partner._name,
34+
"res_id": self.partner.id,
35+
"exchange_file": base64.b64encode(b"1234"),
36+
}
37+
self.record = self.backend.create_record("test_csv_input", vals)
5238
self.ExecutionAbstractModel.reset_faked("process")
5339

40+
def tearDown(self):
41+
self.loader.restore_registry()
42+
super().tearDown()
43+
5444
def test_process_record(self):
5545
self.record.write({"edi_exchange_state": "input_received"})
5646
with freeze_time("2020-10-22 10:00:00"):

0 commit comments

Comments
 (0)