summaryrefslogtreecommitdiffstats
path: root/Tools/clinic
diff options
context:
space:
mode:
authorAlex Waygood <Alex.Waygood@Gmail.com>2023-08-06 19:40:55 (GMT)
committerGitHub <noreply@github.com>2023-08-06 19:40:55 (GMT)
commitee3bf45e5e253d393f8553e58715c31e470800cd (patch)
tree22291feb82beed84dde4853d569382d1fa3cbd30 /Tools/clinic
parent9564e31cbc95a723f2414537231bc4611b56644f (diff)
downloadcpython-ee3bf45e5e253d393f8553e58715c31e470800cd.zip
cpython-ee3bf45e5e253d393f8553e58715c31e470800cd.tar.gz
cpython-ee3bf45e5e253d393f8553e58715c31e470800cd.tar.bz2
gh-106368: Improve coverage reports for argument clinic (#107693)
Diffstat (limited to 'Tools/clinic')
-rwxr-xr-xTools/clinic/clinic.py11
-rw-r--r--Tools/clinic/cpp.py10
2 files changed, 15 insertions, 6 deletions
diff --git a/Tools/clinic/clinic.py b/Tools/clinic/clinic.py
index 423cdfb..47b5f5a 100755
--- a/Tools/clinic/clinic.py
+++ b/Tools/clinic/clinic.py
@@ -469,7 +469,7 @@ class Language(metaclass=abc.ABCMeta):
checksum_line = ""
def __init__(self, filename: str) -> None:
- pass
+ ...
@abc.abstractmethod
def render(
@@ -477,10 +477,10 @@ class Language(metaclass=abc.ABCMeta):
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(
@@ -2862,6 +2862,9 @@ class CConverter(metaclass=CConverterAutoRegister):
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
@@ -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
diff --git a/Tools/clinic/cpp.py b/Tools/clinic/cpp.py
index 8761051..3d9c61a 100644
--- a/Tools/clinic/cpp.py
+++ b/Tools/clinic/cpp.py
@@ -178,11 +178,17 @@ class Monitor:
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()