Skip to content

Commit f7bc17b

Browse files
committed
Add a python test for EscapeLeadingWhitespace.
1 parent 4854fb6 commit f7bc17b

File tree

3 files changed

+31
-1
lines changed

3 files changed

+31
-1
lines changed

python/selfie-lib/selfie_lib/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .CacheSelfie import cache_selfie_binary as cache_selfie_binary
77
from .CacheSelfie import cache_selfie_json as cache_selfie_json
88
from .CommentTracker import CommentTracker as CommentTracker
9+
from .EscapeLeadingWhitespace import EscapeLeadingWhitespace as EscapeLeadingWhitespace
910
from .FS import FS as FS
1011
from .Lens import Camera as Camera
1112
from .Lens import CompoundLens as CompoundLens
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
from selfie_lib import EscapeLeadingWhitespace
2+
3+
def test_detection():
4+
# not enough to detect
5+
assert EscapeLeadingWhitespace.appropriate_for("") == EscapeLeadingWhitespace.ALWAYS
6+
assert EscapeLeadingWhitespace.appropriate_for("abc") == EscapeLeadingWhitespace.ALWAYS
7+
assert EscapeLeadingWhitespace.appropriate_for("abc\nabc") == EscapeLeadingWhitespace.ALWAYS
8+
9+
# all spaces -> only tabs need escape
10+
assert EscapeLeadingWhitespace.appropriate_for(" ") == EscapeLeadingWhitespace.ONLY_ON_TAB
11+
assert EscapeLeadingWhitespace.appropriate_for(" ") == EscapeLeadingWhitespace.ONLY_ON_TAB
12+
assert EscapeLeadingWhitespace.appropriate_for(" \n ") == EscapeLeadingWhitespace.ONLY_ON_TAB
13+
14+
# all tabs -> only space needs escape
15+
assert EscapeLeadingWhitespace.appropriate_for("\t") == EscapeLeadingWhitespace.ONLY_ON_SPACE
16+
assert EscapeLeadingWhitespace.appropriate_for("\t\t") == EscapeLeadingWhitespace.ONLY_ON_SPACE
17+
assert EscapeLeadingWhitespace.appropriate_for("\t\n\t") == EscapeLeadingWhitespace.ONLY_ON_SPACE
18+
19+
# it's a mess -> everything needs escape
20+
assert EscapeLeadingWhitespace.appropriate_for("\t\n ") == EscapeLeadingWhitespace.ALWAYS
21+
22+
# single spaces and tabs -> only tabs need escape
23+
test_string = """/*
24+
* Copyright
25+
*/
26+
interface Foo {
27+
\tfun bar()
28+
}"""
29+
assert EscapeLeadingWhitespace.appropriate_for(test_string) == EscapeLeadingWhitespace.ALWAYS

python/selfie-lib/uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)