Files
Wiki/Odoo Module Testing.md
T

34 lines
1.3 KiB
Markdown

---
kind: howto
lang: en
section: dev
---
The test of Odoo modules are unit test. The module functionality must be tested in isolation of external systems.
Often it is required to mock the request and reponse of external systems.
### Mocking
Here is an example of a test that mocks a `_uc_download_file` method.
```python
def _mock_uc_download_file(self, uuid):
image_file = get_module_resource("legal_advice_fastapi", "tests/odoo.png")
with open(image_file, "rb") as image:
return image.read()
def test_post_attachment(self):
interaction = self.test_interaction_question
data = [InteractionAttachment(**{"filename": "odoo.png", "uuid": "238bdee0-1b93-4797-a016-fbee69dda570"})]
with mock.patch.object(type(interaction), "_uc_download_file", new=self._mock_uc_download_file):
response = post_attachment(self.env, self.authorisation, interaction.id, data)
self.assertEqual(response.status_code, 204)
self.assertEqual(len(interaction.text_attachment_ids), 1)
self.assertEqual(interaction.text_attachment_ids[0].name, "odoo.png")
self.assertEqual(
interaction.text_attachment_ids[0].raw, self._mock_uc_download_file("238bdee0-1b93-4797-a016-fbee69dda570")
)
```