test/unittest_selectors.py
branchstable
changeset 5425 7c84e3f370de
parent 5423 e15abfdcce38
child 5426 0d4853a6e5ee
--- a/test/unittest_selectors.py	Wed Apr 28 10:06:01 2010 +0200
+++ b/test/unittest_selectors.py	Wed Apr 28 12:21:48 2010 +0200
@@ -100,6 +100,42 @@
         csel = AndSelector(Selector(), sel)
         self.assertIs(csel.search_selector(implements), sel)
 
+    def test_inplace_and(self):
+        selector = _1_()
+        selector &= _1_()
+        selector &= _1_()
+        self.assertEquals(selector(None), 3)
+        selector = _1_()
+        selector &= _0_()
+        selector &= _1_()
+        self.assertEquals(selector(None), 0)
+        selector = _0_()
+        selector &= _1_()
+        selector &= _1_()
+        self.assertEquals(selector(None), 0)
+        selector = _0_()
+        selector &= _0_()
+        selector &= _0_()
+        self.assertEquals(selector(None), 0)
+
+    def test_inplace_or(self):
+        selector = _1_()
+        selector |= _1_()
+        selector |= _1_()
+        self.assertEquals(selector(None), 1)
+        selector = _1_()
+        selector |= _0_()
+        selector |= _1_()
+        self.assertEquals(selector(None), 1)
+        selector = _0_()
+        selector |= _1_()
+        selector |= _1_()
+        self.assertEquals(selector(None), 1)
+        selector = _0_()
+        selector |= _0_()
+        selector |= _0_()
+        self.assertEquals(selector(None), 0)
+
 
 class ImplementsSelectorTC(CubicWebTC):
     def test_etype_priority(self):