Esempio n. 1
0
    def testTokenize(self):
        # Test regular, expected tokens
        query = "Select name anothername\tyetAThirdName\nAndAnother(Something(else)) and, another"

        self.assertSequenceEqual(
            QueryGrammar.tokenizeQuery(query),
            ("Select", "name", "anothername", "yetAThirdName", "AndAnother", "(", "Something", "(", "else", ")", ")",
             "and", ",", "another")
        )

        # Test condition tokens
        query = "a > < <= >= + - / % * != = ><<=>=+-/%*"

        self.assertSequenceEqual(
            QueryGrammar.tokenizeQuery(query),
            ("a", ">", "<", "<=", ">=", "+", "-", "/", "%", "*", "!=", "=", ">", "<", "<=", ">=", "+", "-", "/", "%", "*")
        )
Esempio n. 2
0
    def __init__(self, query):
        queryTokens = tokenizeQuery(query)

        if len(queryTokens) == 0:
            raise Exception("No query given")

        elif queryTokens[0].lower() != self.__class__.__name__.lower():
            raise Exception("%s called for a %s query" % (self.__class__.__name__, queryTokens[0]))

        if self.queryParser is None:
            self.__class__.queryParser = QueryParser(self.__class__)

        self.queryParser.populate(self, queryTokens[1:])
Esempio n. 3
0
    def __init__(self, query):
        queryTokens = tokenizeQuery(query)

        if len(queryTokens) == 0:
            raise Exception("No query given")

        elif queryTokens[0].lower() != self.__class__.__name__.lower():
            raise Exception("%s called for a %s query" %
                            (self.__class__.__name__, queryTokens[0]))

        if self.queryParser is None:
            self.__class__.queryParser = QueryParser(self.__class__)

        self.queryParser.populate(self, queryTokens[1:])