98 csel = AndSelector(sel, Selector()) |
98 csel = AndSelector(sel, Selector()) |
99 self.assertIs(csel.search_selector(implements), sel) |
99 self.assertIs(csel.search_selector(implements), sel) |
100 csel = AndSelector(Selector(), sel) |
100 csel = AndSelector(Selector(), sel) |
101 self.assertIs(csel.search_selector(implements), sel) |
101 self.assertIs(csel.search_selector(implements), sel) |
102 |
102 |
|
103 def test_inplace_and(self): |
|
104 selector = _1_() |
|
105 selector &= _1_() |
|
106 selector &= _1_() |
|
107 self.assertEquals(selector(None), 3) |
|
108 selector = _1_() |
|
109 selector &= _0_() |
|
110 selector &= _1_() |
|
111 self.assertEquals(selector(None), 0) |
|
112 selector = _0_() |
|
113 selector &= _1_() |
|
114 selector &= _1_() |
|
115 self.assertEquals(selector(None), 0) |
|
116 selector = _0_() |
|
117 selector &= _0_() |
|
118 selector &= _0_() |
|
119 self.assertEquals(selector(None), 0) |
|
120 |
|
121 def test_inplace_or(self): |
|
122 selector = _1_() |
|
123 selector |= _1_() |
|
124 selector |= _1_() |
|
125 self.assertEquals(selector(None), 1) |
|
126 selector = _1_() |
|
127 selector |= _0_() |
|
128 selector |= _1_() |
|
129 self.assertEquals(selector(None), 1) |
|
130 selector = _0_() |
|
131 selector |= _1_() |
|
132 selector |= _1_() |
|
133 self.assertEquals(selector(None), 1) |
|
134 selector = _0_() |
|
135 selector |= _0_() |
|
136 selector |= _0_() |
|
137 self.assertEquals(selector(None), 0) |
|
138 |
103 |
139 |
104 class ImplementsSelectorTC(CubicWebTC): |
140 class ImplementsSelectorTC(CubicWebTC): |
105 def test_etype_priority(self): |
141 def test_etype_priority(self): |
106 req = self.request() |
142 req = self.request() |
107 cls = self.vreg['etypes'].etype_class('File') |
143 cls = self.vreg['etypes'].etype_class('File') |