Source: sqlparse
Version: 0.3.1-1
Severity: important
User: [email protected]
Usertags: pytest-v6
Hi,
sqlparse FTBFS with pytest 6 in experimental. The pytest changelog may
offer clues as to why:
https://docs.pytest.org/en/stable/changelog.html
The error log below has more details.
> I: pybuild base:232: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_sqlparse/build; python3.9 -m pytest -v
> ============================= test session starts
> ==============================
> platform linux -- Python 3.9.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.0 --
> /usr/bin/python3.9
> cachedir: .pytest_cache
> rootdir: /<<PKGBUILDDIR>>, configfile: setup.cfg
> collecting ... collected 407 items
>
> tests/test_cli.py::test_cli_main_empty PASSED [
> 0%]
> tests/test_cli.py::test_parser_empty PASSED [
> 0%]
> tests/test_cli.py::test_main_help PASSED [
> 0%]
> tests/test_cli.py::test_valid_args PASSED [
> 0%]
> tests/test_cli.py::test_invalid_choice PASSED [
> 1%]
> tests/test_cli.py::test_invalid_args PASSED [
> 1%]
> tests/test_cli.py::test_invalid_infile PASSED [
> 1%]
> tests/test_cli.py::test_invalid_outfile PASSED [
> 1%]
> tests/test_cli.py::test_stdout PASSED [
> 2%]
> tests/test_cli.py::test_script PASSED [
> 2%]
> tests/test_cli.py::test_encoding_utf8_stdout FAILED [
> 2%]
> tests/test_cli.py::test_encoding_utf8_output_file PASSED [
> 2%]
> tests/test_cli.py::test_encoding_gbk_stdout FAILED [
> 3%]
> tests/test_cli.py::test_encoding_gbk_output_file PASSED [
> 3%]
> tests/test_cli.py::test_encoding_stdin_utf8 FAILED [
> 3%]
> tests/test_cli.py::test_encoding_stdin_gbk FAILED [
> 3%]
> tests/test_cli.py::test_encoding PASSED [
> 4%]
> tests/test_format.py::TestFormat::test_keywordcase PASSED [
> 4%]
> tests/test_format.py::TestFormat::test_keywordcase_invalid_option PASSED [
> 4%]
> tests/test_format.py::TestFormat::test_identifiercase PASSED [
> 4%]
> tests/test_format.py::TestFormat::test_identifiercase_invalid_option PASSED [
> 5%]
> tests/test_format.py::TestFormat::test_identifiercase_quotes PASSED [
> 5%]
> tests/test_format.py::TestFormat::test_strip_comments_single PASSED [
> 5%]
> tests/test_format.py::TestFormat::test_strip_comments_invalid_option PASSED [
> 5%]
> tests/test_format.py::TestFormat::test_strip_comments_multi PASSED [
> 6%]
> tests/test_format.py::TestFormat::test_strip_ws PASSED [
> 6%]
> tests/test_format.py::TestFormat::test_strip_ws_invalid_option PASSED [
> 6%]
> tests/test_format.py::TestFormat::test_preserve_ws PASSED [
> 6%]
> tests/test_format.py::TestFormat::test_notransform_of_quoted_crlf PASSED [
> 7%]
> tests/test_format.py::TestFormatReindentAligned::test_basic PASSED [
> 7%]
> tests/test_format.py::TestFormatReindentAligned::test_joins PASSED [
> 7%]
> tests/test_format.py::TestFormatReindentAligned::test_case_statement PASSED [
> 7%]
> tests/test_format.py::TestFormatReindentAligned::test_case_statement_with_between
> PASSED [ 8%]
> tests/test_format.py::TestFormatReindentAligned::test_group_by PASSED [
> 8%]
> tests/test_format.py::TestFormatReindentAligned::test_group_by_subquery
> PASSED [ 8%]
> tests/test_format.py::TestFormatReindentAligned::test_window_functions PASSED
> [ 8%]
> tests/test_format.py::TestSpacesAroundOperators::test_basic PASSED [
> 9%]
> tests/test_format.py::TestSpacesAroundOperators::test_bools PASSED [
> 9%]
> tests/test_format.py::TestSpacesAroundOperators::test_nested PASSED [
> 9%]
> tests/test_format.py::TestSpacesAroundOperators::test_wildcard_vs_mult PASSED
> [ 9%]
> tests/test_format.py::TestFormatReindent::test_option PASSED [
> 10%]
> tests/test_format.py::TestFormatReindent::test_stmts PASSED [
> 10%]
> tests/test_format.py::TestFormatReindent::test_keywords PASSED [
> 10%]
> tests/test_format.py::TestFormatReindent::test_keywords_between PASSED [
> 10%]
> tests/test_format.py::TestFormatReindent::test_parenthesis PASSED [
> 11%]
> tests/test_format.py::TestFormatReindent::test_where PASSED [
> 11%]
> tests/test_format.py::TestFormatReindent::test_join PASSED [
> 11%]
> tests/test_format.py::TestFormatReindent::test_identifier_list PASSED [
> 11%]
> tests/test_format.py::TestFormatReindent::test_identifier_list_with_wrap_after
> PASSED [ 12%]
> tests/test_format.py::TestFormatReindent::test_identifier_list_comment_first
> PASSED [ 12%]
> tests/test_format.py::TestFormatReindent::test_identifier_list_with_functions
> PASSED [ 12%]
> tests/test_format.py::TestFormatReindent::test_long_identifier_list_with_functions
> PASSED [ 12%]
> tests/test_format.py::TestFormatReindent::test_case PASSED [
> 13%]
> tests/test_format.py::TestFormatReindent::test_case2 PASSED [
> 13%]
> tests/test_format.py::TestFormatReindent::test_nested_identifier_list PASSED
> [ 13%]
> tests/test_format.py::TestFormatReindent::test_duplicate_linebreaks PASSED [
> 13%]
> tests/test_format.py::TestFormatReindent::test_keywordfunctions PASSED [
> 14%]
> tests/test_format.py::TestFormatReindent::test_identifier_and_functions
> PASSED [ 14%]
> tests/test_format.py::TestFormatReindent::test_insert_values PASSED [
> 14%]
> tests/test_format.py::TestOutputFormat::test_python PASSED [
> 14%]
> tests/test_format.py::TestOutputFormat::test_python_multiple_statements
> PASSED [ 14%]
> tests/test_format.py::TestOutputFormat::test_python_multiple_statements_with_formatting
> XFAIL [ 15%]
> tests/test_format.py::TestOutputFormat::test_php PASSED [
> 15%]
> tests/test_format.py::TestOutputFormat::test_sql PASSED [
> 15%]
> tests/test_format.py::TestOutputFormat::test_invalid_option PASSED [
> 15%]
> tests/test_format.py::test_format_column_ordering PASSED [
> 16%]
> tests/test_format.py::test_truncate_strings PASSED [
> 16%]
> tests/test_format.py::test_truncate_strings_invalid_option2[bar] PASSED [
> 16%]
> tests/test_format.py::test_truncate_strings_invalid_option2[-1] PASSED [
> 16%]
> tests/test_format.py::test_truncate_strings_invalid_option2[0] PASSED [
> 17%]
> tests/test_format.py::test_truncate_strings_doesnt_truncate_identifiers[select
> verrrylongcolumn from foo] PASSED [ 17%]
> tests/test_format.py::test_truncate_strings_doesnt_truncate_identifiers[select
> "verrrylongcolumn" from "foo"] PASSED [ 17%]
> tests/test_format.py::test_having_produces_newline PASSED [
> 17%]
> tests/test_format.py::test_format_right_margin_invalid_option[ten] PASSED [
> 18%]
> tests/test_format.py::test_format_right_margin_invalid_option[2] PASSED [
> 18%]
> tests/test_format.py::test_format_right_margin XFAIL [
> 18%]
> tests/test_grouping.py::test_grouping_parenthesis PASSED [
> 18%]
> tests/test_grouping.py::test_grouping_comments PASSED [
> 19%]
> tests/test_grouping.py::test_grouping_assignment[foo := 1;] PASSED [
> 19%]
> tests/test_grouping.py::test_grouping_assignment[foo := 1] PASSED [
> 19%]
> tests/test_grouping.py::test_grouping_typed_literal[x > DATE '2020-01-01']
> PASSED [ 19%]
> tests/test_grouping.py::test_grouping_typed_literal[x > TIMESTAMP '2020-01-01
> 00:00:00'] PASSED [ 20%]
> tests/test_grouping.py::test_compare_expr[select a from b where c < d +
> e-Identifier-Identifier] PASSED [ 20%]
> tests/test_grouping.py::test_compare_expr[select a from b where c < d +
> interval '1 day'-Identifier-TypedLiteral] PASSED [ 20%]
> tests/test_grouping.py::test_compare_expr[select a from b where c < d +
> interval '6' month-Identifier-TypedLiteral] PASSED [ 20%]
> tests/test_grouping.py::test_compare_expr[select a from b where c <
> current_timestamp - interval '1 day'-Token-TypedLiteral] PASSED [ 21%]
> tests/test_grouping.py::test_grouping_identifiers PASSED [
> 21%]
> tests/test_grouping.py::test_simple_identifiers[1 as f] PASSED [
> 21%]
> tests/test_grouping.py::test_simple_identifiers[foo as f] PASSED [
> 21%]
> tests/test_grouping.py::test_simple_identifiers[foo f] PASSED [
> 22%]
> tests/test_grouping.py::test_simple_identifiers[1/2 as f] PASSED [
> 22%]
> tests/test_grouping.py::test_simple_identifiers[1/2 f] PASSED [
> 22%]
> tests/test_grouping.py::test_simple_identifiers[1<2 as f] PASSED [
> 22%]
> tests/test_grouping.py::test_simple_identifiers[1<2 f] PASSED [
> 23%]
> tests/test_grouping.py::test_group_identifier_list[foo, bar] PASSED [
> 23%]
> tests/test_grouping.py::test_group_identifier_list[sum(a), sum(b)] PASSED [
> 23%]
> tests/test_grouping.py::test_group_identifier_list[sum(a) as x, b as y]
> PASSED [ 23%]
> tests/test_grouping.py::test_group_identifier_list[sum(a)::integer, b] PASSED
> [ 24%]
> tests/test_grouping.py::test_group_identifier_list[sum(a)/count(b) as x, y]
> PASSED [ 24%]
> tests/test_grouping.py::test_group_identifier_list[sum(a)::integer as x, y]
> PASSED [ 24%]
> tests/test_grouping.py::test_group_identifier_list[sum(a)::integer/count(b)
> as x, y] PASSED [ 24%]
> tests/test_grouping.py::test_grouping_identifier_wildcard PASSED [
> 25%]
> tests/test_grouping.py::test_grouping_identifier_name_wildcard PASSED [
> 25%]
> tests/test_grouping.py::test_grouping_identifier_invalid PASSED [
> 25%]
> tests/test_grouping.py::test_grouping_identifier_invalid_in_middle PASSED [
> 25%]
> tests/test_grouping.py::test_grouping_identifer_as[foo as (select *)] PASSED
> [ 26%]
> tests/test_grouping.py::test_grouping_identifer_as[foo as(select *)] PASSED [
> 26%]
> tests/test_grouping.py::test_grouping_identifier_as_invalid PASSED [
> 26%]
> tests/test_grouping.py::test_grouping_identifier_function PASSED [
> 26%]
> tests/test_grouping.py::test_grouping_operation[foo+100] PASSED [
> 27%]
> tests/test_grouping.py::test_grouping_operation[foo + 100] PASSED [
> 27%]
> tests/test_grouping.py::test_grouping_operation[foo*100] PASSED [
> 27%]
> tests/test_grouping.py::test_grouping_identifier_list PASSED [
> 27%]
> tests/test_grouping.py::test_grouping_identifier_list_subquery PASSED [
> 28%]
> tests/test_grouping.py::test_grouping_identifier_list_case PASSED [
> 28%]
> tests/test_grouping.py::test_grouping_identifier_list_other PASSED [
> 28%]
> tests/test_grouping.py::test_grouping_identifier_list_with_inline_comments
> PASSED [ 28%]
> tests/test_grouping.py::test_grouping_identifiers_with_operators PASSED [
> 28%]
> tests/test_grouping.py::test_grouping_identifier_list_with_order PASSED [
> 29%]
> tests/test_grouping.py::test_grouping_where PASSED [
> 29%]
> tests/test_grouping.py::test_grouping_where_union[select 1 where 1 = 2 union
> select 2] PASSED [ 29%]
> tests/test_grouping.py::test_grouping_where_union[select 1 where 1 = 2 union
> all select 2] PASSED [ 29%]
> tests/test_grouping.py::test_returning_kw_ends_where_clause PASSED [
> 30%]
> tests/test_grouping.py::test_into_kw_ends_where_clause PASSED [
> 30%]
> tests/test_grouping.py::test_grouping_typecast[select foo::integer from
> bar-integer] PASSED [ 30%]
> tests/test_grouping.py::test_grouping_typecast[select
> (current_database())::information_schema.sql_identifier-information_schema.sql_identifier]
> PASSED [ 30%]
> tests/test_grouping.py::test_grouping_alias PASSED [
> 31%]
> tests/test_grouping.py::test_grouping_alias_case PASSED [
> 31%]
> tests/test_grouping.py::test_grouping_subquery_no_parens PASSED [
> 31%]
> tests/test_grouping.py::test_grouping_alias_returns_none[foo.bar] PASSED [
> 31%]
> tests/test_grouping.py::test_grouping_alias_returns_none[x, y] PASSED [
> 32%]
> tests/test_grouping.py::test_grouping_alias_returns_none[x > y] PASSED [
> 32%]
> tests/test_grouping.py::test_grouping_alias_returns_none[x / y] PASSED [
> 32%]
> tests/test_grouping.py::test_grouping_idlist_function PASSED [
> 32%]
> tests/test_grouping.py::test_grouping_comparison_exclude PASSED [
> 33%]
> tests/test_grouping.py::test_grouping_function PASSED [
> 33%]
> tests/test_grouping.py::test_grouping_function_not_in PASSED [
> 33%]
> tests/test_grouping.py::test_grouping_varchar PASSED [
> 33%]
> tests/test_grouping.py::test_statement_get_type PASSED [
> 34%]
> tests/test_grouping.py::test_identifier_with_operators PASSED [
> 34%]
> tests/test_grouping.py::test_identifier_with_op_trailing_ws PASSED [
> 34%]
> tests/test_grouping.py::test_identifier_with_string_literals PASSED [
> 34%]
> tests/test_grouping.py::test_identifier_consumes_ordering PASSED [
> 35%]
> tests/test_grouping.py::test_comparison_with_keywords PASSED [
> 35%]
> tests/test_grouping.py::test_comparison_with_floats PASSED [
> 35%]
> tests/test_grouping.py::test_comparison_with_parenthesis PASSED [
> 35%]
> tests/test_grouping.py::test_comparison_with_strings[=] PASSED [
> 36%]
> tests/test_grouping.py::test_comparison_with_strings[!=] PASSED [
> 36%]
> tests/test_grouping.py::test_comparison_with_strings[>] PASSED [
> 36%]
> tests/test_grouping.py::test_comparison_with_strings[<] PASSED [
> 36%]
> tests/test_grouping.py::test_comparison_with_strings[<=] PASSED [
> 37%]
> tests/test_grouping.py::test_comparison_with_strings[>=] PASSED [
> 37%]
> tests/test_grouping.py::test_comparison_with_strings[~] PASSED [
> 37%]
> tests/test_grouping.py::test_comparison_with_strings[~~] PASSED [
> 37%]
> tests/test_grouping.py::test_comparison_with_strings[!~~] PASSED [
> 38%]
> tests/test_grouping.py::test_comparison_with_strings[LIKE] PASSED [
> 38%]
> tests/test_grouping.py::test_comparison_with_strings[NOT LIKE] PASSED [
> 38%]
> tests/test_grouping.py::test_comparison_with_strings[ILIKE] PASSED [
> 38%]
> tests/test_grouping.py::test_comparison_with_strings[NOT ILIKE] PASSED [
> 39%]
> tests/test_grouping.py::test_like_and_ilike_comparison PASSED [
> 39%]
> tests/test_grouping.py::test_comparison_with_functions PASSED [
> 39%]
> tests/test_grouping.py::test_forloops[FOR] PASSED [
> 39%]
> tests/test_grouping.py::test_forloops[FOREACH] PASSED [
> 40%]
> tests/test_grouping.py::test_nested_for PASSED [
> 40%]
> tests/test_grouping.py::test_begin PASSED [
> 40%]
> tests/test_grouping.py::test_keyword_followed_by_parenthesis PASSED [
> 40%]
> tests/test_grouping.py::test_nested_begin PASSED [
> 41%]
> tests/test_grouping.py::test_aliased_column_without_as PASSED [
> 41%]
> tests/test_grouping.py::test_qualified_function PASSED [
> 41%]
> tests/test_grouping.py::test_aliased_function_without_as PASSED [
> 41%]
> tests/test_grouping.py::test_aliased_literal_without_as PASSED [
> 42%]
> tests/test_grouping.py::test_grouping_as_cte PASSED [
> 42%]
> tests/test_keywords.py::TestSQLREGEX::test_float_numbers[1.0] PASSED [
> 42%]
> tests/test_keywords.py::TestSQLREGEX::test_float_numbers[-1.0] PASSED [
> 42%]
> tests/test_keywords.py::TestSQLREGEX::test_float_numbers[1.] PASSED [
> 42%]
> tests/test_keywords.py::TestSQLREGEX::test_float_numbers[-1.] PASSED [
> 43%]
> tests/test_keywords.py::TestSQLREGEX::test_float_numbers[.1] PASSED [
> 43%]
> tests/test_keywords.py::TestSQLREGEX::test_float_numbers[-.1] PASSED [
> 43%]
> tests/test_parse.py::test_parse_tokenize PASSED [
> 43%]
> tests/test_parse.py::test_parse_multistatement PASSED [
> 44%]
> tests/test_parse.py::test_parse_newlines[select\n*from foo;] PASSED [
> 44%]
> tests/test_parse.py::test_parse_newlines[select\r\n*from foo] PASSED [
> 44%]
> tests/test_parse.py::test_parse_newlines[select\r*from foo] PASSED [
> 44%]
> tests/test_parse.py::test_parse_newlines[select\r\n*from foo\n] PASSED [
> 45%]
> tests/test_parse.py::test_parse_within PASSED [
> 45%]
> tests/test_parse.py::test_parse_child_of PASSED [
> 45%]
> tests/test_parse.py::test_parse_has_ancestor PASSED [
> 45%]
> tests/test_parse.py::test_parse_float[.5] PASSED [
> 46%]
> tests/test_parse.py::test_parse_float[.51] PASSED [
> 46%]
> tests/test_parse.py::test_parse_float[1.5] PASSED [
> 46%]
> tests/test_parse.py::test_parse_float[12.5] PASSED [
> 46%]
> tests/test_parse.py::test_parse_placeholder[select * from foo where user =
> ?-?] PASSED [ 47%]
> tests/test_parse.py::test_parse_placeholder[select * from foo where user =
> :1-:1] PASSED [ 47%]
> tests/test_parse.py::test_parse_placeholder[select * from foo where user =
> :name-:name] PASSED [ 47%]
> tests/test_parse.py::test_parse_placeholder[select * from foo where user =
> %s-%s] PASSED [ 47%]
> tests/test_parse.py::test_parse_placeholder[select * from foo where user =
> $a-$a] PASSED [ 48%]
> tests/test_parse.py::test_parse_modulo_not_placeholder PASSED [
> 48%]
> tests/test_parse.py::test_parse_access_symbol PASSED [
> 48%]
> tests/test_parse.py::test_parse_square_brackets_notation_isnt_too_greedy
> PASSED [ 48%]
> tests/test_parse.py::test_parse_keyword_like_identifier PASSED [
> 49%]
> tests/test_parse.py::test_parse_function_parameter PASSED [
> 49%]
> tests/test_parse.py::test_parse_function_param_single_literal PASSED [
> 49%]
> tests/test_parse.py::test_parse_nested_function PASSED [
> 49%]
> tests/test_parse.py::test_quoted_identifier PASSED [
> 50%]
> tests/test_parse.py::test_valid_identifier_names[foo] PASSED [
> 50%]
> tests/test_parse.py::test_valid_identifier_names[_foo] PASSED [
> 50%]
> tests/test_parse.py::test_valid_identifier_names[1_data] PASSED [
> 50%]
> tests/test_parse.py::test_psql_quotation_marks PASSED [
> 51%]
> tests/test_parse.py::test_double_precision_is_builtin PASSED [
> 51%]
> tests/test_parse.py::test_placeholder[?] PASSED [
> 51%]
> tests/test_parse.py::test_placeholder[:1] PASSED [
> 51%]
> tests/test_parse.py::test_placeholder[:foo] PASSED [
> 52%]
> tests/test_parse.py::test_placeholder[%s] PASSED [
> 52%]
> tests/test_parse.py::test_placeholder[%(foo)s] PASSED [
> 52%]
> tests/test_parse.py::test_scientific_numbers[6.67428E-8] PASSED [
> 52%]
> tests/test_parse.py::test_scientific_numbers[1.988e33] PASSED [
> 53%]
> tests/test_parse.py::test_scientific_numbers[1e-12] PASSED [
> 53%]
> tests/test_parse.py::test_single_quotes_are_strings PASSED [
> 53%]
> tests/test_parse.py::test_double_quotes_are_identifiers PASSED [
> 53%]
> tests/test_parse.py::test_single_quotes_with_linebreaks PASSED [
> 54%]
> tests/test_parse.py::test_sqlite_identifiers PASSED [
> 54%]
> tests/test_parse.py::test_simple_1d_array_index PASSED [
> 54%]
> tests/test_parse.py::test_2d_array_index PASSED [
> 54%]
> tests/test_parse.py::test_array_index_function_result PASSED [
> 55%]
> tests/test_parse.py::test_schema_qualified_array_index PASSED [
> 55%]
> tests/test_parse.py::test_aliased_array_index PASSED [
> 55%]
> tests/test_parse.py::test_array_literal PASSED [
> 55%]
> tests/test_parse.py::test_typed_array_definition PASSED [
> 56%]
> tests/test_parse.py::test_single_line_comments[select 1 -- foo] PASSED [
> 56%]
> tests/test_parse.py::test_single_line_comments[select 1 # foo] PASSED [
> 56%]
> tests/test_parse.py::test_names_and_special_names[foo] PASSED [
> 56%]
> tests/test_parse.py::test_names_and_special_names[@foo] PASSED [
> 57%]
> tests/test_parse.py::test_names_and_special_names[#foo] PASSED [
> 57%]
> tests/test_parse.py::test_names_and_special_names[##foo] PASSED [
> 57%]
> tests/test_parse.py::test_get_token_at_offset PASSED [
> 57%]
> tests/test_parse.py::test_pprint PASSED [
> 57%]
> tests/test_parse.py::test_wildcard_multiplication PASSED [
> 58%]
> tests/test_parse.py::test_stmt_tokens_parents PASSED [
> 58%]
> tests/test_parse.py::test_dbldollar_as_literal[$$foo$$-True] PASSED [
> 58%]
> tests/test_parse.py::test_dbldollar_as_literal[$_$foo$_$-True] PASSED [
> 58%]
> tests/test_parse.py::test_dbldollar_as_literal[$token$ foo $token$-True]
> PASSED [ 59%]
> tests/test_parse.py::test_dbldollar_as_literal[$_$ foo $token$bar$token$
> baz$_$-True] PASSED [ 59%]
> tests/test_parse.py::test_dbldollar_as_literal[$A$ foo $B$-False] PASSED [
> 59%]
> tests/test_parse.py::test_non_ascii PASSED [
> 59%]
> tests/test_parse.py::test_get_real_name PASSED [
> 60%]
> tests/test_parse.py::test_from_subquery PASSED [
> 60%]
> tests/test_parse.py::test_parenthesis PASSED [
> 60%]
> tests/test_regressions.py::test_issue9 PASSED [
> 60%]
> tests/test_regressions.py::test_issue13 PASSED [
> 61%]
> tests/test_regressions.py::test_issue26[--hello] PASSED [
> 61%]
> tests/test_regressions.py::test_issue26[-- hello] PASSED [
> 61%]
> tests/test_regressions.py::test_issue26[--hello\n] PASSED [
> 61%]
> tests/test_regressions.py::test_issue26[--] PASSED [
> 62%]
> tests/test_regressions.py::test_issue26[--\n] PASSED [
> 62%]
> tests/test_regressions.py::test_issue34[create] PASSED [
> 62%]
> tests/test_regressions.py::test_issue34[CREATE] PASSED [
> 62%]
> tests/test_regressions.py::test_issue35 PASSED [
> 63%]
> tests/test_regressions.py::test_issue38 PASSED [
> 63%]
> tests/test_regressions.py::test_issue39 PASSED [
> 63%]
> tests/test_regressions.py::test_issue40 PASSED [
> 63%]
> tests/test_regressions.py::test_issue78[get_name-z-select x.y::text as z from
> foo] PASSED [ 64%]
> tests/test_regressions.py::test_issue78[get_name-z-select x.y::text as "z"
> from foo] PASSED [ 64%]
> tests/test_regressions.py::test_issue78[get_name-z-select x."y"::text as z
> from foo] PASSED [ 64%]
> tests/test_regressions.py::test_issue78[get_name-z-select x."y"::text as "z"
> from foo] PASSED [ 64%]
> tests/test_regressions.py::test_issue78[get_name-z-select "x".y::text as z
> from foo] PASSED [ 65%]
> tests/test_regressions.py::test_issue78[get_name-z-select "x".y::text as "z"
> from foo] PASSED [ 65%]
> tests/test_regressions.py::test_issue78[get_name-z-select "x"."y"::text as z
> from foo] PASSED [ 65%]
> tests/test_regressions.py::test_issue78[get_name-z-select "x"."y"::text as
> "z" from foo] PASSED [ 65%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select x.y::text as z
> from foo] PASSED [ 66%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select x.y::text as
> "z" from foo] PASSED [ 66%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select x."y"::text as
> z from foo] PASSED [ 66%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select x."y"::text as
> "z" from foo] PASSED [ 66%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select "x".y::text as
> z from foo] PASSED [ 67%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select "x".y::text as
> "z" from foo] PASSED [ 67%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select "x"."y"::text
> as z from foo] PASSED [ 67%]
> tests/test_regressions.py::test_issue78[get_real_name-y-select "x"."y"::text
> as "z" from foo] PASSED [ 67%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select x.y::text as
> z from foo] PASSED [ 68%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select x.y::text as
> "z" from foo] PASSED [ 68%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select x."y"::text
> as z from foo] PASSED [ 68%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select x."y"::text
> as "z" from foo] PASSED [ 68%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select "x".y::text
> as z from foo] PASSED [ 69%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select "x".y::text
> as "z" from foo] PASSED [ 69%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select
> "x"."y"::text as z from foo] PASSED [ 69%]
> tests/test_regressions.py::test_issue78[get_parent_name-x-select
> "x"."y"::text as "z" from foo] PASSED [ 69%]
> tests/test_regressions.py::test_issue78[get_alias-z-select x.y::text as z
> from foo] PASSED [ 70%]
> tests/test_regressions.py::test_issue78[get_alias-z-select x.y::text as "z"
> from foo] PASSED [ 70%]
> tests/test_regressions.py::test_issue78[get_alias-z-select x."y"::text as z
> from foo] PASSED [ 70%]
> tests/test_regressions.py::test_issue78[get_alias-z-select x."y"::text as "z"
> from foo] PASSED [ 70%]
> tests/test_regressions.py::test_issue78[get_alias-z-select "x".y::text as z
> from foo] PASSED [ 71%]
> tests/test_regressions.py::test_issue78[get_alias-z-select "x".y::text as "z"
> from foo] PASSED [ 71%]
> tests/test_regressions.py::test_issue78[get_alias-z-select "x"."y"::text as z
> from foo] PASSED [ 71%]
> tests/test_regressions.py::test_issue78[get_alias-z-select "x"."y"::text as
> "z" from foo] PASSED [ 71%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select x.y::text as
> z from foo] PASSED [ 71%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select x.y::text as
> "z" from foo] PASSED [ 72%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select x."y"::text
> as z from foo] PASSED [ 72%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select x."y"::text
> as "z" from foo] PASSED [ 72%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select "x".y::text
> as z from foo] PASSED [ 72%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select "x".y::text
> as "z" from foo] PASSED [ 73%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select
> "x"."y"::text as z from foo] PASSED [ 73%]
> tests/test_regressions.py::test_issue78[get_typecast-text-select
> "x"."y"::text as "z" from foo] PASSED [ 73%]
> tests/test_regressions.py::test_issue83 PASSED [
> 73%]
> tests/test_regressions.py::test_comment_encoding_when_reindent PASSED [
> 74%]
> tests/test_regressions.py::test_parse_sql_with_binary PASSED [
> 74%]
> tests/test_regressions.py::test_dont_alias_keywords PASSED [
> 74%]
> tests/test_regressions.py::test_format_accepts_encoding PASSED [
> 74%]
> tests/test_regressions.py::test_stream PASSED [
> 75%]
> tests/test_regressions.py::test_issue90 PASSED [
> 75%]
> tests/test_regressions.py::test_except_formatting PASSED [
> 75%]
> tests/test_regressions.py::test_null_with_as PASSED [
> 75%]
> tests/test_regressions.py::test_issue190_open_file PASSED [
> 76%]
> tests/test_regressions.py::test_issue193_splitting_function PASSED [
> 76%]
> tests/test_regressions.py::test_issue194_splitting_function PASSED [
> 76%]
> tests/test_regressions.py::test_issue186_get_type PASSED [
> 76%]
> tests/test_regressions.py::test_issue212_py2unicode PASSED [
> 77%]
> tests/test_regressions.py::test_issue213_leadingws PASSED [
> 77%]
> tests/test_regressions.py::test_issue227_gettype_cte PASSED [
> 77%]
> tests/test_regressions.py::test_issue207_runaway_format PASSED [
> 77%]
> tests/test_regressions.py::test_token_next_doesnt_ignore_skip_cm PASSED [
> 78%]
> tests/test_regressions.py::test_issue284_as_grouping[SELECT x AS] PASSED [
> 78%]
> tests/test_regressions.py::test_issue284_as_grouping[AS] PASSED [
> 78%]
> tests/test_regressions.py::test_issue315_utf8_by_default PASSED [
> 78%]
> tests/test_regressions.py::test_issue322_concurrently_is_keyword PASSED [
> 79%]
> tests/test_regressions.py::test_issue359_index_error_assignments[SELECT
> @min_price:=MIN(price), @max_price:=MAX(price) FROM shop;] PASSED [ 79%]
> tests/test_regressions.py::test_issue359_index_error_assignments[SELECT
> @min_price:=MIN(price), @max_price:=MAX(price) FROM shop] PASSED [ 79%]
> tests/test_regressions.py::test_issue469_copy_as_psql_command PASSED [
> 79%]
> tests/test_regressions.py::test_issue484_comments_and_newlines XFAIL [
> 80%]
> tests/test_regressions.py::test_issue485_split_multi PASSED [
> 80%]
> tests/test_regressions.py::test_issue489_tzcasts PASSED [
> 80%]
> tests/test_split.py::test_split_semicolon PASSED [
> 80%]
> tests/test_split.py::test_split_backslash PASSED [
> 81%]
> tests/test_split.py::test_split_create_function[function.sql] PASSED [
> 81%]
> tests/test_split.py::test_split_create_function[function_psql.sql] PASSED [
> 81%]
> tests/test_split.py::test_split_create_function[function_psql2.sql] PASSED [
> 81%]
> tests/test_split.py::test_split_create_function[function_psql3.sql] PASSED [
> 82%]
> tests/test_split.py::test_split_create_function[function_psql4.sql] PASSED [
> 82%]
> tests/test_split.py::test_split_dashcomments PASSED [
> 82%]
> tests/test_split.py::test_split_dashcomments_eol[select foo; -- comment\n]
> PASSED [ 82%]
> tests/test_split.py::test_split_dashcomments_eol[select foo; -- comment\r]
> PASSED [ 83%]
> tests/test_split.py::test_split_dashcomments_eol[select foo; -- comment\r\n]
> PASSED [ 83%]
> tests/test_split.py::test_split_dashcomments_eol[select foo; -- comment]
> PASSED [ 83%]
> tests/test_split.py::test_split_begintag PASSED [
> 83%]
> tests/test_split.py::test_split_begintag_2 PASSED [
> 84%]
> tests/test_split.py::test_split_dropif PASSED [
> 84%]
> tests/test_split.py::test_split_comment_with_umlaut PASSED [
> 84%]
> tests/test_split.py::test_split_comment_end_of_line PASSED [
> 84%]
> tests/test_split.py::test_split_casewhen PASSED [
> 85%]
> tests/test_split.py::test_split_cursor_declare PASSED [
> 85%]
> tests/test_split.py::test_split_if_function PASSED [
> 85%]
> tests/test_split.py::test_split_stream PASSED [
> 85%]
> tests/test_split.py::test_split_encoding_parsestream PASSED [
> 85%]
> tests/test_split.py::test_split_unicode_parsestream PASSED [
> 86%]
> tests/test_split.py::test_split_simple PASSED [
> 86%]
> tests/test_split.py::test_split_quotes_with_new_line PASSED [
> 86%]
> tests/test_tokenize.py::test_tokenize_simple PASSED [
> 86%]
> tests/test_tokenize.py::test_tokenize_backticks PASSED [
> 87%]
> tests/test_tokenize.py::test_tokenize_linebreaks[foo\nbar\n] PASSED [
> 87%]
> tests/test_tokenize.py::test_tokenize_linebreaks[foo\rbar\r] PASSED [
> 87%]
> tests/test_tokenize.py::test_tokenize_linebreaks[foo\r\nbar\r\n] PASSED [
> 87%]
> tests/test_tokenize.py::test_tokenize_linebreaks[foo\r\nbar\n] PASSED [
> 88%]
> tests/test_tokenize.py::test_tokenize_inline_keywords PASSED [
> 88%]
> tests/test_tokenize.py::test_tokenize_negative_numbers PASSED [
> 88%]
> tests/test_tokenize.py::test_token_str PASSED [
> 88%]
> tests/test_tokenize.py::test_token_repr PASSED [
> 89%]
> tests/test_tokenize.py::test_token_flatten PASSED [
> 89%]
> tests/test_tokenize.py::test_tokenlist_repr PASSED [
> 89%]
> tests/test_tokenize.py::test_single_quotes PASSED [
> 89%]
> tests/test_tokenize.py::test_tokenlist_first PASSED [
> 90%]
> tests/test_tokenize.py::test_tokenlist_token_matching PASSED [
> 90%]
> tests/test_tokenize.py::test_stream_simple PASSED [
> 90%]
> tests/test_tokenize.py::test_stream_error PASSED [
> 90%]
> tests/test_tokenize.py::test_parse_join[JOIN] PASSED [
> 91%]
> tests/test_tokenize.py::test_parse_join[LEFT JOIN] PASSED [
> 91%]
> tests/test_tokenize.py::test_parse_join[LEFT OUTER JOIN] PASSED [
> 91%]
> tests/test_tokenize.py::test_parse_join[FULL OUTER JOIN] PASSED [
> 91%]
> tests/test_tokenize.py::test_parse_join[NATURAL JOIN] PASSED [
> 92%]
> tests/test_tokenize.py::test_parse_join[CROSS JOIN] PASSED [
> 92%]
> tests/test_tokenize.py::test_parse_join[STRAIGHT JOIN] PASSED [
> 92%]
> tests/test_tokenize.py::test_parse_join[INNER JOIN] PASSED [
> 92%]
> tests/test_tokenize.py::test_parse_join[LEFT INNER JOIN] PASSED [
> 93%]
> tests/test_tokenize.py::test_parse_union PASSED [
> 93%]
> tests/test_tokenize.py::test_parse_endifloop[END IF] PASSED [
> 93%]
> tests/test_tokenize.py::test_parse_endifloop[END IF] PASSED [
> 93%]
> tests/test_tokenize.py::test_parse_endifloop[END\t\nIF] PASSED [
> 94%]
> tests/test_tokenize.py::test_parse_endifloop[END LOOP] PASSED [
> 94%]
> tests/test_tokenize.py::test_parse_endifloop[END LOOP] PASSED [
> 94%]
> tests/test_tokenize.py::test_parse_endifloop[END\t\nLOOP] PASSED [
> 94%]
> tests/test_tokenize.py::test_parse_nulls[NULLS FIRST] PASSED [
> 95%]
> tests/test_tokenize.py::test_parse_nulls[NULLS LAST] PASSED [
> 95%]
> tests/test_tokenize.py::test_parse_identifiers[foo] PASSED [
> 95%]
> tests/test_tokenize.py::test_parse_identifiers[Foo] PASSED [
> 95%]
> tests/test_tokenize.py::test_parse_identifiers[FOO] PASSED [
> 96%]
> tests/test_tokenize.py::test_parse_identifiers[v$name] PASSED [
> 96%]
> tests/test_tokenize.py::test_parse_group_by PASSED [
> 96%]
> tests/test_tokenize.py::test_parse_order_by PASSED [
> 96%]
> tests/test_tokenize.py::test_like_and_ilike_parsed_as_comparisons[LIKE]
> PASSED [ 97%]
> tests/test_tokenize.py::test_like_and_ilike_parsed_as_comparisons[ILIKE]
> PASSED [ 97%]
> tests/test_tokenize.py::test_like_and_ilike_parsed_as_comparisons[NOT LIKE]
> PASSED [ 97%]
> tests/test_tokenize.py::test_like_and_ilike_parsed_as_comparisons[NOT ILIKE]
> PASSED [ 97%]
> tests/test_tokenize.py::test_like_and_ilike_parsed_as_comparisons[NOT LIKE]
> PASSED [ 98%]
> tests/test_tokenize.py::test_like_and_ilike_parsed_as_comparisons[NOT
> ILIKE] PASSED [ 98%]
> tests/test_tokenize.py::test_near_like_and_ilike_parsed_appropriately[LIKEaaa]
> PASSED [ 98%]
> tests/test_tokenize.py::test_near_like_and_ilike_parsed_appropriately[bILIKE]
> PASSED [ 98%]
> tests/test_tokenize.py::test_near_like_and_ilike_parsed_appropriately[aaILIKEbb]
> PASSED [ 99%]
> tests/test_tokenize.py::test_near_like_and_ilike_parsed_appropriately[NOTLIKE]
> PASSED [ 99%]
> tests/test_tokenize.py::test_near_like_and_ilike_parsed_appropriately[NOTILIKE]
> PASSED [ 99%]
> tests/test_tokenize.py::test_parse_tzcast[AT TIME ZONE 'UTC'] PASSED [
> 99%]
> tests/test_tokenize.py::test_cli_commands PASSED
> [100%]
>
> =================================== FAILURES
> ===================================
> __________________________ test_encoding_utf8_stdout
> ___________________________
>
> filepath = <function filepath.<locals>.make_filepath at 0x7f5b07544040>
> load_file = <function load_file.<locals>.make_load_file at 0x7f5b075448b0>
> capfd = <_pytest.capture.CaptureFixture object at 0x7f5b076efcd0>
>
> def test_encoding_utf8_stdout(filepath, load_file, capfd):
> path = filepath('encoding_utf8.sql')
> expected = load_file('encoding_utf8.sql', 'utf-8')
>> sys.stdout.encoding = 'utf-8'
> E AttributeError: readonly attribute
>
> tests/test_cli.py:81: AttributeError
> ___________________________ test_encoding_gbk_stdout
> ___________________________
>
> filepath = <function filepath.<locals>.make_filepath at 0x7f5b07544670>
> load_file = <function load_file.<locals>.make_load_file at 0x7f5b0711d160>
> capfd = <_pytest.capture.CaptureFixture object at 0x7f5b0712e6a0>
>
> def test_encoding_gbk_stdout(filepath, load_file, capfd):
> path = filepath('encoding_gbk.sql')
> expected = load_file('encoding_gbk.sql', 'gbk')
>> sys.stdout.encoding = 'gbk'
> E AttributeError: readonly attribute
>
> tests/test_cli.py:99: AttributeError
> ___________________________ test_encoding_stdin_utf8
> ___________________________
>
> filepath = <function filepath.<locals>.make_filepath at 0x7f5b07544790>
> load_file = <function load_file.<locals>.make_load_file at 0x7f5b07544820>
> capfd = <_pytest.capture.CaptureFixture object at 0x7f5b077acb20>
>
> def test_encoding_stdin_utf8(filepath, load_file, capfd):
> path = filepath('encoding_utf8.sql')
> expected = load_file('encoding_utf8.sql', 'utf-8')
> old_stdin = sys.stdin
> with open(path, 'r') as f:
> sys.stdin = f
>> sys.stdout.encoding = 'utf-8'
> E AttributeError: readonly attribute
>
> tests/test_cli.py:120: AttributeError
> ___________________________ test_encoding_stdin_gbk
> ____________________________
>
> filepath = <function filepath.<locals>.make_filepath at 0x7f5b07531280>
> load_file = <function load_file.<locals>.make_load_file at 0x7f5b073e05e0>
> capfd = <_pytest.capture.CaptureFixture object at 0x7f5b07411070>
>
> def test_encoding_stdin_gbk(filepath, load_file, capfd):
> path = filepath('encoding_gbk.sql')
> expected = load_file('encoding_gbk.sql', 'gbk')
> old_stdin = sys.stdin
> with open(path, 'r') as stream:
> sys.stdin = stream
>> sys.stdout.encoding = 'gbk'
> E AttributeError: readonly attribute
>
> tests/test_cli.py:133: AttributeError
> =========================== short test summary info
> ============================
> FAILED tests/test_cli.py::test_encoding_utf8_stdout - AttributeError:
> readonl...
> FAILED tests/test_cli.py::test_encoding_gbk_stdout - AttributeError:
> readonly...
> FAILED tests/test_cli.py::test_encoding_stdin_utf8 - AttributeError:
> readonly...
> FAILED tests/test_cli.py::test_encoding_stdin_gbk - AttributeError: readonly
> ...
> =================== 4 failed, 400 passed, 3 xfailed in 0.95s
> ===================
> E: pybuild pybuild:353: test: plugin distutils failed with: exit code=1: cd
> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.9_sqlparse/build; python3.9 -m pytest -v
> dh_auto_test: error: pybuild --test -i python{version} -p 3.9 returned exit
> code 13
> make[1]: *** [debian/rules:13: build-indep] Error 25
> make: *** [debian/rules:13: binary] Error 2
> dpkg-buildpackage: error: debian/rules binary subprocess returned exit status
> 2
> make[1]: Leaving directory '/<<PKGBUILDDIR>>'