@@ -1444,6 +1444,10 @@ async def test_query_unary(client, cleanup, database):
14441444 # Add to clean-up.
14451445 cleanup (document1 .delete )
14461446
1447+ _ , document2 = await collection .add ({field_name : 123 })
1448+ # Add to clean-up.
1449+ cleanup (document2 .delete )
1450+
14471451 # 0. Query for null.
14481452 query0 = collection .where (filter = FieldFilter (field_name , "==" , None ))
14491453 values0 = [i async for i in query0 .stream ()]
@@ -1462,6 +1466,23 @@ async def test_query_unary(client, cleanup, database):
14621466 assert len (data1 ) == 1
14631467 assert math .isnan (data1 [field_name ])
14641468
1469+ # 2. Query for not null
1470+ query2 = collection .where (filter = FieldFilter (field_name , "!=" , None ))
1471+ values2 = [i async for i in query2 .stream ()]
1472+ assert len (values2 ) == 2
1473+ # should fetch documents 1 (NaN) and 2 (int)
1474+ assert any (snapshot .reference ._path == document1 ._path for snapshot in values2 )
1475+ assert any (snapshot .reference ._path == document2 ._path for snapshot in values2 )
1476+
1477+ # 3. Query for not NAN.
1478+ query3 = collection .where (filter = FieldFilter (field_name , "!=" , nan_val ))
1479+ values3 = [i async for i in query3 .stream ()]
1480+ assert len (values3 ) == 1
1481+ snapshot3 = values3 [0 ]
1482+ assert snapshot3 .reference ._path == document2 ._path
1483+ # only document2 is not NaN
1484+ assert snapshot3 .to_dict () == {field_name : 123 }
1485+
14651486
14661487@pytest .mark .parametrize ("database" , [None , FIRESTORE_OTHER_DB ], indirect = True )
14671488async def test_collection_group_queries (client , cleanup , database ):
0 commit comments