コード例 #1
0
    def test_numcmp(self):
        self.failUnless(Query.is_valid("#(t < 3)"))
        self.failUnless(Query.is_valid("#(t <= 3)"))
        self.failUnless(Query.is_valid("#(t > 3)"))
        self.failUnless(Query.is_valid("#(t >= 3)"))
        self.failUnless(Query.is_valid("#(t = 3)"))
        self.failUnless(Query.is_valid("#(t != 3)"))

        self.failIf(Query.is_valid("#(t !> 3)"))
        self.failIf(Query.is_valid("#(t >> 3)"))
コード例 #2
0
    def test_numcmp(self):
        self.failUnless(Query.is_valid("#(t < 3)"))
        self.failUnless(Query.is_valid("#(t <= 3)"))
        self.failUnless(Query.is_valid("#(t > 3)"))
        self.failUnless(Query.is_valid("#(t >= 3)"))
        self.failUnless(Query.is_valid("#(t = 3)"))
        self.failUnless(Query.is_valid("#(t != 3)"))

        self.failIf(Query.is_valid("#(t !> 3)"))
        self.failIf(Query.is_valid("#(t >> 3)"))
コード例 #3
0
 def test_not(self):
     self.failUnless(Query.is_valid('t = !/a/'))
     self.failUnless(Query.is_valid('t = !!/a/'))
     self.failUnless(Query.is_valid('!t = "a"'))
     self.failUnless(Query.is_valid('!!t = "a"'))
     self.failUnless(Query.is_valid('t = !|(/a/, !"b")'))
     self.failUnless(Query.is_valid('t = !!|(/a/, !"b")'))
     self.failUnless(Query.is_valid('!|(t = /a/)'))
コード例 #4
0
 def test_not(self):
     self.failUnless(Query.is_valid('t = !/a/'))
     self.failUnless(Query.is_valid('t = !!/a/'))
     self.failUnless(Query.is_valid('!t = "a"'))
     self.failUnless(Query.is_valid('!!t = "a"'))
     self.failUnless(Query.is_valid('t = !|(/a/, !"b")'))
     self.failUnless(Query.is_valid('t = !!|(/a/, !"b")'))
     self.failUnless(Query.is_valid('!|(t = /a/)'))
コード例 #5
0
 def test_re(self):
     self.failUnless(Query.is_valid('t = /an re/'))
     self.failUnless(Query.is_valid('t = /an re/c'))
     self.failUnless(Query.is_valid('t = /an\\/re/'))
     self.failIf(Query.is_valid('t = /an/re/'))
     self.failUnless(Query.is_valid('t = /aaa/lsic'))
     self.failIf(Query.is_valid('t = /aaa/icslx'))
コード例 #6
0
 def test_re(self):
     self.failUnless(Query.is_valid('t = /an re/'))
     self.failUnless(Query.is_valid('t = /an re/c'))
     self.failUnless(Query.is_valid('t = /an\\/re/'))
     self.failIf(Query.is_valid('t = /an/re/'))
     self.failUnless(Query.is_valid('t = /aaa/lsic'))
     self.failIf(Query.is_valid('t = /aaa/icslx'))
コード例 #7
0
    def test_andor(self):
        self.failUnless(Query.is_valid('a = |(/a/, /b/)'))
        self.failUnless(Query.is_valid('a = |(/b/)'))
        self.failUnless(Query.is_valid('|(a = /b/, c = /d/)'))

        self.failUnless(Query.is_valid('a = &(/a/, /b/)'))
        self.failUnless(Query.is_valid('a = &(/b/)'))
        self.failUnless(Query.is_valid('&(a = /b/, c = /d/)'))
コード例 #8
0
    def test_andor(self):
        self.failUnless(Query.is_valid('a = |(/a/, /b/)'))
        self.failUnless(Query.is_valid('a = |(/b/)'))
        self.failUnless(Query.is_valid('|(a = /b/, c = /d/)'))

        self.failUnless(Query.is_valid('a = &(/a/, /b/)'))
        self.failUnless(Query.is_valid('a = &(/b/)'))
        self.failUnless(Query.is_valid('&(a = /b/, c = /d/)'))
コード例 #9
0
 def test_trailing(self):
     self.failIf(Query.is_valid('t = /an re/)'))
     self.failIf(Query.is_valid('|(a, b = /a/, c, d = /q/) woo'))
コード例 #10
0
 def test_nonsense(self):
     self.failIf(Query.is_valid('a string'))
     self.failIf(Query.is_valid('t = #(a > b)'))
     self.failIf(Query.is_valid("=a= = /b/"))
     self.failIf(Query.is_valid("a = &(/b//"))
     self.failIf(Query.is_valid("(a = &(/b//)"))
コード例 #11
0
 def test_emptylist(self):
     self.failIf(Query.is_valid("a = &()"))
     self.failIf(Query.is_valid("a = |()"))
     self.failIf(Query.is_valid("|()"))
     self.failIf(Query.is_valid("&()"))
