Skip to content

Commit 027c525

Browse files
committed
Fix tests.
1 parent ac2bcd2 commit 027c525

2 files changed

Lines changed: 60 additions & 159 deletions

File tree

tests/test_flake8_no_unnecessary_fstrings.py

Lines changed: 0 additions & 159 deletions
This file was deleted.

tests/test_plugin.py

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# stdlib
2+
import ast
3+
from typing import Set
4+
5+
# 3rd party
6+
import pytest
7+
8+
# this package
9+
from flake8_unused_fstrings import NUF001, Plugin
10+
11+
12+
def results(s: str) -> Set[str]:
13+
return {"{}:{}: {}".format(*r) for r in Plugin(ast.parse(s)).run()}
14+
15+
16+
bad_code = [
17+
("f''", {f"1:0: {NUF001}"}),
18+
('f""', {f"1:0: {NUF001}"}),
19+
('f""""""', {f"1:0: {NUF001}"}),
20+
("f''''''", {f"1:0: {NUF001}"}),
21+
('(\n "thing"\n f"asdf"\n)', {f"2:1: {NUF001}"}),
22+
(
23+
"\nf''\nf''\n",
24+
{f"2:0: {NUF001}", f"3:0: {NUF001}"},
25+
),
26+
pytest.param(
27+
"""\nf"{f''}"\n""",
28+
None,
29+
marks=pytest.mark.xfail(reason="nested fstrings is not yet detected"),
30+
),
31+
]
32+
33+
34+
@pytest.mark.parametrize("test_code, errors", bad_code)
35+
def test_bad_code(test_code: str, errors: Set):
36+
assert results(test_code) == errors
37+
38+
39+
good_code = [
40+
'"{}"',
41+
'"{{}}"',
42+
'"{{}}".format(1)',
43+
'\nthing = 1\nf"{thing}"\n',
44+
'\nasdf = 1\n(\n "thing"\n f"{asdf}"\n)\n',
45+
'"{val}".format(1)',
46+
"""
47+
import time
48+
import_start = time.time()
49+
import_end = time.time()
50+
cmd_name = "hi how are you?"
51+
f"{0.123456789:.3f}"
52+
f'Took {import_end - import_start:.3f} to import {cmd_name}'
53+
""",
54+
"""\na = 3\nf'{f"{a}"}'\n""",
55+
]
56+
57+
58+
@pytest.mark.parametrize("test_code", good_code)
59+
def test_good_code(test_code: str):
60+
assert results(test_code) == set()

0 commit comments

Comments
 (0)