def setUp(self): self.p = Parser()
class TestBase(unittest.TestCase): def setUp(self): self.p = Parser() def testInterface(self): verifyClass(ParserInterface, Parser) def parse(self, q): return self.p.parse(q,'') def testSimple(self): self._test('a' , WordNode('a')) self._test('1' , WordNode('1')) self._test('foo' , WordNode('foo')) self._test('123' , WordNode('123')) def testWithSeparators(self): self._test('a' , WordNode('a')) self._test('1' , WordNode('1')) self._test('foo' , WordNode('foo')) self._test('C++' , WordNode('C++')) def testGlobbing(self): self._test('foo*', TruncNode("foo")) self._test('%foo', SimNode("foo")) self._test('fo?o*', GlobNode("fo?o*")) self._test('?fo?o*', GlobNode("?fo?o*")) def testAnd(self): self._test('foo et bar', AndNode((WordNode("foo"),WordNode("bar"))) ) self._test('foo ET bar', AndNode((WordNode("foo"),WordNode("bar")))) self._test('foo et bar et sux', AndNode(((WordNode("foo"),AndNode((WordNode("bar"),WordNode("sux"))))))) self._test('C++ et Algol68' , AndNode((WordNode('C++'),WordNode("Algol68")))) def testOR(self): self._test('foo ou bar', OrNode((WordNode("foo"),WordNode("bar")))) self._test('foo OU bar', OrNode((WordNode("foo"),WordNode("bar")))) self._test('foo ou bar OU sux', OrNode((WordNode("foo"),OrNode((WordNode("bar"),WordNode("sux")))))) def testNear(self): self._test('foo pres bar', NearNode((WordNode("foo"),WordNode("bar")))) self._test('foo PRES bar', NearNode((WordNode("foo"),WordNode("bar")))) def testPhrase(self): self._test('"foo"', PhraseNode((WordNode("foo"),))) self._test('"foo bar"', PhraseNode((WordNode("foo"),WordNode("bar")))) self._test('"foo bar sucks"' , PhraseNode((WordNode("foo"),WordNode("bar"),WordNode("sucks")))) def testNot(self): self._test('SAUF bar', NotNode(WordNode('bar'))) self._test('sauf - bar', NotNode(NotNode(WordNode('bar')))) self._test('- bar', NotNode(WordNode('bar'))) self._test('foo et sauf bar', AndNode((WordNode('foo'),NotNode(WordNode('bar'))))) self._test('foo et -bar', AndNode((WordNode('foo'),NotNode(WordNode('bar'))))) def testBastardQueries(self): self._test('marc ou sophie', OrNode((WordNode('marc'), WordNode('sophie')))) self._test('and ou or ', OrNode((WordNode('and'), WordNode('or'))))