def test_format_sql_pygments(): sql = 'select 1' html = format_sql(sql, {}) assert isinstance(html, Markup) assert html.startswith('<div') assert 'select' in html assert '1' in html
def test_format_sql_pygments_non_ascii(): sql = b"select 'abc \xff xyz'" html = format_sql(sql, {}) assert isinstance(html, Markup) assert html.startswith('<div') assert 'select' in html assert 'abc' in html assert 'xyz' in html
def sql_select(explain=False): statement, params = load_query(request.args['query']) engine = SQLAlchemy().get_engine(current_app) if explain: if engine.driver == 'pysqlite': statement = 'EXPLAIN QUERY PLAN\n%s' % statement else: statement = 'EXPLAIN\n%s' % statement result = engine.execute(statement, params) return g.toolbar.render('panels/sqlalchemy_select.html', { 'result': result.fetchall(), 'headers': result.keys(), 'sql': format_sql(statement, params), 'duration': float(request.args['duration']), })
def content(self): queries = get_queries() if not queries and not is_available(): return self.render('panels/sqlalchemy_error.html', { 'json_available': json_available, 'sqlalchemy_available': sqlalchemy_available, 'extension_used': extension_used(), 'recording_enabled': recording_enabled(), }) data = [] for query in queries: data.append({ 'duration': query.duration, 'sql': format_sql(query.statement, query.parameters), 'signed_query': dump_query(query.statement, query.parameters), 'context_long': query.context, 'context': format_fname(query.context) }) return self.render('panels/sqlalchemy.html', {'queries': data})
def test_format_sql_no_pygments_escape_html(no_pygments): sql = 'select x < 1' formatted = format_sql(sql, {}) assert not isinstance(formatted, Markup) assert Markup('%s') % formatted == 'select x < 1'
def test_format_sql_no_pygments_non_ascii(no_pygments): sql = b"select '\xff'" formatted = format_sql(sql, {}) assert formatted.startswith(u"select '")
def test_format_sql_no_pygments(no_pygments): sql = 'select 1' assert format_sql(sql, {}) == sql