Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move TestVariablesChecker to functional tests #5400

Merged
merged 1 commit into from
Nov 25, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
253 changes: 0 additions & 253 deletions tests/checkers/unittest_classes.py

This file was deleted.

15 changes: 11 additions & 4 deletions tests/functional/a/access/access_member_before_definition.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
# pylint: disable=missing-docstring,too-few-public-methods,invalid-name
# pylint: disable=attribute-defined-outside-init, useless-object-inheritance


class Aaaa(object):
"""class with attributes defined in wrong order"""

def __init__(self):
var1 = self._var2 # [access-member-before-definition]
var1 = self._var2 # [access-member-before-definition]
self._var2 = 3
self._var3 = var1

Expand All @@ -21,20 +22,26 @@ def __getattr__(self, attr):
self.__repo = attr
return attr


def catchme(self, attr):
"""no AttributeError caught"""
try:
return self._repo # [access-member-before-definition]
return self._repo # [access-member-before-definition]
except ValueError:
self._repo = attr
return attr


class Mixin(object):

def test_mixin(self):
"""Don't emit access-member-before-definition for mixin classes."""
if self.already_defined:
# pylint: disable=attribute-defined-outside-init
self.already_defined = None


# Test for regression in bitbucket issue 164
# https://bitbucket.org/logilab/pylint/issue/164/
class MyClass1:
def __init__(self):
self.first += 5 # [access-member-before-definition]
self.first = 0
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
access-member-before-definition:8:15:8:25:Aaaa.__init__:Access to member '_var2' before its definition line 9:UNDEFINED
access-member-before-definition:9:15:9:25:Aaaa.__init__:Access to member '_var2' before its definition line 10:UNDEFINED
access-member-before-definition:28:19:28:29:Bbbb.catchme:Access to member '_repo' before its definition line 30:UNDEFINED
access-member-before-definition:46:8:46:18:MyClass1.__init__:Access to member 'first' before its definition line 47:UNDEFINED
40 changes: 36 additions & 4 deletions tests/functional/m/method_hidden.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,38 @@
# pylint: disable=too-few-public-methods, useless-object-inheritance,missing-docstring
# pylint: disable=unused-private-member
"""check method hidding ancestor attribute
"""
from __future__ import print_function


class Abcd(object):
"""dummy"""

def __init__(self):
self.abcd = 1


class Cdef(Abcd):
"""dummy"""
def abcd(self): # [method-hidden]
"""test
"""

def abcd(self): # [method-hidden]
"""test"""
print(self)


class AbcdMixin:
def abcd(self):
pass


class Dabc(AbcdMixin, Abcd):
def abcd(self):
pass


class CustomProperty:
"""dummy"""

def __init__(self, _):
pass

Expand All @@ -36,8 +44,10 @@ def __get__(self, obj, __):
def __set__(self, _, __):
pass


class Ddef:
"""dummy"""

def __init__(self):
self.five = "five"

Expand Down Expand Up @@ -73,13 +83,15 @@ def __init__(self, one=None):
if one is not None:
self.one = one

def one(self): # [method-hidden]
def one(self): # [method-hidden]
pass


class Two(One):
def one(self):
pass


try:
import unknown as js
except ImportError:
Expand All @@ -90,3 +102,23 @@ class JsonEncoder(js.JSONEncoder):
# pylint: disable=useless-super-delegation,super-with-arguments
def default(self, o):
return super(JsonEncoder, self).default(o)


class Parent:
def __init__(self):
self._protected = None


class Child(Parent):
def _protected(self): # [method-hidden]
pass


class ParentTwo:
def __init__(self):
self.__private = None


class ChildTwo(ParentTwo):
def __private(self):
pass
Loading