diff --git a/packages/google-cloud-firestore/google/cloud/firestore_v1/async_query.py b/packages/google-cloud-firestore/google/cloud/firestore_v1/async_query.py index f9eb48086925..7f1ca7cab364 100644 --- a/packages/google-cloud-firestore/google/cloud/firestore_v1/async_query.py +++ b/packages/google-cloud-firestore/google/cloud/firestore_v1/async_query.py @@ -239,7 +239,7 @@ async def get( for order in self._orders: order.direction = _enum_from_direction( self.DESCENDING - if order.direction == self.ASCENDING + if order.direction.name == self.ASCENDING else self.ASCENDING ) self._limit_to_last = False diff --git a/packages/google-cloud-firestore/tests/unit/v1/test_async_query.py b/packages/google-cloud-firestore/tests/unit/v1/test_async_query.py index 6e2aa8393b33..7bc98147fee6 100644 --- a/packages/google-cloud-firestore/tests/unit/v1/test_async_query.py +++ b/packages/google-cloud-firestore/tests/unit/v1/test_async_query.py @@ -129,8 +129,11 @@ async def test_asyncquery_get_w_read_time(): @pytest.mark.asyncio -async def test_asyncquery_get_limit_to_last(): - from google.cloud import firestore +@pytest.mark.parametrize( + "direction, expected_direction", + [("DESCENDING", "ASCENDING"), ("ASCENDING", "DESCENDING")], +) +async def test_asyncquery_get_limit_to_last(direction, expected_direction): from google.cloud.firestore_v1.base_query import _enum_from_direction # Create a minimal fake GAPIC. @@ -156,15 +159,11 @@ async def test_asyncquery_get_limit_to_last(): # Execute the query and check the response. query = make_async_query(parent) - query = query.order_by( - "snooze", direction=firestore.AsyncQuery.DESCENDING - ).limit_to_last(2) + query = query.order_by("snooze", direction=direction).limit_to_last(2) returned = await query.get() assert isinstance(returned, list) - assert query._orders[0].direction == _enum_from_direction( - firestore.AsyncQuery.ASCENDING - ) + assert query._orders[0].direction == _enum_from_direction(expected_direction) assert len(returned) == 2 snapshot = returned[0]