From: Jim Bosch Date: Sun, 26 Jul 2020 18:53:15 +0000 (-0400) Subject: Test result types of binary operators on PostgreSQL range. X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=7b112aa4e1186cc6715f83811b9e961052a21d42;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git Test result types of binary operators on PostgreSQL range. These new tests are intended to fail; may want to squash this commit with the next one, which fixes them. --- diff --git a/test/dialect/postgresql/test_types.py b/test/dialect/postgresql/test_types.py index 9331f99105..c5c21eff48 100644 --- a/test/dialect/postgresql/test_types.py +++ b/test/dialect/postgresql/test_types.py @@ -2628,112 +2628,149 @@ class _RangeTypeCompilation(AssertsCompiledSQL, fixtures.TestBase): ) cls.col = table.c.range - def _test_clause(self, colclause, expected): + def _test_clause(self, colclause, expected, type_): self.assert_compile(colclause, expected) + assert colclause.type is type_ def test_where_equal(self): self._test_clause( - self.col == self._data_str, "data_table.range = %(range_1)s" + self.col == self._data_str, + "data_table.range = %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_where_not_equal(self): self._test_clause( - self.col != self._data_str, "data_table.range <> %(range_1)s" + self.col != self._data_str, + "data_table.range <> %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_where_is_null(self): - self._test_clause(self.col == None, "data_table.range IS NULL") + self._test_clause( + self.col == None, "data_table.range IS NULL", sqltypes.BOOLEANTYPE + ) def test_where_is_not_null(self): - self._test_clause(self.col != None, "data_table.range IS NOT NULL") + self._test_clause( + self.col != None, + "data_table.range IS NOT NULL", + sqltypes.BOOLEANTYPE, + ) def test_where_less_than(self): self._test_clause( - self.col < self._data_str, "data_table.range < %(range_1)s" + self.col < self._data_str, + "data_table.range < %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_where_greater_than(self): self._test_clause( - self.col > self._data_str, "data_table.range > %(range_1)s" + self.col > self._data_str, + "data_table.range > %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_where_less_than_or_equal(self): self._test_clause( - self.col <= self._data_str, "data_table.range <= %(range_1)s" + self.col <= self._data_str, + "data_table.range <= %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_where_greater_than_or_equal(self): self._test_clause( - self.col >= self._data_str, "data_table.range >= %(range_1)s" + self.col >= self._data_str, + "data_table.range >= %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_contains(self): self._test_clause( self.col.contains(self._data_str), "data_table.range @> %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_contained_by(self): self._test_clause( self.col.contained_by(self._data_str), "data_table.range <@ %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_overlaps(self): self._test_clause( self.col.overlaps(self._data_str), "data_table.range && %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_strictly_left_of(self): self._test_clause( - self.col << self._data_str, "data_table.range << %(range_1)s" + self.col << self._data_str, + "data_table.range << %(range_1)s", + sqltypes.BOOLEANTYPE, ) self._test_clause( self.col.strictly_left_of(self._data_str), "data_table.range << %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_strictly_right_of(self): self._test_clause( - self.col >> self._data_str, "data_table.range >> %(range_1)s" + self.col >> self._data_str, + "data_table.range >> %(range_1)s", + sqltypes.BOOLEANTYPE, ) self._test_clause( self.col.strictly_right_of(self._data_str), "data_table.range >> %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_not_extend_right_of(self): self._test_clause( self.col.not_extend_right_of(self._data_str), "data_table.range &< %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_not_extend_left_of(self): self._test_clause( self.col.not_extend_left_of(self._data_str), "data_table.range &> %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_adjacent_to(self): self._test_clause( self.col.adjacent_to(self._data_str), "data_table.range -|- %(range_1)s", + sqltypes.BOOLEANTYPE, ) def test_union(self): self._test_clause( - self.col + self.col, "data_table.range + data_table.range" + self.col + self.col, + "data_table.range + data_table.range", + self.col.type, ) def test_intersection(self): self._test_clause( - self.col * self.col, "data_table.range * data_table.range" + self.col * self.col, + "data_table.range * data_table.range", + self.col.type, ) def test_different(self): self._test_clause( - self.col - self.col, "data_table.range - data_table.range" + self.col - self.col, + "data_table.range - data_table.range", + self.col.type, )