report.py

来自「一款基于web的项目管理、bug跟踪系统。提供了与svn集成的操作界面、问题跟踪」· Python 代码 · 共 67 行

PY
67
字号
from trac.db.mysql_backend import MySQLConnectionfrom trac.ticket.report import ReportModulefrom trac.test import EnvironmentStub, Mockfrom trac.web.api import Request, RequestDoneimport unittestfrom StringIO import StringIOclass MockMySQLConnection(MySQLConnection):    def __init__(self):        passclass ReportTestCase(unittest.TestCase):    def setUp(self):        self.env = EnvironmentStub()        self.report_module = ReportModule(self.env)    def _make_environ(self, scheme='http', server_name='example.org',                      server_port=80, method='GET', script_name='/trac',                      **kwargs):        environ = {'wsgi.url_scheme': scheme, 'wsgi.input': StringIO(''),                   'REQUEST_METHOD': method, 'SERVER_NAME': server_name,                   'SERVER_PORT': server_port, 'SCRIPT_NAME': script_name}        environ.update(kwargs)        return environ    def test_sub_var_no_quotes(self):        sql, args = self.report_module.sql_sub_vars("$VAR", {'VAR': 'value'})        self.assertEqual("%s", sql)        self.assertEqual(['value'], args)    def test_sub_var_quotes(self):        sql, args = self.report_module.sql_sub_vars("'$VAR'", {'VAR': 'value'})        self.assertEqual("''||%s||''", sql)        self.assertEqual(['value'], args)    def test_sub_var_mysql(self):        env = EnvironmentStub()        env.db = MockMySQLConnection()        sql, args = ReportModule(env).sql_sub_vars("'$VAR'", {'VAR': 'value'})        self.assertEqual("concat('', %s, '')", sql)        self.assertEqual(['value'], args)    def test_csv_escape(self):        buf = StringIO()        def start_response(status, headers):            return buf.write        environ = self._make_environ()        req = Request(environ, start_response)        cols = ['TEST_COL']        rows = [('value, needs escaped',)]        try:            self.report_module._send_csv(req, cols, rows)        except RequestDone:            pass        self.assertEqual('TEST_COL\r\n"value, needs escaped"\r\n',                         buf.getvalue())def suite():    return unittest.makeSuite(ReportTestCase, 'test')if __name__ == '__main__':    unittest.main()

⌨️ 快捷键说明

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