Пример #1
0
    def test_query_or_complex(self):
        qset = query(
            "(Status = resolve & Age = 17) | (Status = open & Age = 13)")
        self.assertIsInstance(qset, Q)

        self.assertEqual(
            qset.resolve(), "(((Status = 'resolve') AND (Age = 17)) OR "
            "((Status = 'open') AND (Age = 13)))")
Пример #2
0
    def test_query_read_error(self):
        with self.assertRaises(ReadError) as err:
            query(">10")
        self.assertEqual(err.exception.err_type, ERROR_PARSER)

        with self.assertRaises(ReadError) as err:
            query("%")
        self.assertEqual(err.exception.err_type, ERROR_LEXER)

        with mock.patch('rtquery.utils.interpreter.'
                        'FilterQueryInterpreter.visit_literal') as m:
            m.side_effect = visitors.VisitError("blank")
            with self.assertRaises(ReadError) as err:
                query("Status=new")
        self.assertEqual(err.exception.err_type, ERROR_VISITOR)

        with mock.patch.object(operations, 'BINARY_OPERATIONS', {}):
            with self.assertRaises(ReadError) as err:
                query("Status=new")
        self.assertEqual(err.exception.err_type, ERROR_INTERPRETER)
Пример #3
0
 def test_query_type_error(self):
     with self.assertRaises(TypeError) as err:
         query("Status=-open")
     self.assertEqual(err.exception.args,
                      ("bad operand type for unary -: 'str'", ))
Пример #4
0
 def test_query_and_complex(self):
     qset = query("(Status = resolve & Owner = user) | Ticket > 1000")
     self.assertIsInstance(qset, Q)
     self.assertEqual(
         qset.resolve(),
         "(((Status = 'resolve') AND (Owner = 'user')) OR (Ticket > 1000))")
Пример #5
0
    def test_query_and_simple(self):
        qset = query("Status = resolve & Owner = user")
        self.assertIsInstance(qset, Q)

        self.assertEqual(qset.resolve(),
                         "((Status = 'resolve') AND (Owner = 'user'))")
Пример #6
0
 def test_query_or_simple(self):
     qset = query("(Status = resolve) | (Status = open)")
     self.assertIsInstance(qset, Q)
     self.assertEqual(qset.resolve(),
                      "((Status = 'resolve') OR (Status = 'open'))")
Пример #7
0
 def test_query_does_not_match(self):
     qset = query("Status !~ 'I like hot dogs'")
     self.assertIsInstance(qset, Q)
     self.assertEqual(qset.resolve(), "(Status NOT LIKE 'I like hot dogs')")
Пример #8
0
 def test_query_matches(self):
     qset = query("Status ~ 'I like hot dogs'")
     self.assertIsInstance(qset, Q)
     self.assertEqual(qset.resolve(), "(Status LIKE 'I like hot dogs')")
Пример #9
0
 def test_query_lt(self):
     qset = query("DaysPassed < 1337")
     self.assertIsInstance(qset, Q)
     self.assertEqual(qset.resolve(), "(DaysPassed < 1337)")
Пример #10
0
 def test_query_gt(self):
     qset = query("Age > 10")
     self.assertIsInstance(qset, Q)
     self.assertEqual(qset.resolve(), "(Age > 10)")
Пример #11
0
 def test_query_is_not(self):
     qset = query("Status != 'new'")
     self.assertIsInstance(qset, Q)
     self.assertEqual(qset.resolve(), "(Status != 'new')")