summaryrefslogtreecommitdiffstats
path: root/tests/roots/test-ext-autodoc/target/preserve_defaults.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/roots/test-ext-autodoc/target/preserve_defaults.py')
-rw-r--r--tests/roots/test-ext-autodoc/target/preserve_defaults.py60
1 files changed, 60 insertions, 0 deletions
diff --git a/tests/roots/test-ext-autodoc/target/preserve_defaults.py b/tests/roots/test-ext-autodoc/target/preserve_defaults.py
new file mode 100644
index 0000000..86e1038
--- /dev/null
+++ b/tests/roots/test-ext-autodoc/target/preserve_defaults.py
@@ -0,0 +1,60 @@
+from __future__ import annotations
+
+from datetime import datetime
+from typing import Any
+
+CONSTANT = 'foo'
+SENTINEL = object()
+
+
+def foo(name: str = CONSTANT,
+ sentinel: Any = SENTINEL,
+ now: datetime = datetime.now(),
+ color: int = 0xFFFFFF,
+ *,
+ kwarg1,
+ kwarg2 = 0xFFFFFF) -> None:
+ """docstring"""
+
+
+class Class:
+ """docstring"""
+
+ def meth(self, name: str = CONSTANT, sentinel: Any = SENTINEL,
+ now: datetime = datetime.now(), color: int = 0xFFFFFF,
+ *, kwarg1, kwarg2 = 0xFFFFFF) -> None:
+ """docstring"""
+
+ @classmethod
+ def clsmeth(cls, name: str = CONSTANT, sentinel: Any = SENTINEL,
+ now: datetime = datetime.now(), color: int = 0xFFFFFF,
+ *, kwarg1, kwarg2 = 0xFFFFFF) -> None:
+ """docstring"""
+
+
+get_sentinel = lambda custom=SENTINEL: custom
+"""docstring"""
+
+
+class MultiLine:
+ """docstring"""
+
+ # The properties will raise a silent SyntaxError because "lambda self: 1"
+ # will be detected as a function to update the default values of. However,
+ # only prop3 will not fail because it's on a single line whereas the others
+ # will fail to parse.
+
+ prop1 = property(
+ lambda self: 1, doc="docstring")
+
+ prop2 = property(
+ lambda self: 2, doc="docstring"
+ )
+
+ prop3 = property(lambda self: 3, doc="docstring")
+
+ prop4 = (property
+ (lambda self: 4, doc="docstring"))
+
+ prop5 = property\
+ (lambda self: 5, doc="docstring")