📄 report.py
字号:
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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -