Source: sqlparse Version: 0.3.1-1 Severity: important User: pyt...@packages.debian.org 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>>'