def testInvalidBoolExprInput(self): """Test invalid boolean expression. Test whether captures the exceptions caused by invalid boolean expression input. Note that only the lowercase and, or, not are allowed. """ with self.assertRaises(boolparse_lib.BoolParseError): boolparse_lib.BoolstrResult('', {'A'}) with self.assertRaises(TypeError): boolparse_lib.BoolstrResult(None, {'A'})
def testComplexBoolExpr(self): self.assertFalse(boolparse_lib.BoolstrResult('A and not B', {})) self.assertTrue(boolparse_lib.BoolstrResult('A and not B', {'A'})) self.assertFalse(boolparse_lib.BoolstrResult('A and not B', {'A', 'B'})) self.assertTrue(boolparse_lib.BoolstrResult('not (A and B)', {'A'})) self.assertFalse( boolparse_lib.BoolstrResult('not (A and B)', {'A', 'B'})) self.assertTrue(boolparse_lib.BoolstrResult('A or not B', {'A'})) self.assertTrue(boolparse_lib.BoolstrResult('A or not B', {'A', 'B'})) self.assertFalse(boolparse_lib.BoolstrResult('A or not B', {'B'})) self.assertTrue(boolparse_lib.BoolstrResult('A or not B', {'C'}))
def testVariousOperand(self): """Test on various operand format.""" self.assertFalse( boolparse_lib.BoolstrResult('A:foo and B:foo', {'A:foo'}))
def testCollectionInput(self): """Test whether handle different types of collection input.""" self.assertFalse(boolparse_lib.BoolstrResult('A', None)) self.assertTrue(boolparse_lib.BoolstrResult('A', ['A', 'A'])) self.assertFalse(boolparse_lib.BoolstrResult('not A', ('A', 'B', 'B')))
def testNotlogic(self): self.assertTrue(boolparse_lib.BoolstrResult('not A', {})) self.assertFalse(boolparse_lib.BoolstrResult('not A', {'A'})) self.assertFalse(boolparse_lib.BoolstrResult('not A', {'A', 'B'})) self.assertTrue(boolparse_lib.BoolstrResult('not A', {'B'})) self.assertTrue(boolparse_lib.BoolstrResult('not not A', {'A'}))
def testOrlogic(self): self.assertFalse(boolparse_lib.BoolstrResult('A or B', {})) self.assertTrue(boolparse_lib.BoolstrResult('A or B', {'B'})) self.assertTrue(boolparse_lib.BoolstrResult('A or B', {'A', 'B'})) self.assertTrue(boolparse_lib.BoolstrResult('A or B', {'A', 'C'})) self.assertFalse(boolparse_lib.BoolstrResult('A or B', {'C'}))
def testAndlogic(self): self.assertFalse(boolparse_lib.BoolstrResult('A and B', {})) self.assertFalse(boolparse_lib.BoolstrResult('A and B', {})) self.assertTrue(boolparse_lib.BoolstrResult('A and B', {'A', 'B', 'C'}))
def testSingleItem(self): self.assertFalse(boolparse_lib.BoolstrResult('A', {})) self.assertTrue(boolparse_lib.BoolstrResult('A', {'A', 'B'})) self.assertFalse(boolparse_lib.BoolstrResult('A', {'B'}))