@@ -1550,6 +1550,83 @@ def test__compare_with_order_by():
15501550 )
15511551 assert result ._compare ("other" ) == NotImplemented
15521552
1553+ @staticmethod
1554+ def test__compare_with_order_by_entity_key ():
1555+ def result (key_path ):
1556+ key_pb = entity_pb2 .Key (
1557+ partition_id = entity_pb2 .PartitionId (project_id = "testing" ),
1558+ path = [key_path ],
1559+ )
1560+ return _datastore_query ._Result (
1561+ result_type = None ,
1562+ result_pb = query_pb2 .EntityResult (entity = entity_pb2 .Entity (key = key_pb )),
1563+ order_by = [
1564+ query_module .PropertyOrder ("__key__" ),
1565+ ],
1566+ )
1567+
1568+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "a" )) < result (
1569+ entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "b" )
1570+ )
1571+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "b" )) > result (
1572+ entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "a" )
1573+ )
1574+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "a" )) != result (
1575+ entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "b" )
1576+ )
1577+
1578+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 1 )) < result (
1579+ entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 2 )
1580+ )
1581+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 2 )) > result (
1582+ entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 1 )
1583+ )
1584+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 1 )) != result (
1585+ entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 2 )
1586+ )
1587+
1588+ @staticmethod
1589+ def test__compare_with_order_by_key_property ():
1590+ def result (foo_key_path ):
1591+ foo_key = entity_pb2 .Key (
1592+ partition_id = entity_pb2 .PartitionId (project_id = "testing" ),
1593+ path = [foo_key_path ],
1594+ )
1595+
1596+ return _datastore_query ._Result (
1597+ result_type = None ,
1598+ result_pb = query_pb2 .EntityResult (
1599+ entity = entity_pb2 .Entity (
1600+ properties = {
1601+ "foo" : entity_pb2 .Value (key_value = foo_key ),
1602+ }
1603+ )
1604+ ),
1605+ order_by = [
1606+ query_module .PropertyOrder ("foo" ),
1607+ ],
1608+ )
1609+
1610+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "a" )) < result (
1611+ entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "b" )
1612+ )
1613+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "b" )) > result (
1614+ entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "a" )
1615+ )
1616+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "a" )) != result (
1617+ entity_pb2 .Key .PathElement (kind = "ThisKind" , name = "b" )
1618+ )
1619+
1620+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 1 )) < result (
1621+ entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 2 )
1622+ )
1623+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 2 )) > result (
1624+ entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 1 )
1625+ )
1626+ assert result (entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 1 )) != result (
1627+ entity_pb2 .Key .PathElement (kind = "ThisKind" , id = 2 )
1628+ )
1629+
15531630 @staticmethod
15541631 @mock .patch ("google.cloud.ndb._datastore_query.model" )
15551632 def test_entity_unsupported_result_type (model ):
0 commit comments