summaryrefslogtreecommitdiff
path: root/tests/functional/r/regression_02/regression_5408.py
blob: 93dcc81e137ae478b41b683f3e51f8476120b778 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
"""Regression test for issue 5408.

Recursion error for self-referencing class attribute.
See: https://github.com/pylint-dev/pylint/issues/5408
"""

# pylint: disable=missing-docstring, too-few-public-methods, invalid-name, inherit-non-class
# pylint: disable=no-self-argument


class MyInnerClass:
    ...


class MySubClass:
    inner_class = MyInnerClass


class MyClass:
    sub_class = MySubClass()


def get_unpatched_class(cls):
    return cls


def get_unpatched(item):
    lookup = get_unpatched_class if isinstance(item, type) else lambda item: None
    return lookup(item)


_Child = get_unpatched(MyClass.sub_class.inner_class)


class Child(_Child):
    def patch(cls):
        MyClass.sub_class.inner_class = cls