コード例 #12
0
 def test_empty(self):
     self.failUnless(Query.is_valid(''))
     self.failUnless(Query.is_parsable(''))
     self.failUnless(Query(''))
コード例 #13
0
 def test_tag(self):
     self.failUnless(Query.is_valid('t = tag'))
     self.failUnless(Query.is_valid('t = !tag'))
     self.failUnless(Query.is_valid('t = |(tag, bar)'))
     self.failUnless(Query.is_valid('t = a"tag"'))
     self.failIf(Query.is_valid('t = a, tag'))
コード例 #14
0
 def test_tag(self):
     self.failUnless(Query.is_valid('t = tag'))
     self.failUnless(Query.is_valid('t = !tag'))
     self.failUnless(Query.is_valid('t = |(tag, bar)'))
     self.failUnless(Query.is_valid('t = a"tag"'))
     self.failIf(Query.is_valid('t = a, tag'))
コード例 #15
0
 def test_list(self):
     self.failUnless(Query.is_valid("#(t < 3, t > 9)"))
     self.failUnless(Query.is_valid("t = &(/a/, /b/)"))
     self.failUnless(Query.is_valid("s, t = |(/a/, /b/)"))
     self.failUnless(Query.is_valid("|(t = /a/, s = /b/)"))
コード例 #16
0
 def test_empty(self):
     self.failUnless(Query.is_valid(''))
     self.failUnless(Query.is_parsable(''))
     self.failUnless(Query(''))
コード例 #17
0
 def test_emptylist(self):
     self.failIf(Query.is_valid("a = &()"))
     self.failIf(Query.is_valid("a = |()"))
     self.failIf(Query.is_valid("|()"))
     self.failIf(Query.is_valid("&()"))
コード例 #18
0
 def test_nonsense(self):
     self.failIf(Query.is_valid('a string'))
     self.failIf(Query.is_valid('t = #(a > b)'))
     self.failIf(Query.is_valid("=a= = /b/"))
     self.failIf(Query.is_valid("a = &(/b//"))
     self.failIf(Query.is_valid("(a = &(/b//)"))
コード例 #19
0
 def test_trailing(self):
     self.failIf(Query.is_valid('t = /an re/)'))
     self.failIf(Query.is_valid('|(a, b = /a/, c, d = /q/) woo'))
コード例 #20
0
 def test_taglist(self):
     self.failUnless(Query.is_valid('a, b = /a/'))
     self.failUnless(Query.is_valid('a, b, c = |(/a/)'))
     self.failUnless(Query.is_valid('|(a, b = /a/, c, d = /q/)'))
     self.failIf(Query.is_valid('a = /a/, b'))
コード例 #21
0
 def test_taglist(self):
     self.failUnless(Query.is_valid('a, b = /a/'))
     self.failUnless(Query.is_valid('a, b, c = |(/a/)'))
     self.failUnless(Query.is_valid('|(a, b = /a/, c, d = /q/)'))
     self.failIf(Query.is_valid('a = /a/, b'))
コード例 #22
0
 def test_trinary(self):
     self.failUnless(Query.is_valid("#(2 < t < 3)"))
     self.failUnless(Query.is_valid("#(2 >= t > 3)"))
     # useless, but valid
     self.failUnless(Query.is_valid("#(5 > t = 2)"))
コード例 #23
0
 def test_list(self):
     self.failUnless(Query.is_valid("#(t < 3, t > 9)"))
     self.failUnless(Query.is_valid("t = &(/a/, /b/)"))
     self.failUnless(Query.is_valid("s, t = |(/a/, /b/)"))
     self.failUnless(Query.is_valid("|(t = /a/, s = /b/)"))
コード例 #24
0
 def test_nesting(self):
     self.failUnless(Query.is_valid("|(s, t = &(/a/, /b/),!#(2 > q > 3))"))
コード例 #25
0
 def test_trinary(self):
     self.failUnless(Query.is_valid("#(2 < t < 3)"))
     self.failUnless(Query.is_valid("#(2 >= t > 3)"))
     # useless, but valid
     self.failUnless(Query.is_valid("#(5 > t = 2)"))
コード例 #26
0
 def test_str(self):
     self.failUnless(Query.is_valid('t = "a str"'))
     self.failUnless(Query.is_valid('t = "a str"c'))
     self.failUnless(Query.is_valid('t = "a\\"str"'))
コード例 #27
0
 def test_nesting(self):
     self.failUnless(Query.is_valid("|(s, t = &(/a/, /b/),!#(2 > q > 3))"))
コード例 #28
0
 def test_str(self):
     self.failUnless(Query.is_valid('t = "a str"'))
     self.failUnless(Query.is_valid('t = "a str"c'))
     self.failUnless(Query.is_valid('t = "a\\"str"'))