diff -r b74eed7e8b37 -r 24a873060692 test/unittest_selectors.py --- a/test/unittest_selectors.py Thu Apr 22 15:50:45 2010 +0200 +++ b/test/unittest_selectors.py Thu Apr 22 17:04:51 2010 +0200 @@ -87,6 +87,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):