From: Vladimír Vondruš Date: Thu, 26 Sep 2024 18:09:12 +0000 (+0200) Subject: documentation/python: explicitly test builtin BaseException as well. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?a=commitdiff_plain;h=debdcd37b6b0f1feec2da2d18b41a682a022bd06;p=blog.git documentation/python: explicitly test builtin BaseException as well. It contains members with unresolvable signatures. It's now tested through a derived class in test_inspect.String, but once base class members get omitted from the output, that gets lost. --- diff --git a/documentation/test_python/inspect_builtin/inspect_builtin.BaseException-310.html b/documentation/test_python/inspect_builtin/inspect_builtin.BaseException-310.html new file mode 100644 index 00000000..b14f251b --- /dev/null +++ b/documentation/test_python/inspect_builtin/inspect_builtin.BaseException-310.html @@ -0,0 +1,84 @@ + + + + + inspect_builtin.BaseException | My Python Project + + + + + +
+
+
+
+
+

+ inspect_builtin.BaseException class +

+

Common base class for all exceptions

+ +
+

Methods

+
+
+ def with_traceback(...) +
+
Exception.with_traceback(tb) -- +set self.__traceback__ to tb and return self.
+
+
+
+

Special methods

+
+
+ def __reduce__(...) +
+
+
+ def __setstate__(...) +
+
+
+
+
+

Properties

+
+
+ __cause__ get +
+
exception cause
+
+ __context__ get +
+
exception context
+
+ args get +
+
+
+
+
+
+
+
+ + diff --git a/documentation/test_python/inspect_builtin/inspect_builtin.BaseException.html b/documentation/test_python/inspect_builtin/inspect_builtin.BaseException.html new file mode 100644 index 00000000..0d6f2743 --- /dev/null +++ b/documentation/test_python/inspect_builtin/inspect_builtin.BaseException.html @@ -0,0 +1,89 @@ + + + + + inspect_builtin.BaseException | My Python Project + + + + + +
+
+
+
+
+

+ inspect_builtin.BaseException class +

+

Common base class for all exceptions

+ +
+

Methods

+
+
+ def add_note(...) +
+
Exception.add_note(note) -- +add a note to the exception
+
+ def with_traceback(...) +
+
Exception.with_traceback(tb) -- +set self.__traceback__ to tb and return self.
+
+
+
+

Special methods

+
+
+ def __reduce__(...) +
+
+
+ def __setstate__(...) +
+
+
+
+
+

Properties

+
+
+ __cause__ get +
+
exception cause
+
+ __context__ get +
+
exception context
+
+ args get +
+
+
+
+
+
+
+
+ + diff --git a/documentation/test_python/inspect_builtin/inspect_builtin.html b/documentation/test_python/inspect_builtin/inspect_builtin.html index 74a2585c..feaad462 100644 --- a/documentation/test_python/inspect_builtin/inspect_builtin.html +++ b/documentation/test_python/inspect_builtin/inspect_builtin.html @@ -28,11 +28,19 @@
  • Reference
  • +
    +

    Classes

    +
    +
    class BaseException
    +
    Common base class for all exceptions
    +
    +

    Functions

    diff --git a/documentation/test_python/inspect_builtin/inspect_builtin.py b/documentation/test_python/inspect_builtin/inspect_builtin.py index 12a6d880..e7fe13e1 100644 --- a/documentation/test_python/inspect_builtin/inspect_builtin.py +++ b/documentation/test_python/inspect_builtin/inspect_builtin.py @@ -1,7 +1,9 @@ import sys from math import log, pow -__all__ = ['pow', 'log'] +from builtins import BaseException + +__all__ = ['pow', 'log', 'BaseException'] # Signature with / for pow() is not present in 3.6 so it makes no sense to have # it there. diff --git a/documentation/test_python/inspect_builtin/inspect_builtin36.html b/documentation/test_python/inspect_builtin/inspect_builtin36.html index b9e7b300..be0e6e4e 100644 --- a/documentation/test_python/inspect_builtin/inspect_builtin36.html +++ b/documentation/test_python/inspect_builtin/inspect_builtin36.html @@ -28,11 +28,19 @@
  • Reference
  • +
    +

    Classes

    +
    +
    class BaseException
    +
    Common base class for all exceptions
    +
    +

    Functions

    diff --git a/documentation/test_python/inspect_builtin/inspect_builtin39.html b/documentation/test_python/inspect_builtin/inspect_builtin39.html index 5711a4e9..47aecf05 100644 --- a/documentation/test_python/inspect_builtin/inspect_builtin39.html +++ b/documentation/test_python/inspect_builtin/inspect_builtin39.html @@ -28,11 +28,19 @@
  • Reference
  • +
    +

    Classes

    +
    +
    class BaseException
    +
    Common base class for all exceptions
    +
    +

    Functions

    diff --git a/documentation/test_python/inspect_string/inspect_string/__init__.py b/documentation/test_python/inspect_string/inspect_string/__init__.py index adb06caf..21ff7c00 100644 --- a/documentation/test_python/inspect_string/inspect_string/__init__.py +++ b/documentation/test_python/inspect_string/inspect_string/__init__.py @@ -93,8 +93,9 @@ class FooSlots: class DerivedException(BaseException): """A class deriving from BaseException, which has the weird args getset_descriptor""" - # Note: once we properly handle properties of base classes, we might want - # to import BaseException and add it to __all__ so it gets parsed directly + # TODO Once we properly handle properties of base classes, this should not + # list any of the base members anymore and should just act as a + # verification that indeed nothing leaks. class Specials: """Special class members""" diff --git a/documentation/test_python/test_inspect.py b/documentation/test_python/test_inspect.py index fee28f5e..f7d7f505 100644 --- a/documentation/test_python/test_inspect.py +++ b/documentation/test_python/test_inspect.py @@ -127,6 +127,13 @@ class Builtin(BaseInspectTestCase): file = 'inspect_builtin36.html' self.assertEqual(*self.actual_expected_contents('inspect_builtin.html', file)) + # BaseException has the weird args getset_descriptor. Python 3.11 adds + # BaseException.add_note(). + if sys.version_info >= (3, 11): + self.assertEqual(*self.actual_expected_contents('inspect_builtin.BaseException.html')) + else: + self.assertEqual(*self.actual_expected_contents('inspect_builtin.BaseException.html', 'inspect_builtin.BaseException-310.html')) + class NameMapping(BaseInspectTestCase): def test(self): self.run_python({