Пример #1
0
    def test_extension(self):
        self.failUnless(Query.is_valid("@(name)"))
        self.failUnless(Query.is_valid("@(name: extension body)"))
        self.failUnless(Query.is_valid("@(name: body (with (nested) parens))"))
        self.failUnless(Query.is_valid(r"@(name: body \\ with \) escapes)"))

        self.failIf(Query.is_valid("@()"))
        self.failIf(Query.is_valid(r"@(invalid %name!\\)"))
        self.failIf(Query.is_valid("@(name: mismatched ( parenthesis)"))
        self.failIf(Query.is_valid(r"@(\()"))
        self.failIf(Query.is_valid("@(name:unclosed body"))
        self.failIf(Query.is_valid("@ )"))
Пример #2
0
    def test_extension(self):
        self.failUnless(Query.is_valid("@(name)"))
        self.failUnless(Query.is_valid("@(name: extension body)"))
        self.failUnless(Query.is_valid("@(name: body (with (nested) parens))"))
        self.failUnless(Query.is_valid(r"@(name: body \\ with \) escapes)"))

        self.failIf(Query.is_valid("@()"))
        self.failIf(Query.is_valid(r"@(invalid %name!\\)"))
        self.failIf(Query.is_valid("@(name: mismatched ( parenthesis)"))
        self.failIf(Query.is_valid(r"@(\()"))
        self.failIf(Query.is_valid("@(name:unclosed body"))
        self.failIf(Query.is_valid("@ )"))
Пример #3
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)"))
Пример #4
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)"))
Пример #5
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/)'))
Пример #6
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/)'))
Пример #7
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'))
     self.failUnless(Query.is_valid('tag with spaces = tag'))
Пример #8
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'))
     self.failUnless(Query.is_valid('tag with spaces = tag'))
Пример #9
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'))
Пример #10
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'))
Пример #11
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/)'))
Пример #12
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/)'))
Пример #13
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"'))
Пример #14
0
    def test_numexpr(self):
        self.failUnless(Query.is_valid("#(t < 3*4)"))
        self.failUnless(Query.is_valid("#(t * (1+r) < 7)"))
        self.failUnless(Query.is_valid("#(0 = t)"))
        self.failUnless(Query.is_valid("#(t < r < 9)"))
        self.failUnless(Query.is_valid("#((t-9)*r < -(6*2) = g*g-1)"))
        self.failUnless(Query.is_valid("#(t + 1 + 2 + -4 * 9 > g*(r/4 + 6))"))
        self.failUnless(Query.is_valid("#(date < 2010-4)"))
        self.failUnless(Query.is_valid("#(date < 2010 - 4)"))
        self.failUnless(Query.is_valid("#(date > 0000)"))
        self.failUnless(Query.is_valid("#(date > 00004)"))
        self.failUnless(Query.is_valid("#(t > 3 minutes)"))
        self.failUnless(Query.is_valid("#(added > today)"))
        self.failUnless(Query.is_valid("#(length < 5:00)"))
        self.failUnless(Query.is_valid("#(filesize > 5M)"))
        self.failUnless(Query.is_valid("#(added < 7 days ago)"))

        self.failIf(Query.is_valid("#(3*4)"))
        self.failIf(Query.is_valid("#(t = 3 + )"))
        self.failIf(Query.is_valid("#(t = -)"))
        self.failIf(Query.is_valid("#(-4 <)"))
        self.failIf(Query.is_valid("#(t < ()"))
        self.failIf(Query.is_valid("#((t +) - 1 > 8)"))
        self.failIf(Query.is_valid("#(t += 8)"))
Пример #15
0
 def test_nesting(self):
     self.failUnless(Query.is_valid("|(s, t = &(/a/, /b/),!#(2 > q > 3))"))
Пример #16
0
 def test_nesting(self):
     self.failUnless(Query.is_valid("|(s, t = &(/a/, /b/),!#(2 > q > 3))"))
Пример #17
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"'))
Пример #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_empty(self):
     self.failUnless(Query.is_valid(''))
     self.failUnless(Query.is_parsable(''))
     self.failUnless(Query(''))
Пример #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_empty(self):
     self.failUnless(Query.is_valid(''))
     self.failUnless(Query.is_parsable(''))
     self.failUnless(Query(''))
Пример #22
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'))
Пример #23
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//)"))
Пример #24
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("&()"))
Пример #25
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("&()"))
Пример #26
0
 def test_numcmp_func(self):
     self.assertTrue(Query.is_valid("#(t:min < 3)"))
     self.assertTrue(
         Query.is_valid("&(#(playcount:min = 0), #(added < 1 month ago))"))
Пример #27
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'))
Пример #28
0
    def test_numexpr(self):
        self.failUnless(Query.is_valid("#(t < 3*4)"))
        self.failUnless(Query.is_valid("#(t * (1+r) < 7)"))
        self.failUnless(Query.is_valid("#(0 = t)"))
        self.failUnless(Query.is_valid("#(t < r < 9)"))
        self.failUnless(Query.is_valid("#((t-9)*r < -(6*2) = g*g-1)"))
        self.failUnless(Query.is_valid("#(t + 1 + 2 + -4 * 9 > g*(r/4 + 6))"))
        self.failUnless(Query.is_valid("#(date < 2010-4)"))
        self.failUnless(Query.is_valid("#(date < 2010 - 4)"))
        self.failUnless(Query.is_valid("#(date > 0000)"))
        self.failUnless(Query.is_valid("#(date > 00004)"))
        self.failUnless(Query.is_valid("#(t > 3 minutes)"))
        self.failUnless(Query.is_valid("#(added > today)"))
        self.failUnless(Query.is_valid("#(length < 5:00)"))
        self.failUnless(Query.is_valid("#(filesize > 5M)"))
        self.failUnless(Query.is_valid("#(added < 7 days ago)"))

        self.failIf(Query.is_valid("#(3*4)"))
        self.failIf(Query.is_valid("#(t = 3 + )"))
        self.failIf(Query.is_valid("#(t = -)"))
        self.failIf(Query.is_valid("#(-4 <)"))
        self.failIf(Query.is_valid("#(t < ()"))
        self.failIf(Query.is_valid("#((t +) - 1 > 8)"))
        self.failIf(Query.is_valid("#(t += 8)"))
Пример #29
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'))
Пример #30
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)"))
Пример #31
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/)"))
Пример #32
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/)"))
Пример #33
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)"))
Пример #34
0
 def test_numcmp_func(self):
     self.assertTrue(Query.is_valid("#(t:min < 3)"))
     self.assertTrue(
         Query.is_valid("&(#(playcount:min = 0), #(added < 1 month ago))"))