⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 query.py

📁 一款基于web的项目管理、bug跟踪系统。提供了与svn集成的操作界面、问题跟踪
💻 PY
📖 第 1 页 / 共 2 页
字号:
        self.assertEqual(['new', 'assigned', 'reopened'], args)        tickets = query.execute(self.req)    def test_constrained_by_owner_containing(self):        query = Query.from_string(self.env, 'owner~=someone', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(t.owner,'') LIKE %s ESCAPE '/'ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['%someone%'], args)        tickets = query.execute(self.req)    def test_constrained_by_owner_not_containing(self):        query = Query.from_string(self.env, 'owner!~=someone', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(t.owner,'') NOT LIKE %s ESCAPE '/'ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['%someone%'], args)        tickets = query.execute(self.req)    def test_constrained_by_owner_beginswith(self):        query = Query.from_string(self.env, 'owner^=someone', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(t.owner,'') LIKE %s ESCAPE '/'ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['someone%'], args)        tickets = query.execute(self.req)    def test_constrained_by_owner_endswith(self):        query = Query.from_string(self.env, 'owner$=someone', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(t.owner,'') LIKE %s ESCAPE '/'ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['%someone'], args)        tickets = query.execute(self.req)    def test_constrained_by_custom_field(self):        self.env.config.set('ticket-custom', 'foo', 'text')        query = Query.from_string(self.env, 'foo=something', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_value,foo.value AS fooFROM ticket AS t  LEFT OUTER JOIN ticket_custom AS foo ON (id=foo.ticket AND foo.name='foo')  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(foo.value,'')=%sORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['something'], args)        tickets = query.execute(self.req)    def test_grouped_by_custom_field(self):        self.env.config.set('ticket-custom', 'foo', 'text')        query = Query(self.env, group='foo', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_value,foo.value AS fooFROM ticket AS t  LEFT OUTER JOIN ticket_custom AS foo ON (id=foo.ticket AND foo.name='foo')  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)ORDER BY COALESCE(foo.value,'')='',foo.value,COALESCE(t.id,0)=0,t.id""")        self.assertEqual([], args)        tickets = query.execute(self.req)    def test_constrained_by_multiple_owners(self):        query = Query.from_string(self.env, 'owner=someone|someone_else',                                  order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(t.owner,'') IN (%s,%s)ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['someone', 'someone_else'], args)        tickets = query.execute(self.req)    def test_constrained_by_multiple_owners_not(self):        query = Query.from_string(self.env, 'owner!=someone|someone_else',                                  order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE COALESCE(t.owner,'') NOT IN (%s,%s)ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual(['someone', 'someone_else'], args)        tickets = query.execute(self.req)    def test_constrained_by_multiple_owners_contain(self):        query = Query.from_string(self.env, 'owner~=someone|someone_else',                                  order='id')        sql, args = query.get_sql()        self.assertEqual(['%someone%', '%someone/_else%'], args)        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)WHERE (COALESCE(t.owner,'') LIKE %s ESCAPE '/' OR COALESCE(t.owner,'') LIKE %s ESCAPE '/')ORDER BY COALESCE(t.id,0)=0,t.id""")        tickets = query.execute(self.req)    def test_constrained_by_empty_value_contains(self):        query = Query.from_string(self.env, 'owner~=|', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual([], args)        tickets = query.execute(self.req)    def test_constrained_by_empty_value_startswith(self):        query = Query.from_string(self.env, 'owner^=|', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual([], args)        tickets = query.execute(self.req)    def test_constrained_by_empty_value_endswith(self):        query = Query.from_string(self.env, 'owner$=|', order='id')        sql, args = query.get_sql()        self.assertEqualSQL(sql,"""SELECT t.id AS id,t.summary AS summary,t.owner AS owner,t.type AS type,t.status AS status,t.priority AS priority,t.milestone AS milestone,t.time AS time,t.changetime AS changetime,priority.value AS priority_valueFROM ticket AS t  LEFT OUTER JOIN enum AS priority ON (priority.type='priority' AND priority.name=priority)ORDER BY COALESCE(t.id,0)=0,t.id""")        self.assertEqual([], args)        tickets = query.execute(self.req)    def test_csv_escape(self):        query = Mock(get_columns=lambda: ['col1'],                     execute=lambda r,c: [{'id': 1,                                           'col1': 'value, needs escaped'}])        content, mimetype = QueryModule(self.env).export_csv(                                Mock(href=self.env.href, perm=MockPerm()),                                query)        self.assertEqual('col1\r\n"value, needs escaped"\r\n',                         content)class QueryLinksTestCase(unittest.TestCase):    def setUp(self):        self.env = EnvironmentStub(default_data=True)        self.query_module = QueryModule(self.env)        req = Mock(perm=MockPerm(), args={}, href=Href('/'))        self.formatter = LinkFormatter(self.env, Context.from_request(req))    def _format_link(self, query, label):        return str(self.query_module._format_link(self.formatter, 'query',                                                  query, label))    def test_empty_query(self):        self.assertEqual(self._format_link('', 'label'),                         '<em class="error">[Error: Query filter requires '                         'field and constraints separated by a "="]</em>')def suite():    suite = unittest.TestSuite()    suite.addTest(unittest.makeSuite(QueryTestCase, 'test'))    suite.addTest(unittest.makeSuite(QueryLinksTestCase, 'test'))    return suiteif __name__ == '__main__':    unittest.main()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -