Prefer the configured quote style

<!--
Thank you for contributing to Ruff! To help us out with reviewing, please consider the following:

- Does this pull request include a summary of the change? (See below.)
- Does this pull request include a descriptive title?
- Does this pull request include references to any relevant issues?
-->

## Summary

This PR extends the string formatting to respect the configured quote style.

<!-- What's the purpose of the change? What does it do, and why? -->

## Test Plan

Extended the string test with new cases and set it up to run twice: Once with the `quote_style: Doube`, and once with `quote_style: Single` single and double quotes. 

<!-- How was it tested? -->
This commit is contained in:
Micha Reiser 2023-06-26 14:24:25 +02:00 committed by GitHub
parent f18a1f70de
commit 313711aaf9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 165 additions and 24 deletions

View file

@ -18,7 +18,7 @@ input_file: crates/ruff_python_formatter/resources/test/fixtures/ruff/expression
# Prefer double quotes for string with equal amount of single and double quotes
'" \' " " \'\''
"' \" '' \" \" '"
"' \" '' \" \""
"\\' \"\""
'\\\' ""'
@ -53,12 +53,30 @@ String ""
String """
'''
'''Multiline
String "'''
"""Multiline
String '''
"""
"""Multiline
String '"""
'''Multiline
String \"\"\"
'''
```
## Output
## Outputs
### Output 1
```
indent-style = Spaces, size: 4
line-width = 88
quote-style = Double
magic-trailing-comma = Respect
```
```py
"' test"
'" test'
@ -74,7 +92,7 @@ String \"\"\"
# Prefer double quotes for string with equal amount of single and double quotes
"\" ' \" \" ''"
"' \" '' \" \" '"
"' \" '' \" \""
'\\\' ""'
'\\\' ""'
@ -109,10 +127,94 @@ String ""
String """
'''
'''Multiline
String "'''
"""Multiline
String '''
"""
"""Multiline
String '"""
"""Multiline
String \"\"\"
"""
```
### Output 2
```
indent-style = Spaces, size: 4
line-width = 88
quote-style = Single
magic-trailing-comma = Respect
```
```py
"' test"
'" test'
'" test'
"' test"
# Prefer single quotes for string with more double quotes
'\' " " \'\' " " \''
# Prefer double quotes for string with more single quotes
'\' " " \'\' " " \''
# Prefer double quotes for string with equal amount of single and double quotes
'" \' " " \'\''
'\' " \'\' " "'
'\\\' ""'
'\\\' ""'
'Test'
'Test'
r'Test'
R'Test'
'This string will not include \
backslashes or newline characters.'
if True:
'This string will not include \
backslashes or newline characters.'
'''Multiline
String \"
'''
'''Multiline
String \'
'''
'''Multiline
String ""
'''
'''Multiline
String """
'''
'''Multiline
String "'''
"""Multiline
String '''
"""
"""Multiline
String '"""
'''Multiline
String \"\"\"
'''
```