summaryrefslogtreecommitdiff
path: root/test/sql/test_selectable.py
diff options
context:
space:
mode:
Diffstat (limited to 'test/sql/test_selectable.py')
-rw-r--r--test/sql/test_selectable.py31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/sql/test_selectable.py b/test/sql/test_selectable.py
index 7857681f3..30052a806 100644
--- a/test/sql/test_selectable.py
+++ b/test/sql/test_selectable.py
@@ -1556,3 +1556,34 @@ class AnnotationsTest(fixtures.TestBase):
# also pass, [ticket:2425]
eq_(str(or_(b, b._annotate({"foo": "bar"}))),
":bind_1 OR :bind_1")
+
+ def test_comparators_cleaned_out_construction(self):
+ c = column('a')
+
+ comp1 = c.comparator
+
+ c1 = c._annotate({"foo": "bar"})
+ comp2 = c1.comparator
+ assert comp1 is not comp2
+
+ def test_comparators_cleaned_out_reannotate(self):
+ c = column('a')
+
+ c1 = c._annotate({"foo": "bar"})
+ comp1 = c1.comparator
+
+ c2 = c1._annotate({"bat": "hoho"})
+ comp2 = c2.comparator
+
+ assert comp1 is not comp2
+
+ def test_comparator_cleanout_integration(self):
+ c = column('a')
+
+ c1 = c._annotate({"foo": "bar"})
+ comp1 = c1.comparator
+
+ c2 = c1._annotate({"bat": "hoho"})
+ comp2 = c2.comparator
+
+ assert (c2 == 5).left._annotations == {"foo": "bar", "bat": "hoho"}