I have been using AsyncMock for some of the test cases. AsyncMock is introduced only in Python 3.8 but I am using 3.7.
I am looking for some alternatives.
from unittest import mock
@mock.patch(
"project.celerytasks.embedder.BulkEmbedder.fetch_embedding",
mock.AsyncMock(return_value=embedding_response),
)
def test_document_embedding():
doc = {
"orgId": "orgtest"
}
doc = embed(document=doc, embedding_endpoint=embedding_endpoint)
assert doc["subdocuments"]
assert len(doc["title_embedding"]) == embedding_dim
assert len(doc["subdocuments"]) == len(doc["paragraphs"])
assert len(doc["subdocuments"][0][embedding_name]) == embedding_dim
Error:
____________________________________________________________________________________________________________________ ERROR collecting code/tests/test_embedder.py ____________________________________________________________________________________________________________________
tests/test_embedder.py:18: in <module>
mock.AsyncMock(return_value=embedding_response),
E AttributeError: module 'unittest.mock' has no attribute 'AsyncMock'
============================================================================================================================== short test summary info ===============================================================================================================================
ERROR tests/test_embedder.py - AttributeError: module 'unittest.mock' has no attribute 'AsyncMock'
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
================================================================================================================================== 1 error in 6.02s ==================================================================================================================================