Files
sqlfluff/test/fixtures/rules/std_rule_cases/CV10.yml
2024-04-01 10:57:53 +00:00

399 lines
9.3 KiB
YAML

rule: CV10
test_fail_result_of_fix_is_valid_bigquery:
fail_str: |
SELECT
"some string",
'some string'
fix_str: |
SELECT
"some string",
"some string"
configs:
core:
dialect: bigquery
test_fail_result_of_fix_is_valid_hive:
fail_str: |
SELECT
"some string",
'some string'
fix_str: |
SELECT
"some string",
"some string"
configs:
core:
dialect: hive
test_fail_result_of_fix_is_valid_mysql:
fail_str: |
SELECT
"some string",
'some string'
fix_str: |
SELECT
"some string",
"some string"
configs:
core:
dialect: mysql
test_fail_result_of_fix_is_valid_sparksql:
fail_str: |
SELECT
"some string",
'some string'
fix_str: |
SELECT
"some string",
"some string"
configs:
core:
dialect: sparksql
test_pass_preferred_tripple_quotes:
pass_str: |
SELECT """some_string"""
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_alternate_tripple_quotes:
fail_str: |
SELECT '''some_string'''
fix_str: |
SELECT """some_string"""
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_unnecessary_escaping:
fail_str: |
SELECT
'unnecessary \"\"escaping',
"unnecessary \'\'escaping"
fix_str: |
SELECT
'unnecessary ""escaping',
"unnecessary ''escaping"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_bigquery_string_prefixes:
fail_str: |
SELECT
r'some_string',
b'some_string',
R'some_string',
B'some_string'
fix_str: |
SELECT
r"some_string",
b"some_string",
R"some_string",
B"some_string"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_bigquery_string_prefixes_when_style_is_consistent:
fail_str: |
SELECT
r'some_string',
b"some_string"
fix_str: |
SELECT
r'some_string',
b'some_string'
configs:
core:
dialect: bigquery
test_fail_tripple_quoted_strings_with_quotes_in_them:
fail_str: |
SELECT
"""Strings with "" in them""",
'''Strings with "" in them'''
fix_str: |
SELECT
"""Strings with "" in them""",
"""Strings with "" in them"""
configs:
core:
dialect: bigquery
test_fail_tripple_quoted_strings_dont_remove_escapes_single_quotes:
fail_str: |
SELECT
"""Strings escaped quotes \" and \' in them""",
'''Strings escaped quotes \" and \' in them'''
fix_str: |
SELECT
'''Strings escaped quotes \" and \' in them''',
'''Strings escaped quotes \" and \' in them'''
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: single_quotes
test_fail_tripple_quoted_strings_dont_remove_escapes_double_quotes:
fail_str: |
SELECT
"""Strings escaped quotes \" and \' in them""",
'''Strings escaped quotes \" and \' in them'''
fix_str: |
SELECT
"""Strings escaped quotes \" and \' in them""",
"""Strings escaped quotes \" and \' in them"""
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_edge_case_tripple_quoted_string_ending_with_double_quote:
# Test that a trailing preferred quote in triple quote scenario doesn't break
fail_str: |
SELECT
'''Here's a "''',
'''Here's a " '''
fix_str: |
SELECT
'''Here's a "''',
"""Here's a " """
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_lots_of_quotes:
# Test that we can handle complex quoting scenarios
pass_str: |
SELECT
'\\""',
"\\''"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_lots_of_quotes:
# Test that we can handle complex quoting scenarios
fail_str: |
SELECT 'Lots of \\\\\\\\\'quotes\''
fix_str: |
SELECT "Lots of \\\\\\\\'quotes'"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_quote_replace_in_raw_strings:
# Test that we can handle complex quoting scenarios
fail_str: |
SELECT
r'Tricky "quote',
r'Not-so-tricky \"quote'
fix_str: |
SELECT
r'Tricky "quote',
r"Not-so-tricky \"quote"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_dollar_quoted_strings_are_ignored:
# Test that we don't interfere with dollar quoted strings
pass_str: |
SELECT
'some string',
$$some_other_string$$
configs:
core:
dialect: postgres
rules:
convention.quoted_literals:
force_enable: true
preferred_quoted_literal_style: single_quotes
test_pass_date_constructor_strings_are_ignored_1:
# Test that we don't interfere with date constructor strings
pass_str: |
SELECT
"quoted string",
DATE'some string'
test_pass_date_constructor_strings_are_ignored_2:
# Test that we don't interfere with date constructor strings
pass_str: |
SELECT
DATE'some string'
configs:
rules:
convention.quoted_literals:
force_enable: true
preferred_quoted_literal_style: double_quotes
test_pass_empty_string:
pass_str: |
SELECT ""
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_empty_string:
fail_str: |
SELECT ''
fix_str: |
SELECT ""
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_partially_templated_quoted_literals_simple:
pass_str: |
SELECT "{{ 'a string' }}"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_partially_templated_quoted_literals_simple:
fail_str: |
SELECT '{{ "a string" }}'
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_partially_templated_quoted_literals_complex:
pass_str: |
SELECT "this_is_a_lintable_{{ 'string' }}"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_partially_templated_quoted_literals_complex:
fail_str: |
SELECT 'this_is_a_lintable_{{ "string" }}'
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_partially_templated_quoted_literals_with_multiple_templates:
pass_str: |
SELECT "this_{{ 'is' }}_{{ 'a_lintable' }}_{{ 'string' }}"
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_partially_templated_quoted_literals_with_multiple_templates:
fail_str: |
SELECT 'this_{{ "is" }}_{{ "a_lintable" }}_{{ "string" }}'
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_fail_partially_templated_quoted_literals_inside_blocks:
fail_str: |
SELECT
{% if true %}
'{{ "another_templated_string" }}'
{% endif %}
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_fully_templated_quoted_literals_are_ignored:
pass_str: |
SELECT {{ "'a_non_lintable_string'" }}
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_partially_templated_literals_are_ignored_when_some_quotes_are_inside_the_template_1:
pass_str: |
SELECT '{{ "string' FROM table1" }}
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_partially_templated_literals_are_ignored_when_some_quotes_are_inside_the_template_2:
pass_str: |
{{ "SELECT 'stri" -}}ng' FROM table1
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes
test_pass_prefix_chars_are_correctly_detected_as_unlintable:
pass_str: |
SELECT
r{{ "''" }},
r{{ "'project' FROM table1" }}
configs:
core:
dialect: bigquery
rules:
convention.quoted_literals:
preferred_quoted_literal_style: double_quotes