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>>'

Reply via email to