summaryrefslogtreecommitdiff
path: root/tests/functional/a/access/access_to_protected_members.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/functional/a/access/access_to_protected_members.py')
-rw-r--r--tests/functional/a/access/access_to_protected_members.py64
1 files changed, 64 insertions, 0 deletions
diff --git a/tests/functional/a/access/access_to_protected_members.py b/tests/functional/a/access/access_to_protected_members.py
index ffbfabf15..7d732dcc5 100644
--- a/tests/functional/a/access/access_to_protected_members.py
+++ b/tests/functional/a/access/access_to_protected_members.py
@@ -211,3 +211,67 @@ class Issue1159Subclass(Issue1159):
instance = Issue1159OtherClass()
instance._bar = 3 # [protected-access]
_ = instance._foo # [protected-access]
+
+
+class Issue3066:
+ """Test for GitHub issue 3066
+ Accessing of attributes/methods of inner and outer classes
+ https://github.com/PyCQA/pylint/issues/3066"""
+
+ attr = 0
+ _attr = 1
+
+ @staticmethod
+ def _bar(i):
+ """Docstring."""
+
+ @staticmethod
+ def foobar(i):
+ """Test access from outer class"""
+ Issue3066._attr = 2
+ Issue3066.Aclass._attr = "y" # [protected-access]
+ Issue3066.Aclass.Bclass._attr = "b" # [protected-access]
+
+ Issue3066._bar(i)
+ Issue3066.Aclass._bar(i) # [protected-access]
+ Issue3066.Aclass.Bclass._bar(i) # [protected-access]
+
+ class Aclass:
+ """Inner class for GitHub issue 3066"""
+
+ _attr = "x"
+
+ @staticmethod
+ def foobar(i):
+ """Test access from inner class"""
+ Issue3066._attr = 2 # [protected-access]
+ Issue3066.Aclass._attr = "y"
+ Issue3066.Aclass.Bclass._attr = "b" # [protected-access]
+
+ Issue3066._bar(i) # [protected-access]
+ Issue3066.Aclass._bar(i)
+ Issue3066.Aclass.Bclass._bar(i) # [protected-access]
+
+ @staticmethod
+ def _bar(i):
+ """Docstring."""
+
+ class Bclass:
+ """Inner inner class for GitHub issue 3066"""
+
+ _attr = "a"
+
+ @staticmethod
+ def foobar(i):
+ """Test access from inner inner class"""
+ Issue3066._attr = 2 # [protected-access]
+ Issue3066.Aclass._attr = "y" # [protected-access]
+ Issue3066.Aclass.Bclass._attr = "b"
+
+ Issue3066._bar(i) # [protected-access]
+ Issue3066.Aclass._bar(i) # [protected-access]
+ Issue3066.Aclass.Bclass._bar(i)
+
+ @staticmethod
+ def _bar(i):
+ """Docstring."""