PageRenderTime 6ms CodeModel.GetById 1ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/historical/sqlfilters_test.py

https://bitbucket.org/lindenlab/apiary/
Python | 54 lines | 25 code | 5 blank | 24 comment | 1 complexity | 4db61a9fc9c54ec9ace78226ef2e3f9f MD5 | raw file
 1#
 2# $LicenseInfo:firstyear=2010&license=mit$
 3# 
 4# Copyright (c) 2010, Linden Research, Inc.
 5# 
 6# Permission is hereby granted, free of charge, to any person obtaining a copy
 7# of this software and associated documentation files (the "Software"), to deal
 8# in the Software without restriction, including without limitation the rights
 9# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10# copies of the Software, and to permit persons to whom the Software is
11# furnished to do so, subject to the following conditions:
12# 
13# The above copyright notice and this permission notice shall be included in
14# all copies or substantial portions of the Software.
15# 
16# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22# THE SOFTWARE.
23# $/LicenseInfo$
24#
25
26import re
27import unittest
28
29class TestREBuilding(unittest.TestCase):
30
31    def testBasicPlan(self):
32        q = re.compile(r'[^`.\w]`?(?:foo|bar|baz)`?(?:[^`.\w]|$)')
33        self.assert_(q.search('FROM foo,'))
34        self.assert_(q.search('FROM bar,'))
35        self.assert_(q.search('FROM baz,'))
36        self.assert_(not q.search('FROM moo,'))
37        self.assert_(not q.search('FROM ffoo,'))
38        self.assert_(not q.search('FROM bazz,'))
39        self.assert_(q.search('FROM `foo`,'))
40        self.assert_(q.search('FROM `bar`,'))
41        self.assert_(q.search('FROM `baz`,'))
42        self.assert_(not q.search('FROM `moo`,'))
43        self.assert_(not q.search('FROM `ffoo`,'))
44        self.assert_(not q.search('FROM `bazz`,'))
45
46        self.assert_(q.search('FROM foo'))
47        self.assert_(q.search('(foo as f'))
48        self.assert_(not q.search('FROM schema.foo'))
49        self.assert_(not q.search('FROM `schema`.`foo`'))
50        self.assert_(not q.search('SELECT foo.col'))
51        self.assert_(not q.search('SELECT `foo`.`col`'))
52
53if __name__ == '__main__':
54    unittest.main()