def test_emulator_conditional_not_or(self):
     ''' Makes sure we can use the not with other operators '''
     parser = BaseParser("")
     self.assertTrue(parser.EvaluateConditional('!if FALSE NOT OR FALSE'))
     self.assertFalse(parser.EvaluateConditional('!if TRUE NOT OR FALSE'))
     self.assertFalse(parser.EvaluateConditional('!if FALSE NOT OR TRUE'))
     self.assertFalse(parser.EvaluateConditional('!if TRUE NOT OR TRUE'))
 def test_process_and_operation_conditional(self):
     parser = BaseParser("")
     self.assertFalse(parser.EvaluateConditional('!if TRUE AND FALSE'))
     self.assertFalse(parser.EvaluateConditional('!if FALSE AND TRUE'))
     self.assertTrue(parser.EvaluateConditional('!if TRUE AND TRUE'))
     self.assertTrue(parser.EvaluateConditional('!if TRUE && TRUE'))
     self.assertFalse(parser.EvaluateConditional('!if FALSE AND FALSE'))
     self.assertFalse(parser.EvaluateConditional('!if FALSE && FALSE'))
 def test_process_or_operation_conditional(self):
     parser = BaseParser("")
     self.assertTrue(parser.EvaluateConditional('!IF TRUE OR FALSE'))
     self.assertTrue(parser.EvaluateConditional('!if FALSE OR TRUE'))
     self.assertTrue(parser.EvaluateConditional('!if FALSE || TRUE'))
     self.assertTrue(parser.EvaluateConditional('!if TRUE OR TRUE'))
     self.assertFalse(parser.EvaluateConditional('!if FALSE OR FALSE'))
     self.assertFalse(parser.EvaluateConditional('!if FALSE || FALSE'))
Esempio n. 4
0
 def test_emulator_conditional_parens_order(self):
     ''' Makes sure the parenthesis affect the order of expressions '''
     parser = BaseParser("")
     self.assertFalse(
         parser.EvaluateConditional('!if TRUE OR FALSE AND FALSE'))
     self.assertTrue(
         parser.EvaluateConditional('!if TRUE OR (FALSE AND FALSE)'))
     parser.ResetParserState()
    def test_emulator_conditional_not_it_all(self):
        ''' Makes sure the parenthesis affect the order of expressions '''
        parser = BaseParser("")
        self.assertTrue(parser.EvaluateConditional('!if NOT FALSE OR FALSE'))
        self.assertFalse(parser.EvaluateConditional('!if NOT TRUE OR FALSE'))
        # check to make sure it works with parenthesis
        self.assertFalse(parser.EvaluateConditional('!if NOT(TRUE)'))
        self.assertTrue(parser.EvaluateConditional('!if NOT(FALSE)'))
        # make sure it works with the bang symbol
        self.assertFalse(parser.EvaluateConditional('!if !(TRUE)'))
        self.assertTrue(parser.EvaluateConditional('!if !(FALSE)'))

        parser.ResetParserState()
 def test_process_invalid_conditional(self):
     parser = BaseParser("")
     with self.assertRaises(RuntimeError):
         parser.EvaluateConditional('!if TRUE AND FALSE AND')
     with self.assertRaises(RuntimeError):
         parser.EvaluateConditional('TRUE AND FALSE AND')