diff --git a/specifyweb/backend/stored_queries/tests/test_query_ops.py b/specifyweb/backend/stored_queries/tests/test_query_ops.py index 3a06561386d..89908deaffc 100644 --- a/specifyweb/backend/stored_queries/tests/test_query_ops.py +++ b/specifyweb/backend/stored_queries/tests/test_query_ops.py @@ -22,4 +22,56 @@ def test_op_like_underscore_wildcard(self): self.assert_op_sql(self.ops.op_like, "202_", '"catalogNumber" LIKE \'202_\'') def test_op_like_no_wildcard(self): - self.assert_op_sql(self.ops.op_like, "exact", '"catalogNumber" LIKE \'exact\'') \ No newline at end of file + self.assert_op_sql(self.ops.op_like, "exact", '"catalogNumber" LIKE \'exact\'') + + def test_op_equals_basic(self): + self.assert_op_sql(self.ops.op_equals, "test-value", '"catalogNumber" = \'test-value\'') + + def test_op_equals_empty_string(self): + self.assert_op_sql(self.ops.op_equals, "", '"catalogNumber" = \'\'') # for empty strings + + def test_op_equals_number_string(self): + self.assert_op_sql(self.ops.op_equals, "123", '"catalogNumber" = \'123\'') # for numbers as string + + def test_op_greaterthan_basic(self): + self.assert_op_sql(self.ops.op_greaterthan, "100", '"catalogNumber" > \'100\'') + + def test_op_lessthan_basic(self): + self.assert_op_sql(self.ops.op_lessthan, "100", '"catalogNumber" < \'100\'') + + def test_op_greaterthanequals_basic(self): + self.assert_op_sql(self.ops.op_greaterthanequals, "100", '"catalogNumber" >= \'100\'') + + def test_op_lessthanequals_basic(self): + self.assert_op_sql(self.ops.op_lessthanequals, "100", '"catalogNumber" <= \'100\'') + + def test_op_between_basic(self): + self.assert_op_sql(self.ops.op_between, "10,20", '"catalogNumber" BETWEEN \'10\' AND \'20\'') + + def test_op_contains_basic(self): + self.assert_op_sql(self.ops.op_contains, "test", '"catalogNumber" LIKE \'%\' || \'test\' || \'%\'') + + def test_op_in_basic(self): + self.assert_op_sql(self.ops.op_in, "a,b", '"catalogNumber" IN (\'a\', \'b\')') + + def test_op_startswith_basic(self): + self.assert_op_sql(self.ops.op_startswith, "test", '"catalogNumber" LIKE \'test%\'') + + def test_op_endswith_basic(self): + self.assert_op_sql(self.ops.op_endswith, "test", '"catalogNumber" LIKE \'%test\'') + + def test_op_empty_basic(self): + self.assert_op_sql(self.ops.op_empty, "", '"catalogNumber" IS NULL') + + def test_op_true_basic(self): + self.assert_op_sql(self.ops.op_true, "", '"catalogNumber" = true') + + def test_op_false_basic(self): + self.assert_op_sql(self.ops.op_false, "", '"catalogNumber" = false') + + def test_op_trueornull_basic(self): + self.assert_op_sql(self.ops.op_trueornull, "", '"catalogNumber" = true OR "catalogNumber" IS NULL') + + def test_op_falseornull_basic(self): + self.assert_op_sql(self.ops.op_falseornull, "", '"catalogNumber" = false OR "catalogNumber" IS NULL') + \ No newline at end of file