Skip to content

Commit 8e0c042

Browse files
Merge pull request #618 from Labelbox/kkim/fix_test_filtering
[AL-0] Fix test_filtering intermittent failures
2 parents bcb23d8 + e38b55b commit 8e0c042

File tree

1 file changed

+28
-14
lines changed

1 file changed

+28
-14
lines changed

tests/integration/test_filtering.py

Lines changed: 28 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
from labelbox.exceptions import InvalidQueryError
55

66

7+
# Avoid assertions using equality to prevent intermittent failures due to
8+
# other builds simultaneously adding projects to test org
79
def test_where(client):
810
p_a = client.create_project(name="a")
911
p_b = client.create_project(name="b")
@@ -17,13 +19,19 @@ def _get(f, where=None):
1719
def get(where=None):
1820
return _get(client.get_projects, where)
1921

20-
assert get() == {p_a.uid, p_b.uid, p_c.uid}
21-
assert get(Project.name == "a") == {p_a.uid}
22-
assert get(Project.name != "b") == {p_a.uid, p_c.uid}
23-
assert get(Project.name > "b") == {p_c.uid}
24-
assert get(Project.name < "b") == {p_a.uid}
25-
assert get(Project.name >= "b") == {p_b.uid, p_c.uid}
26-
assert get(Project.name <= "b") == {p_a.uid, p_b.uid}
22+
assert {p_a.uid, p_b.uid, p_c.uid}.issubset(get())
23+
e_a = get(Project.name == "a")
24+
assert p_a.uid in e_a and p_b.uid not in e_a and p_c.uid not in e_a
25+
not_b = get(Project.name != "b")
26+
assert {p_a.uid, p_c.uid}.issubset(not_b) and p_b.uid not in not_b
27+
gt_b = get(Project.name > "b")
28+
assert p_c.uid in gt_b and p_a.uid not in gt_b and p_b.uid not in gt_b
29+
lt_b = get(Project.name < "b")
30+
assert p_a.uid in lt_b and p_b.uid not in lt_b and p_c.uid not in lt_b
31+
ge_b = get(Project.name >= "b")
32+
assert {p_b.uid, p_c.uid}.issubset(ge_b) and p_a.uid not in ge_b
33+
le_b = get(Project.name <= "b")
34+
assert {p_a.uid, p_b.uid}.issubset(le_b) and p_c.uid not in le_b
2735

2836
dataset = client.create_dataset(name="Dataset")
2937
p_a.datasets.connect(dataset)
@@ -33,13 +41,19 @@ def get(where=None):
3341
def get(where=None):
3442
return _get(dataset.projects, where)
3543

36-
assert get() == {p_a.uid, p_b.uid, p_c.uid}
37-
assert get(Project.name == "a") == {p_a.uid}
38-
assert get(Project.name != "b") == {p_a.uid, p_c.uid}
39-
assert get(Project.name > "b") == {p_c.uid}
40-
assert get(Project.name < "b") == {p_a.uid}
41-
assert get(Project.name >= "b") == {p_b.uid, p_c.uid}
42-
assert get(Project.name <= "b") == {p_a.uid, p_b.uid}
44+
assert {p_a.uid, p_b.uid, p_c.uid}.issubset(get())
45+
e_a = get(Project.name == "a")
46+
assert p_a.uid in e_a and p_b.uid not in e_a and p_c.uid not in e_a
47+
not_b = get(Project.name != "b")
48+
assert {p_a.uid, p_c.uid}.issubset(not_b) and p_b.uid not in not_b
49+
gt_b = get(Project.name > "b")
50+
assert p_c.uid in gt_b and p_a.uid not in gt_b and p_b.uid not in gt_b
51+
lt_b = get(Project.name < "b")
52+
assert p_a.uid in lt_b and p_b.uid not in lt_b and p_c.uid not in lt_b
53+
ge_b = get(Project.name >= "b")
54+
assert {p_b.uid, p_c.uid}.issubset(ge_b) and p_a.uid not in ge_b
55+
le_b = get(Project.name <= "b")
56+
assert {p_a.uid, p_b.uid}.issubset(le_b) and p_c.uid not in le_b
4357

4458
dataset.delete()
4559
p_a.delete()

0 commit comments

Comments
 (0)