mock motor AsyncIOMotorClient with uuid settings

I have AsyncIOMotorClient code as below.

def get_client():
    """
    Get Client.

    Get the client for the database connection.
    """
    return motor.motor_asyncio.AsyncIOMotorClient(
        os.getenv(
            "DB_CONN_STR",
            "mongodb://user:[email protected]:27017"
        ),
        uuidRepresentation='standard',
    )

in this, I am setting uuidRepresentation='standard' to make sure UUID will parse properly.

I use mongomock-motor and mock the client as below.

from mongomock_motor import AsyncMongoMockClient

class MockSession():
    client = AsyncMongoMockClient(
        uuidRepresentation='standard',
    )

def override_get_session():
    return MockSession()


app.dependency_overrides[get_session] = override_get_session

When I run testcase where it need UUID, it fail with below error.

app_client = <starlette.testclient.TestClient object at 0x10344a9d0>

    def test_valid_payload(app_client):
        payload = {
            "country": "ARE",
            "email": "[email protected]",
            "first_name": "TEst",
            "last_name": "Surname",
            "password": "PAssword@123",
            "phone": "+911234567890"
        }
>       response = app_client.post("/doctor/signup", json=payload)

tests/integration/doctor/test_post_signup.py:123:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
venv/lib/python3.11/site-packages/starlette/testclient.py:597: in post
    return super().post(
venv/lib/python3.11/site-packages/httpx/_client.py:1144: in post
    return self.request(
venv/lib/python3.11/site-packages/starlette/testclient.py:488: in request
    return super().request(
venv/lib/python3.11/site-packages/httpx/_client.py:825: in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
venv/lib/python3.11/site-packages/httpx/_client.py:914: in send
    response = self._send_handling_auth(
venv/lib/python3.11/site-packages/httpx/_client.py:942: in _send_handling_auth
    response = self._send_handling_redirects(
venv/lib/python3.11/site-packages/httpx/_client.py:979: in _send_handling_redirects
    response = self._send_single_request(request)
venv/lib/python3.11/site-packages/httpx/_client.py:1014: in _send_single_request
    response = transport.handle_request(request)
venv/lib/python3.11/site-packages/starlette/testclient.py:381: in handle_request
    raise exc
venv/lib/python3.11/site-packages/starlette/testclient.py:378: in handle_request
    portal.call(self.app, scope, receive, send)
venv/lib/python3.11/site-packages/anyio/from_thread.py:290: in call
    return cast(T_Retval, self.start_task_soon(func, *args).result())
/opt/homebrew/Cellar/[email protected]/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py:456: in result
    return self.__get_result()
/opt/homebrew/Cellar/[email protected]/3.11.10/Frameworks/Python.framework/Versions/3.11/lib/python3.11/concurrent/futures/_base.py:401: in __get_result
    raise self._exception
venv/lib/python3.11/site-packages/anyio/from_thread.py:221: in _call_func
    retval = await retval_or_awaitable
venv/lib/python3.11/site-packages/fastapi/applications.py:1054: in __call__
    await super().__call__(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/applications.py:113: in __call__
    await self.middleware_stack(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/middleware/errors.py:187: in __call__
    raise exc
venv/lib/python3.11/site-packages/starlette/middleware/errors.py:165: in __call__
    await self.app(scope, receive, _send)
venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py:62: in __call__
    await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/_exception_handler.py:62: in wrapped_app
    raise exc
venv/lib/python3.11/site-packages/starlette/_exception_handler.py:51: in wrapped_app
    await app(scope, receive, sender)
venv/lib/python3.11/site-packages/starlette/routing.py:715: in __call__
    await self.middleware_stack(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/routing.py:735: in app
    await route.handle(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/routing.py:288: in handle
    await self.app(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/routing.py:76: in app
    await wrap_app_handling_exceptions(app, request)(scope, receive, send)
venv/lib/python3.11/site-packages/starlette/_exception_handler.py:62: in wrapped_app
    raise exc
venv/lib/python3.11/site-packages/starlette/_exception_handler.py:51: in wrapped_app
    await app(scope, receive, sender)
venv/lib/python3.11/site-packages/starlette/routing.py:73: in app
    response = await f(request)
venv/lib/python3.11/site-packages/fastapi/routing.py:301: in app
    raw_response = await run_endpoint_function(
venv/lib/python3.11/site-packages/fastapi/routing.py:212: in run_endpoint_function
    return await dependant.call(**values)
src/noveraapi/routers/doctor.py:64: in create_doctor
    new_doctor = await collection.insert_one(
venv/lib/python3.11/site-packages/mongomock_motor/__init__.py:43: in wrapper
    return getattr(proxy_source, method_name)(*args, **kwargs)
venv/lib/python3.11/site-packages/mongomock/collection.py:497: in insert_one
    return InsertOneResult(self._insert(document, session), acknowledged=True)
venv/lib/python3.11/site-packages/mongomock_motor/patches.py:58: in wrapper
    return fn(data, *args, **kwargs)
venv/lib/python3.11/site-packages/mongomock/collection.py:552: in _insert
    BSON.encode(data, check_keys=check_keys)
venv/lib/python3.11/site-packages/bson/__init__.py:1429: in encode
    return cls(encode(document, check_keys, codec_options))
venv/lib/python3.11/site-packages/bson/__init__.py:1050: in encode
    return _dict_to_bson(document, check_keys, codec_options)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

cls = <class 'bson.binary.Binary'>, uuid = UUID('097cb7d0-1b2a-43a5-8686-a3525615d254'), uuid_representation = 0

    @classmethod
    def from_uuid(
        cls: Type[Binary], uuid: UUID, uuid_representation: int = UuidRepresentation.STANDARD
    ) -> Binary:
        """Create a BSON Binary object from a Python UUID.

        Creates a :class:`~bson.binary.Binary` object from a
        :class:`uuid.UUID` instance. Assumes that the native
        :class:`uuid.UUID` instance uses the byte-order implied by the
        provided ``uuid_representation``.

        Raises :exc:`TypeError` if `uuid` is not an instance of
        :class:`~uuid.UUID`.

        :param uuid: A :class:`uuid.UUID` instance.
        :param uuid_representation: A member of
            :class:`~bson.binary.UuidRepresentation`. Default:
            :const:`~bson.binary.UuidRepresentation.STANDARD`.
            See :ref:`handling-uuid-data-example` for details.

        .. versionadded:: 3.11
        """
        if not isinstance(uuid, UUID):
            raise TypeError("uuid must be an instance of uuid.UUID")

        if uuid_representation not in ALL_UUID_REPRESENTATIONS:
            raise ValueError(
                "uuid_representation must be a value from bson.binary.UuidRepresentation"
            )

        if uuid_representation == UuidRepresentation.UNSPECIFIED:
>           raise ValueError(
                "cannot encode native uuid.UUID with "
                "UuidRepresentation.UNSPECIFIED. UUIDs can be manually "
                "converted to bson.Binary instances using "
                "bson.Binary.from_uuid() or a different UuidRepresentation "
                "can be configured. See the documentation for "
                "UuidRepresentation for more information."
            )
E           ValueError: cannot encode native uuid.UUID with UuidRepresentation.UNSPECIFIED. UUIDs can be manually converted to bson.Binary instances using bson.Binary.from_uuid() or a different UuidRepresentation can be configured. See the documentation for UuidRepresentation for more information.

venv/lib/python3.11/site-packages/bson/binary.py:272: ValueError

how to make uuidRepresentation working in mock client ?

Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa Dịch vụ tổ chức sự kiện 5 sao Thông tin về chúng tôi Dịch vụ sinh nhật bé trai Dịch vụ sinh nhật bé gái Sự kiện trọn gói Các tiết mục giải trí Dịch vụ bổ trợ Tiệc cưới sang trọng Dịch vụ khai trương Tư vấn tổ chức sự kiện Hình ảnh sự kiện Cập nhật tin tức Liên hệ ngay Thuê chú hề chuyên nghiệp Tiệc tất niên cho công ty Trang trí tiệc cuối năm Tiệc tất niên độc đáo Sinh nhật bé Hải Đăng Sinh nhật đáng yêu bé Khánh Vân Sinh nhật sang trọng Bích Ngân Tiệc sinh nhật bé Thanh Trang Dịch vụ ông già Noel Xiếc thú vui nhộn Biểu diễn xiếc quay đĩa Dịch vụ tổ chức tiệc uy tín Khám phá dịch vụ của chúng tôi Tiệc sinh nhật cho bé trai Trang trí tiệc cho bé gái Gói sự kiện chuyên nghiệp Chương trình giải trí hấp dẫn Dịch vụ hỗ trợ sự kiện Trang trí tiệc cưới đẹp Khởi đầu thành công với khai trương Chuyên gia tư vấn sự kiện Xem ảnh các sự kiện đẹp Tin mới về sự kiện Kết nối với đội ngũ chuyên gia Chú hề vui nhộn cho tiệc sinh nhật Ý tưởng tiệc cuối năm Tất niên độc đáo Trang trí tiệc hiện đại Tổ chức sinh nhật cho Hải Đăng Sinh nhật độc quyền Khánh Vân Phong cách tiệc Bích Ngân Trang trí tiệc bé Thanh Trang Thuê dịch vụ ông già Noel chuyên nghiệp Xem xiếc khỉ đặc sắc Xiếc quay đĩa thú vị
Trang chủ Giới thiệu Sinh nhật bé trai Sinh nhật bé gái Tổ chức sự kiện Biểu diễn giải trí Dịch vụ khác Trang trí tiệc cưới Tổ chức khai trương Tư vấn dịch vụ Thư viện ảnh Tin tức - sự kiện Liên hệ Chú hề sinh nhật Trang trí YEAR END PARTY công ty Trang trí tất niên cuối năm Trang trí tất niên xu hướng mới nhất Trang trí sinh nhật bé trai Hải Đăng Trang trí sinh nhật bé Khánh Vân Trang trí sinh nhật Bích Ngân Trang trí sinh nhật bé Thanh Trang Thuê ông già Noel phát quà Biểu diễn xiếc khỉ Xiếc quay đĩa
Thiết kế website Thiết kế website Thiết kế website Cách kháng tài khoản quảng cáo Mua bán Fanpage Facebook Dịch vụ SEO Tổ chức sinh nhật