Skip to content

Commit

Permalink
Add failing test case for escaped curly braces bug in UP032
Browse files Browse the repository at this point in the history
  • Loading branch information
zanieb committed Nov 16, 2023
1 parent 2424188 commit 197885c
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 0 deletions.
17 changes: 17 additions & 0 deletions crates/ruff_linter/resources/test/fixtures/pyupgrade/UP032_0.py
Original file line number Diff line number Diff line change
Expand Up @@ -226,3 +226,20 @@ async def c():
"".format(new_dict, d)

)

# The first string will be converted to an f-string and the curly braces in the second should be converted to be unescaped
(
"{}"
"{{}}"
).format(a)

("{}" "{{}}").format(a)


# Both strings will be converted to an f-string and the curly braces in the second should left escaped
(
"{}"
"{{{}}}"
).format(a, b)

("{}" "{{{}}}").format(a, b)
Original file line number Diff line number Diff line change
Expand Up @@ -1066,5 +1066,93 @@ UP032_0.py:225:5: UP032 [*] Use f-string instead of `format` call
225 |+ f"Conflicting configuration dicts: {new_dict!r} {d!r}"
227 226 |
228 227 | )
229 228 |

UP032_0.py:231:1: UP032 [*] Use f-string instead of `format` call
|
230 | # The first string will be converted to an f-string and the curly braces in the second should be converted to be unescaped
231 | / (
232 | | "{}"
233 | | "{{}}"
234 | | ).format(a)
| |___________^ UP032
235 |
236 | ("{}" "{{}}").format(a)
|
= help: Convert to f-string

Safe fix
229 229 |
230 230 | # The first string will be converted to an f-string and the curly braces in the second should be converted to be unescaped
231 231 | (
232 |- "{}"
232 |+ f"{a}"
233 233 | "{{}}"
234 |-).format(a)
234 |+)
235 235 |
236 236 | ("{}" "{{}}").format(a)
237 237 |

UP032_0.py:236:1: UP032 [*] Use f-string instead of `format` call
|
234 | ).format(a)
235 |
236 | ("{}" "{{}}").format(a)
| ^^^^^^^^^^^^^^^^^^^^^^^ UP032
|
= help: Convert to f-string

Safe fix
233 233 | "{{}}"
234 234 | ).format(a)
235 235 |
236 |-("{}" "{{}}").format(a)
236 |+(f"{a}" "{{}}")
237 237 |
238 238 |
239 239 | # Both strings will be converted to an f-string and the curly braces in the second should left escaped

UP032_0.py:240:1: UP032 [*] Use f-string instead of `format` call
|
239 | # Both strings will be converted to an f-string and the curly braces in the second should left escaped
240 | / (
241 | | "{}"
242 | | "{{{}}}"
243 | | ).format(a, b)
| |______________^ UP032
244 |
245 | ("{}" "{{{}}}").format(a, b)
|
= help: Convert to f-string

Safe fix
238 238 |
239 239 | # Both strings will be converted to an f-string and the curly braces in the second should left escaped
240 240 | (
241 |- "{}"
242 |- "{{{}}}"
243 |-).format(a, b)
241 |+ f"{a}"
242 |+ f"{{{b}}}"
243 |+)
244 244 |
245 245 | ("{}" "{{{}}}").format(a, b)

UP032_0.py:245:1: UP032 [*] Use f-string instead of `format` call
|
243 | ).format(a, b)
244 |
245 | ("{}" "{{{}}}").format(a, b)
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UP032
|
= help: Convert to f-string

Safe fix
242 242 | "{{{}}}"
243 243 | ).format(a, b)
244 244 |
245 |-("{}" "{{{}}}").format(a, b)
245 |+(f"{a}" f"{{{b}}}")


0 comments on commit 197885c

Please sign in to comment.