Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

[3.11] gh-106368: Add tests for formatting helpers in Argument Clinic (GH-106415)#106439

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Closed
Changes fromall commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
164 changes: 164 additions & 0 deletionsLib/test/test_clinic.py
View file
Open in desktop
Original file line numberDiff line numberDiff line change
Expand Up@@ -1624,5 +1624,169 @@ def test_permute_optional_groups(self):
self.assertEqual(actual, expected)


class FormatHelperTests(unittest.TestCase):

def test_strip_leading_and_trailing_blank_lines(self):
dataset = (
# Input lines, expected output.
("a\nb", "a\nb"),
("a\nb\n", "a\nb"),
("a\nb ", "a\nb"),
("\na\nb\n\n", "a\nb"),
("\n\na\nb\n\n", "a\nb"),
("\n\na\n\nb\n\n", "a\n\nb"),
# Note, leading whitespace is preserved:
(" a\nb", " a\nb"),
(" a\nb ", " a\nb"),
(" \n \n a\nb \n \n ", " a\nb"),
)
for lines, expected in dataset:
with self.subTest(lines=lines, expected=expected):
out = clinic.strip_leading_and_trailing_blank_lines(lines)
self.assertEqual(out, expected)

def test_normalize_snippet(self):
snippet = """
one
two
three
"""

# Expected outputs:
zero_indent = (
"one\n"
"two\n"
"three"
)
four_indent = (
" one\n"
" two\n"
" three"
)
eight_indent = (
" one\n"
" two\n"
" three"
)
expected_outputs = {0: zero_indent, 4: four_indent, 8: eight_indent}
for indent, expected in expected_outputs.items():
with self.subTest(indent=indent):
actual = clinic.normalize_snippet(snippet, indent=indent)
self.assertEqual(actual, expected)

def test_accumulator(self):
acc = clinic.text_accumulator()
self.assertEqual(acc.output(), "")
acc.append("a")
self.assertEqual(acc.output(), "a")
self.assertEqual(acc.output(), "")
acc.append("b")
self.assertEqual(acc.output(), "b")
self.assertEqual(acc.output(), "")
acc.append("c")
acc.append("d")
self.assertEqual(acc.output(), "cd")
self.assertEqual(acc.output(), "")

def test_quoted_for_c_string(self):
dataset = (
# input, expected
(r"abc", r"abc"),
(r"\abc", r"\\abc"),
(r"\a\bc", r"\\a\\bc"),
(r"\a\\bc", r"\\a\\\\bc"),
(r'"abc"', r'\"abc\"'),
(r"'a'", r"\'a\'"),
)
for line, expected in dataset:
with self.subTest(line=line, expected=expected):
out = clinic.quoted_for_c_string(line)
self.assertEqual(out, expected)

def test_rstrip_lines(self):
lines = (
"a \n"
"b\n"
" c\n"
" d \n"
)
expected = (
"a\n"
"b\n"
" c\n"
" d\n"
)
out = clinic.rstrip_lines(lines)
self.assertEqual(out, expected)

def test_format_escape(self):
line = "{}, {a}"
expected = "{{}}, {{a}}"
out = clinic.format_escape(line)
self.assertEqual(out, expected)

def test_indent_all_lines(self):
# Blank lines are expected to be unchanged.
self.assertEqual(clinic.indent_all_lines("", prefix="bar"), "")

lines = (
"one\n"
"two" # The missing newline is deliberate.
)
expected = (
"barone\n"
"bartwo"
)
out = clinic.indent_all_lines(lines, prefix="bar")
self.assertEqual(out, expected)

# If last line is empty, expect it to be unchanged.
lines = (
"\n"
"one\n"
"two\n"
""
)
expected = (
"bar\n"
"barone\n"
"bartwo\n"
""
)
out = clinic.indent_all_lines(lines, prefix="bar")
self.assertEqual(out, expected)

def test_suffix_all_lines(self):
# Blank lines are expected to be unchanged.
self.assertEqual(clinic.suffix_all_lines("", suffix="foo"), "")

lines = (
"one\n"
"two" # The missing newline is deliberate.
)
expected = (
"onefoo\n"
"twofoo"
)
out = clinic.suffix_all_lines(lines, suffix="foo")
self.assertEqual(out, expected)

# If last line is empty, expect it to be unchanged.
lines = (
"\n"
"one\n"
"two\n"
""
)
expected = (
"foo\n"
"onefoo\n"
"twofoo\n"
""
)
out = clinic.suffix_all_lines(lines, suffix="foo")
self.assertEqual(out, expected)


if __name__ == "__main__":
unittest.main()

[8]ページ先頭

©2009-2025 Movatter.jp