50 lines
2.1 KiB
Python
50 lines
2.1 KiB
Python
# fmt: off
|
|
|
|
import pytest
|
|
import subprocess
|
|
import sys
|
|
from typing import List
|
|
from conftest import ShellTest
|
|
import os
|
|
|
|
lineitem_ddl = 'CREATE TABLE lineitem(l_orderkey BIGINT NOT NULL, l_partkey BIGINT NOT NULL, l_suppkey BIGINT NOT NULL, l_linenumber BIGINT NOT NULL, l_quantity DECIMAL(15,2) NOT NULL, l_extendedprice DECIMAL(15,2) NOT NULL, l_discount DECIMAL(15,2) NOT NULL, l_tax DECIMAL(15,2) NOT NULL, l_returnflag VARCHAR NOT NULL, l_linestatus VARCHAR NOT NULL, l_shipdate DATE NOT NULL, l_commitdate DATE NOT NULL, l_receiptdate DATE NOT NULL, l_shipinstruct VARCHAR NOT NULL, l_shipmode VARCHAR NOT NULL, l_comment VARCHAR NOT NULL);'
|
|
|
|
@pytest.mark.skipif(os.name == 'nt', reason="Windows highlighting does not use shell escapes")
|
|
def test_highlight_column_header(shell):
|
|
test = (
|
|
ShellTest(shell)
|
|
.statement(".highlight_results on")
|
|
.statement('select NULL AS r;')
|
|
)
|
|
result = test.run()
|
|
result.check_stdout('\x1b[90mNULL\x1b[0m')
|
|
@pytest.mark.skipif(os.name == 'nt', reason="Windows highlighting does not use shell escapes")
|
|
def test_custom_highlight(shell):
|
|
test = (
|
|
ShellTest(shell)
|
|
.statement(".highlight_results on")
|
|
.statement(".highlight_colors column_name red bold")
|
|
.statement(".highlight_colors column_type yellow")
|
|
.statement(lineitem_ddl)
|
|
.statement('select * from lineitem;')
|
|
)
|
|
result = test.run()
|
|
result.check_stdout('\x1b[1m\x1b[31ml_comment\x1b[0m')
|
|
result.check_stdout('\x1b[33mvarchar\x1b[0m')
|
|
|
|
def test_custom_highlight_error(shell):
|
|
test = (
|
|
ShellTest(shell)
|
|
.statement(".highlight_colors column_nameXX red")
|
|
.statement(".highlight_colors column_name redXX")
|
|
.statement(".highlight_colors column_name red boldXX")
|
|
.statement(".highlight_colors column_name red bold zz")
|
|
)
|
|
result = test.run()
|
|
result.check_stderr("Unknown element 'column_nameXX'")
|
|
result.check_stderr("Unknown color 'redXX'")
|
|
result.check_stderr("Unknown intensity 'boldXX'")
|
|
result.check_stderr("Usage: .highlight_colors")
|
|
|
|
# fmt: on
|