Skip to content

Commit

Permalink
gh-106368: Improve coverage reports for argument clinic (#107693)
Browse files Browse the repository at this point in the history
  • Loading branch information
AlexWaygood authored Aug 6, 2023
1 parent 9564e31 commit ee3bf45
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 6 deletions.
5 changes: 5 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,11 @@ exclude_lines =
# Don't complain if non-runnable code isn't run:
if 0:
if __name__ == .__main__.:
raise AssertionError\(

# Empty bodies in protocols or abstract methods
^\s*def [a-zA-Z0-9_]+\(.*\)(\s*->.*)?:\s*\.\.\.(\s*#.*)?$
^\s*\.\.\.(\s*#.*)?$

.*# pragma: no cover
.*# pragma: no branch
Expand Down
11 changes: 7 additions & 4 deletions Tools/clinic/clinic.py
Original file line number Diff line number Diff line change
Expand Up @@ -469,18 +469,18 @@ class Language(metaclass=abc.ABCMeta):
checksum_line = ""

def __init__(self, filename: str) -> None:
pass
...

@abc.abstractmethod
def render(
self,
clinic: Clinic | None,
signatures: Iterable[Module | Class | Function]
) -> str:
pass
...

def parse_line(self, line: str) -> None:
pass
...

def validate(self) -> None:
def assert_only_one(
Expand Down Expand Up @@ -2862,6 +2862,9 @@ def __getattr__(self, attr):
f"Note: accessing self.function inside converter_init is disallowed!"
)
return super().__getattr__(attr)
# this branch is just here for coverage reporting
else: # pragma: no cover
pass

def converter_init(self) -> None:
pass
Expand Down Expand Up @@ -3990,7 +3993,7 @@ def correct_name_for_self(
return "void *", "null"
if f.kind in (CLASS_METHOD, METHOD_NEW):
return "PyTypeObject *", "type"
raise RuntimeError("Unhandled type of function f: " + repr(f.kind))
raise AssertionError(f"Unhandled type of function f: {f.kind!r}")

def required_type_for_self_for_parser(
f: Function
Expand Down
10 changes: 8 additions & 2 deletions Tools/clinic/cpp.py
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,17 @@ def pop_stack() -> TokenAndCondition:
if self.verbose:
print(self.status())

if __name__ == '__main__':
for filename in sys.argv[1:]:

def _main(filenames: list[str] | None = None) -> None:
filenames = filenames or sys.argv[1:]
for filename in filenames:
with open(filename) as f:
cpp = Monitor(filename, verbose=True)
print()
print(filename)
for line_number, line in enumerate(f.read().split('\n'), 1):
cpp.writeline(line)


if __name__ == '__main__':
_main()

0 comments on commit ee3bf45

Please sign in to comment.