diff options
author | Takahide Nojima <nozzy123nozzy@gmail.com> | 2021-10-21 05:16:32 +0000 |
---|---|---|
committer | Takahide Nojima <nozzy123nozzy@gmail.com> | 2021-10-26 15:01:12 +0000 |
commit | 4e3acd8e4451ae39dbd5a6c8c5eba79300136d2f (patch) | |
tree | df350f05c65092ff97c70e14f58788a5f61bf53b /tests | |
parent | 9323cf20afff416dabe61b7f303791a1ce7f2bb6 (diff) | |
download | pylint-git-4e3acd8e4451ae39dbd5a6c8c5eba79300136d2f.tar.gz |
Fix exception of pyreverse in handling property function within a class.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/prop_data/property_pattern.py | 26 | ||||
-rw-r--r-- | tests/pyreverse/test_diagrams.py | 27 |
2 files changed, 53 insertions, 0 deletions
diff --git a/tests/prop_data/property_pattern.py b/tests/prop_data/property_pattern.py new file mode 100644 index 000000000..77c7eee4b --- /dev/null +++ b/tests/prop_data/property_pattern.py @@ -0,0 +1,26 @@ +""" docstring for file property_pattern.py """ + + +class FuncHolder: + def __init__(self, f_set, f_get, f_del, docstr): + pass + + +class PropertyPatterns: + prop1 = property(lambda x: (x) * 2, None, None, "property usage 1") + + @property + def prop2(self): + """property usage 2""" + return self._prop2 + + @prop2.setter + def prop2(self, value): + self._prop2 = value * 2 + + prop3 = FuncHolder(lambda x: (x) * 3, None, None, "non property 1") + + prop4 = lambda self, x: x * 2 # noqa: E731 + + def __init__(self): + pass diff --git a/tests/pyreverse/test_diagrams.py b/tests/pyreverse/test_diagrams.py new file mode 100644 index 000000000..7e0cb4580 --- /dev/null +++ b/tests/pyreverse/test_diagrams.py @@ -0,0 +1,27 @@ +# Copyright (c) 2021 Takahide Nojima <nozzy123nozzy@gmail.com> +# +# Licensed under the GPL: https://www.gnu.org/licenses/old-licenses/gpl-2.0.html +# For details: https://github.com/PyCQA/pylint/blob/main/LICENSE + +"""Unit test for the ClassDiagram modules""" +# pylint: disable=redefined-outer-name +from typing import Callable + +import pytest + +from pylint.pyreverse.diadefslib import DefaultDiadefGenerator, DiadefsHandler +from pylint.pyreverse.inspector import Linker +from pylint.testutils.pyreverse import PyreverseConfig + + +@pytest.fixture +def HANDLER(default_config: PyreverseConfig) -> DiadefsHandler: + return DiadefsHandler(default_config) + + +def test_property_handling(HANDLER: DiadefsHandler, get_project: Callable) -> None: + project = get_project("prop_data.property_pattern") + cd = DefaultDiadefGenerator(Linker(project), HANDLER).visit(project)[0] + obj = cd.classe("PropertyPatterns") + assert len(cd.get_methods(obj.node)) == 0 + assert cd.get_attrs(obj.node) == ["prop1", "prop2", "prop3", "prop4"] |