Skip to content

Commit 0e205d8

Browse files
committed
add system tests for != null and != nan
1 parent ce9ef67 commit 0e205d8

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

tests/system/test_system.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1503,6 +1503,10 @@ def test_query_unary(client, cleanup, database):
15031503
# Add to clean-up.
15041504
cleanup(document1.delete)
15051505

1506+
_, document2 = collection.add({field_name: 123})
1507+
# Add to clean-up.
1508+
cleanup(document2.delete)
1509+
15061510
# 0. Query for null.
15071511
query0 = collection.where(filter=FieldFilter(field_name, "==", None))
15081512
values0 = list(query0.stream())

tests/system/test_system_async.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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)
14671488
async def test_collection_group_queries(client, cleanup, database):

0 commit comments

Comments
 (0)