def testPhraseQuery(self):

        parser = CustomQueryParser("field", self.analyzer)

        query = parser.parse("singleTerm")
        self.assert_(TermQuery.instance_(query), "TermQuery")

        query = parser.parse("\"a phrase\"")
        self.assert_(SpanNearQuery.instance_(query), "SpanNearQuery")
    def testIdRangeQuery(self):

        parser = CustomQueryParser("field", self.analyzer)

        query = parser.parse("id:[37 TO 346]")
        self.assertEqual("id:[0000000037 TO 0000000346]",
                         query.toString("field"), "padded")

        searcher = IndexSearcher(self.directory, True)
        scoreDocs = searcher.search(query, 1000).scoreDocs
        self.assertEqual(310, len(scoreDocs))

        print parser.parse("special:[term TO *]")
        print parser.parse("special:[* TO term]")
    def testCustomQueryParser(self):

        parser = CustomQueryParser("field", self.analyzer)

        try:
            parser.parse("a?t")
            self.fail("Wildcard queries should not be allowed")
        except:
            # expected
            self.assert_(True)

        try:
            parser.parse("xunit~")
            self.fail("Fuzzy queries should not be allowed")
        except:
            # expected
            self.assert_(True)